private void OnApplicationQuit() { if (m_plugin != null) { m_plugin.Dispose(); m_plugin = null; } }
void Start() { var tex = CreateTextureAndPassToPlugin(); var mesh = SendMeshBuffersToPlugin(); m_plugin = RenderAPI_D3D11.Create(tex, mesh); StartCoroutine(CallPluginAtEndOfFrames()); }
public static RenderAPI_D3D11 Create(UnityEngine.Texture2D tex, UnityEngine.Mesh mesh) { using (var dxTexture = new SharpDX.Direct3D11.Texture2D(tex.GetNativeTexturePtr())) { var d3d11 = new RenderAPI_D3D11(dxTexture.Device); d3d11.SetTextureFromUnity(tex.GetNativeTexturePtr(), tex.width, tex.height); d3d11.SetMeshBuffersFromUnity(mesh.GetNativeVertexBufferPtr(0) , mesh.vertexCount , mesh.vertices , mesh.normals , mesh.uv); return(d3d11); } }