diff options
Diffstat (limited to 'mayaPlug/shaveRenderCallback.h')
| -rw-r--r-- | mayaPlug/shaveRenderCallback.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/mayaPlug/shaveRenderCallback.h b/mayaPlug/shaveRenderCallback.h new file mode 100644 index 0000000..2c7a912 --- /dev/null +++ b/mayaPlug/shaveRenderCallback.h @@ -0,0 +1,78 @@ +#ifndef _SHAVERENDERCALLBACK_H_ +#define _SHAVERENDERCALLBACK_H_ + +// Shave and a Haircut +// (c) 2019 Epic Games +// US Patent 6720962 + +#include <maya/MDagPath.h> +#include <maya/MObject.h> +#include <maya/MRenderCallback.h> +#include <maya/MFnCamera.h> +#include <maya/MRenderData.h> +#include <maya/MRenderShadowData.h> +#include <maya/MRenderUtil.h> + +#include "shaveRender.h" + +#ifndef MM_TO_INCH +# define MM_TO_INCH 0.03937 +#endif + +class shaveMayaRenderer; + + +class shaveRenderCallback : public MRenderCallback +{ +public: + shaveRenderCallback(shaveMayaRenderer* renderer); + ~shaveRenderCallback() {} + virtual bool shadowCastCallback (const MRenderShadowData &data); + virtual bool renderCallback (const MRenderData &data); + virtual bool postProcessCallback (const MRenderData &data); + + static void cleanupTileCallback(); + void disableCamRender(); + void enableCamRender(const MDagPath& camera); + + static MStatus getRenderCamera( + const MRenderData& renderData, MDagPath& renderCamPath + ); + + static void initTileCallback( + const MRenderData& mayaRenderData, + shaveRender::SceneInfo* shaveRenderData + ); + + static void setGeomRender(bool setIt); + + static void tileRendered( + unsigned int left, + unsigned int right, + unsigned int bottom, + unsigned int top + ); + +private: + unsigned int width, height; + bool ignoreFilmGate; + double fov_ratio; + int cam_width, cam_height; + bool mDoingCamRender; + static bool mDoingGeomRender; + static bool mDoTiles; + shaveMayaRenderer* mRenderer; + MDagPath mRenderCamera; + static const MRenderData* mMayaRenderData; + static const shaveRender::Pixel* mShavePixels; +}; + + +inline void shaveRenderCallback::setGeomRender(bool setIt) +{ mDoingGeomRender = setIt; } + + +float shaveZtoMaya(float); + +#endif + |