void ReleaseInstance() { TextureWriter.twGuardBegin(); aepAPI.aepGuardBegin(); // release ports & params aepAPI.aepDestroyLayer(m_img_src); m_img_src = default(aepAPI.aepLayer); aepAPI.aepEraseDeferredCall(m_otp_render); m_otp_render = 0; TextureWriter.twEraseDeferredCall(m_tw_read); m_tw_read = 0; TextureWriter.twEraseDeferredCall(m_tw_write); m_tw_write = 0; m_params = null; // release instance aepAPI.aepDestroyInstance(m_inst); m_inst.ptr = IntPtr.Zero; aepAPI.aepGuardEnd(); TextureWriter.twGuardEnd(); if (m_began) { aepAPI.aepEndSequence(m_inst); m_began = false; } }
void UpdateInputImages(Texture rt_src) { if (rt_src != null) { // copy rt_src content to memory if (!m_img_src) { m_img_src = aepAPI.aepCreateLayer(); } aepAPI.aepResizeLayer(m_img_src, rt_src.width, rt_src.height); var src_data = default(aepAPI.aepLayerData); aepAPI.aepGetLayerData(m_img_src, ref src_data); m_tw_read = TextureWriter.ReadDeferred( src_data.pixels, src_data.width * src_data.height, TextureWriter.twPixelFormat.RGBAu8, rt_src, m_tw_read); GL.IssuePluginEvent(GetTWEvent(), m_tw_read); } }