#include <stdio.h>
#include <maya/MString.h>
#include <maya/MColor.h>
#include <maya/MViewport2Renderer.h>
#include <maya/MRenderTargetManager.h>
#include <maya/MShaderManager.h>
#include <maya/MTime.h>
#include <map>
{
public:
enum
{
kMaya3dSceneRender,
kTargetCapture,
kTargetPreview,
kPresentOp,
kOperationCount
};
enum {
kTargetPreviewShader = 0,
kShaderCount
};
viewRenderOverrideFrameCache(
const MString& name);
virtual ~viewRenderOverrideFrameCache();
{
return mUIName;
}
{
if (i < kOperationCount)
return mRenderOperations[i];
return NULL;
}
void setAllowCaching( bool val )
{
mAllowCaching = val;
}
void setCacheToDisk( bool val )
{
mCacheToDisk = val;
}
void releaseCachedTextures();
protected:
MString mRenderOperationNames[kOperationCount];
bool mRenderOperationEnabled[kOperationCount];
int mCurrentOperation;
std::map<unsigned int, MHWRender::MTexture*> mCachedTargets;
bool mPerformCapture;
unsigned int mCurrentTime;
double mSubFrameSamples;
bool mAllowCaching;
bool mCacheToDisk ;
};
{
public:
SceneRenderOperation(
const MString &name, viewRenderOverrideFrameCache* theOverride);
virtual ~SceneRenderOperation();
protected:
viewRenderOverrideFrameCache *mOverride;
};
{
public:
PreviewTargetsOperation(
const MString &name, viewRenderOverrideFrameCache* theOverride);
~PreviewTargetsOperation();
{
}
{
mTexture = texture;
}
protected:
viewRenderOverrideFrameCache *mOverride;
};
{
public:
CaptureTargetsOperation(
const MString &name, viewRenderOverrideFrameCache *
override);
virtual ~CaptureTargetsOperation();
{
mTexture = texture;
}
{
return mTexture;
}
void setCurrentTime(unsigned int val)
{
mCurrentTime = val;
}
unsigned int getCurrentTime() const
{
return mCurrentTime;
}
void setDumpImageToDisk(bool val)
{
mDumpImageToDisk = val;
}
bool dumpImageToDisk() const
{
return mDumpImageToDisk;
}
protected:
viewRenderOverrideFrameCache *mOverride;
unsigned int mCurrentTime;
bool mDumpImageToDisk;
};
{
public:
presentTargets(
const MString &name);
virtual ~presentTargets();
};