void OnDisable() { if (pencilRenderer != null) { pencilRenderer.Dispose(); pencilRenderer = null; } }
private void InitialSetup() { var camera = GetComponent <Camera>(); if (camera != null) { if (this.pencilRenderer == null) { this.pencilRenderer = new PencilLineRenderer(camera, (targetCam) => { return(new Size { Width = camera.pixelWidth, Height = camera.pixelHeight }); }); } Shader lineDispShader = Shader.Find("Hidden/Pcl4LineDisp"); lineDispMaterial = new Material(lineDispShader); } }
/// <inheritdoc/> public override IEnumerator BeginCapture() { #if AT_USE_PENCILLINE Assert.IsNotNull(m_pencilLineEffect); m_prevPencilLineEffectEnabled = m_pencilLineEffect.enabled; m_pencilLineEffect.enabled = true; yield return(null); //need one frame for PencilLine to construct its PencilLineRenderer PencilLineRenderer lineRenderer = m_pencilLineEffect.PencilRenderer; Assert.IsNotNull(lineRenderer); ReleaseRenderTexture(); m_pencilTex = lineRenderer.Texture; m_rt = new RenderTexture(m_pencilTex.width, m_pencilTex.height, 0); m_rt.Create(); #else yield return(null); #endif }
/// <inheritdoc/> public override bool BeginCapture() { if (null == m_pencilLineEffect) { SetErrorMessage("PencilLineEffect is not set on " + gameObject.name); return(false); } PencilLineRenderer lineRenderer = m_pencilLineEffect.PencilRenderer; if (null == lineRenderer) { SetErrorMessage("PencilLineEffect doesn't have PencilRenderer on " + gameObject.name); return(false); } ReleaseRenderTexture(); m_pencilTex = lineRenderer.Texture; m_rt = new RenderTexture(m_pencilTex.width, m_pencilTex.height, 0); m_rt.Create(); return(true); }