diff options
Diffstat (limited to 'mayaPlug/shaveMayaRenderer.h')
| -rw-r--r-- | mayaPlug/shaveMayaRenderer.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/mayaPlug/shaveMayaRenderer.h b/mayaPlug/shaveMayaRenderer.h new file mode 100644 index 0000000..a4eba01 --- /dev/null +++ b/mayaPlug/shaveMayaRenderer.h @@ -0,0 +1,71 @@ +#ifndef shaveMayaRenderer_h +#define shaveMayaRenderer_h + +// Shave and a Haircut +// (c) 2019 Epic Games +// US Patent 6720962 + +#include "shaveConstant.h" +#include "shaveRenderCallback.h" +#include "shaveRenderer.h" + +class shaveHairShape; + + +class shaveMayaRenderer : public shaveRenderer +{ +public: + shaveMayaRenderer(); + virtual ~shaveMayaRenderer(); + + virtual void frameEnd(const shaveGlobals::Globals& g); + virtual void frameStart(const shaveGlobals::Globals& g); + virtual float getPixelAspect() const; + + virtual shaveConstant::RenderMode + getBaseRenderMode(bool* renderInstances = NULL) const; + + virtual bool isGeomNode(const shaveHairShape* nodePtr) const; + virtual bool needVertexColours() const; + virtual void postCompositeCleanup(); + + virtual void render( + float frame, + shaveConstant::ShutterState shutter, + const MDagPath& camera + ); + + virtual void renderEnd(); + virtual void renderInterrupted(); + virtual void renderStart(); + virtual void timeChange(const MTime& newTime); + + +//************************************************ +// +// Helper Methods +// +//************************************************ + +protected: + void setupShadowShaders(); + + +private: + enum TimeState + { + kAwaitingNothing, + kAwaitingShutterOpen, + kAwaitingCenterFrame, + kAwaitingShutterClose + }; + + bool mHaveVolumeShader; + shaveRenderCallback* mRenderCallback; + MString mRenderCamera; + TimeState mTimeState; + mutable bool mWarningGivenUnsupportedHairMode; + mutable bool mWarningGivenUnsupportedInstanceMode; +}; + +#endif |