Katana Plug-in APIs 0.1

DiskRenderOutputProcess.h

00001 // Copyright (c) 2012 The Foundry Visionmongers Ltd. All Rights Reserved.
00002 
00003 #ifndef FNRENDER_DISKRENDEROUTPUTPROCESS_H
00004 #define FNRENDER_DISKRENDEROUTPUTPROCESS_H
00005 
00006 #include "FnRender/plugin/RenderAction.h"
00007 #include "FnRender/plugin/NoOutputRenderAction.h"
00008 #include "FnRender/plugin/TemporaryRenderAction.h"
00009 #include "FnRender/plugin/CopyRenderAction.h"
00010 #include "FnRender/plugin/CopyAndConvertRenderAction.h"
00011 #include "FnRender/plugin/PostCommandsRenderAction.h"
00012 
00013 #include "FnAttribute/FnGroupBuilder.h"
00014 #include "FnAttribute/FnAttribute.h"
00015 #include "FnRender/FnRenderAPI.h"
00016 #include <FnPlatform/internal/UniquePtr.h>
00017 
00018 #include <map>
00019 #include <memory>
00020 
00021 namespace Foundry
00022 {
00023 namespace Katana
00024 {
00025 namespace Render
00026 {
00035     class FNRENDER_API DiskRenderOutputProcess
00036     {
00037     public:
00038         typedef FnPlatform::internal::UniquePtr<RenderAction> UniquePtr;
00039         typedef UniquePtr::type RenderActionPtr;
00040 
00041         DiskRenderOutputProcess();
00042         virtual ~DiskRenderOutputProcess() {}
00043 
00053         void setRenderAction(RenderActionPtr renderAction);
00054 
00060         void addPreCommand(const std::string & command);
00061 
00070         void addPostCommand(const std::string & command);
00071 
00072         FnAttribute::GroupAttribute buildRenderOutputAttribute() const;
00073 
00074     private:
00075         RenderActionPtr             _renderAction;
00076         std::vector<std::string>    _preCommands;
00077         std::vector<std::string>    _postCommands;
00078     };
00079 
00083 }
00084 }
00085 }
00086 
00087 namespace FnKat = Foundry::Katana;
00088 
00089 #endif
 All Classes Functions Variables Typedefs Enumerations Enumerator