Katana Plug-in APIs 0.1

TemplateRendererInfoPlugin.h

00001 // Copyright (c) 2013 The Foundry Visionmongers Ltd. All Rights Reserved.
00002 
00003 #ifndef COMPANYNAMEKATANA_TEMPLATERENDERERINFOPLUGIN_H
00004 #define COMPANYNAMEKATANA_TEMPLATERENDERERINFOPLUGIN_H
00005 
00006 #include <FnRendererInfo/plugin/RendererInfoBase.h>
00007 
00008 
00009 namespace CompanyName
00010 {
00011 namespace Katana
00012 {
00020     class TemplateRendererInfoPlugin : public FnKat::RendererInfo::RendererInfoBase
00021     {
00022     public:
00023 
00024         TemplateRendererInfoPlugin();
00025         virtual ~TemplateRendererInfoPlugin();
00026 
00030         void fillRenderMethods(std::vector<FnKat::RendererInfo::RenderMethod*>& renderMethods) const;
00031 
00035         void fillRendererObjectNames(std::vector<std::string>& rendererObjectNames,
00036                                      const std::string& type,
00037                                      const std::vector<std::string>& typeTags) const;
00038 
00042        void fillRendererObjectTypes(std::vector<std::string>& renderObjectTypes,
00043                                     const std::string& type) const;
00044 
00048         void configureBatchRenderMethod(FnKat::RendererInfo::DiskRenderMethod& batchRenderMethod) const;
00049 
00056         std::string getRegisteredRendererName() const;
00057 
00064         std::string getRegisteredRendererVersion() const;
00065 
00069         std::string getRendererObjectDefaultType(const std::string& type) const;
00070 
00078         bool isPresetLocalFileNeeded(const std::string& outputType) const;
00079 
00087         bool isNodeTypeSupported(const std::string& nodeType) const;
00088 
00095         bool isPolymeshFacesetSplittingEnabled() const;
00096 
00101         void fillShaderInputNames(std::vector<std::string>& shaderInputNames,
00102                                   const std::string& shaderName) const;
00103 
00107         void fillShaderInputTags(std::vector<std::string>& shaderInputTags,
00108                                  const std::string& shaderName,
00109                                  const std::string& inputName) const;
00110 
00114         void fillShaderOutputNames(std::vector<std::string>& shaderOutputNames,
00115                                    const std::string& shaderName) const;
00116 
00120         void fillShaderOutputTags(std::vector<std::string>& shaderOutputTags,
00121                                   const std::string& shaderName,
00122                                   const std::string& outputName) const;
00123 
00127         void fillRendererShaderTypeTags(std::vector<std::string>& shaderTypeTags,
00128                                         const std::string& shaderType) const;
00129 
00133         std::string getRendererCoshaderType() const;
00134 
00138         bool buildRendererObjectInfo(FnKat::GroupBuilder& rendererObjectInfo,
00139                                      const std::string& name,
00140                                      const std::string& type,
00141                                      const FnKat::GroupAttribute inputAttr) const;
00142 
00146         void flushCaches();
00147 
00148         static FnKat::RendererInfo::RendererInfoBase* create()
00149         {
00150             return new TemplateRendererInfoPlugin();
00151         }
00152 
00153         static void flush()
00154         {
00155 
00156         }
00157     };
00158 
00162 }
00163 }
00164 
00165 #endif
 All Classes Functions Variables Typedefs Enumerations Enumerator