#if _MSC_VER >= 1700
#pragma warning( disable: 4005 )
#endif
#include <stdio.h>
#include "DX11ViewportRenderer.h"
#include <maya/MGlobal.h>
#include <maya/MString.h>
#include <maya/MStringArray.h>
#include <maya/MFnPlugin.h>
#include <maya/MSceneMessage.h>
#include <stdio.h>
static DX11ViewportRenderer *g_d3dRenderer = 0;
static __declspec(align(16)) char g_d3dRendererStorage[ sizeof(DX11ViewportRenderer) ] ;
#if defined(DX11_SUPPORTED)
static MCallbackId D3DfileNewCallbackId = 0;
static void D3DfileNewCallback( void* clientData )
{
if (g_d3dRenderer)
g_d3dRenderer->clearResources(false, false);
}
static MCallbackId D3DmayaExitCallbackId = 0;
static void D3DmayaExitCallback( void* clientData )
{
if (g_d3dRenderer)
{
g_d3dRenderer->~DX11ViewportRenderer();
g_d3dRenderer = 0;
}
}
#endif
{
MFnPlugin plugin( obj, PLUGIN_COMPANY,
"11.0",
"Any");
g_d3dRenderer = new (g_d3dRendererStorage) DX11ViewportRenderer();
if (g_d3dRenderer)
{
status = g_d3dRenderer->registerRenderer();
{
status.
perror(
"Failed to register DX11 renderer properly.");
}
#if defined(DX11_SUPPORTED)
if (D3DfileNewCallbackId == 0)
if (D3DmayaExitCallbackId == 0)
#endif
}
return status;
}
{
#if defined(DX11_SUPPORTED)
if (D3DfileNewCallbackId)
{
D3DfileNewCallbackId = 0;
}
if (D3DmayaExitCallbackId)
{
D3DmayaExitCallbackId = 0;
}
#endif
if (g_d3dRenderer)
{
status = g_d3dRenderer->deregisterRenderer();
{
status.
perror(
"Failed to deregister DX11 renderer properly.");
}
g_d3dRenderer->~DX11ViewportRenderer();
g_d3dRenderer = 0;
}
return status;
}