#ifndef _SHAVERENDERCALLBACK_H_ #define _SHAVERENDERCALLBACK_H_ // Shave and a Haircut // (c) 2019 Epic Games // US Patent 6720962 #include #include #include #include #include #include #include #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