|
Katana Plug-in APIs 0.1
|
00001 // Copyright (c) 2013 The Foundry Visionmongers Ltd. All Rights Reserved. 00002 00003 #ifndef FNRENDERERINFO_RENDERMETHOD_H 00004 #define FNRENDERERINFO_RENDERMETHOD_H 00005 00006 #include <FnAttribute/FnGroupBuilder.h> 00007 #include <FnAttribute/FnAttribute.h> 00008 #include <FnRendererInfo/FnRendererInfoAPI.h> 00009 00010 namespace Foundry 00011 { 00012 namespace Katana 00013 { 00014 namespace RendererInfo 00015 { 00022 class FNRENDERERINFO_API RenderMethod 00023 { 00024 public: 00025 RenderMethod(const std::string& name, const std::string& label); 00026 virtual ~RenderMethod() {} 00027 00028 virtual std::string getType() const = 0; 00029 virtual void buildAttribute(FnAttribute::GroupBuilder& builder) const = 0; 00030 00031 virtual void setName(const std::string& name); 00032 virtual std::string getName() const; 00033 virtual void setLabel(const std::string& label); 00034 virtual std::string getLabel() const; 00035 virtual void setCreateCatalogItem(bool createCatalogItem); 00036 virtual bool isCreateCatalogItem() const; 00037 virtual void setReportRenderMessages(bool reportRenderMessages); 00038 virtual bool isReportRenderMessages() const; 00039 virtual void setRegisterRender(bool registerRender); 00040 virtual bool isRegisterRender() const; 00041 virtual void setDebugOutputSupported(bool debugOutputSupported); 00042 virtual bool isDebugOutputSupported() const; 00043 virtual void setSceneGraphDebugOutputSupported(bool sceneGraphDebugOutputSupported); 00044 virtual bool isSceneGraphDebugOutputSupported() const; 00045 virtual void setDebugOutputFileType(const std::string& debugOutputFileType); 00046 virtual std::string getDebugOutputFileType() const; 00047 virtual void setVisible(bool visible); 00048 virtual bool isVisible() const; 00049 00050 protected: 00051 std::string _name; 00052 std::string _label; 00053 std::string _debugOutputFileType; 00054 bool _createCatalogItem; 00055 bool _reportRenderMessages; 00056 bool _registerRender; 00057 bool _debugOutputSupported; 00058 bool _sceneGraphDebugOutputSupported; 00059 bool _visible; 00060 }; 00071 class FNRENDERERINFO_API DiskRenderMethod : public RenderMethod 00072 { 00073 public: 00074 DiskRenderMethod(); 00075 DiskRenderMethod(const std::string& name, const std::string& label); 00076 virtual ~DiskRenderMethod() {} 00077 00078 virtual std::string getType() const { return kType; } 00079 virtual void buildAttribute(FnAttribute::GroupBuilder& builder) const; 00080 00081 void setAllowWaitingForRenderCompletion(bool allowWaitingForRenderCompletion); 00082 bool isAllowWaitingForRenderCompletion() const; 00083 00084 static const char* kType; 00085 static const char* kDefaultLabel; 00086 static const char* kDefaultName; 00087 static const char* kBatchName; 00088 00089 protected: 00090 00091 bool _allowWaitingForRenderCompletion; 00092 }; 00093 00100 class FNRENDERERINFO_API PreviewRenderMethod : public RenderMethod 00101 { 00102 public: 00103 00104 PreviewRenderMethod(); 00105 PreviewRenderMethod(const std::string& name, const std::string& label); 00106 virtual ~PreviewRenderMethod() {} 00107 00108 virtual std::string getType() const { return kType; } 00109 virtual void buildAttribute(FnAttribute::GroupBuilder& builder) const; 00110 00111 static const char* kType; 00112 static const char* kDefaultLabel; 00113 static const char* kDefaultName; 00114 }; 00125 class FNRENDERERINFO_API LiveRenderMethod : public RenderMethod 00126 { 00127 public: 00128 LiveRenderMethod(); 00129 LiveRenderMethod(const std::string& name, const std::string& label); 00130 virtual ~LiveRenderMethod() {} 00131 00132 virtual std::string getType() const { return kType; } 00133 virtual void buildAttribute(FnAttribute::GroupBuilder& builder) const; 00134 00135 static const char* kType; 00136 static const char* kDefaultLabel; 00137 static const char* kDefaultName; 00138 }; 00142 } 00143 } 00144 } 00145 00146 namespace FnKat = Foundry::Katana; 00147 00148 #endif
1.7.3