//-------------------------------------------------------------------------------------
void Release(void)
{
	if (pRendertargetTexture) pRendertargetTexture->Release();

    #if !SDK_RENDER
	for(int eyeNum = 0; eyeNum < 2; eyeNum++)
	{
		MeshVBs[eyeNum].Clear();
		MeshIBs[eyeNum].Clear();
	}
	if (Shaders)
	{
		Shaders->UnsetShader(Shader_Vertex);
		Shaders->UnsetShader(Shader_Pixel);
        Shaders->Release();
	}
    #endif

    ovrHmd_Destroy(HMD);
    Util_ReleaseWindowAndGraphics(pRender);
    if (pRoomScene) delete pRoomScene;


    // No OVR functions involving memory are allowed after this.
    ovr_Shutdown(); 
}
void Release(void)
{
	if (pRendertargetTexture) { pRendertargetTexture->Release(); pRendertargetTexture = NULL; }

	for (int eyeNum = 0; eyeNum < 2; ++eyeNum)
	{
		MeshVBs[eyeNum] = nullptr;
		MeshIBs[eyeNum] = nullptr;
	}

	if (DistortionShaders)
	{
		DistortionShaders->UnsetShader(Shader_Vertex);
		DistortionShaders->UnsetShader(Shader_Pixel);
		DistortionShaders = nullptr;
	}

	DistortionDecl = nullptr;

	ovrHmd_Destroy(HMD);
    Util_ReleaseWindowAndGraphics(pRender);
	if (pRoomScene) delete pRoomScene;
	if (pScene) delete pScene;

	ovr_Shutdown();
}