|
Katana Plug-in APIs 0.1
|
00001 // Copyright (c) 2013 The Foundry Visionmongers Ltd. All Rights Reserved. 00002 00003 #ifndef FNRENDER_FNRENDERPLUGINSUITE_H 00004 #define FNRENDER_FNRENDERPLUGINSUITE_H 00005 00006 extern "C" { 00007 typedef struct FnRenderPluginStruct* FnRenderPluginHandle; 00008 00009 #include "FnAttribute/suite/FnAttributeSuite.h" 00010 #include "FnScenegraphIterator/suite/FnScenegraphIteratorSuite.h" 00011 00012 #define FnRenderPluginSuite_version 2 00013 00014 struct FnRenderPluginSuite_v2 00015 { 00016 FnRenderPluginHandle (*create)(FnSgIteratorHandle rootIteratorHandle, 00017 FnAttributeHandle argsAttributeHandle); 00018 00019 void (*destroy)(FnRenderPluginHandle renderPluginHandle); 00020 00021 int (*start)(FnRenderPluginHandle renderPluginHandle); 00022 00023 int (*pause)(FnRenderPluginHandle renderPluginHandle); 00024 00025 int (*resume)(FnRenderPluginHandle renderPluginHandle); 00026 00027 int (*stop)(FnRenderPluginHandle renderPluginHandle); 00028 00029 int (*startLiveEditing)(FnRenderPluginHandle renderPluginHandle); 00030 00031 int (*stopLiveEditing)(FnRenderPluginHandle renderPluginHandle); 00032 00033 int (*processControlCommand)(FnRenderPluginHandle renderPluginHandle, 00034 const char* command); 00035 00036 int (*queueDataUpdates)(FnRenderPluginHandle renderPluginHandle, 00037 FnAttributeHandle commandAttributeHandle); 00038 00039 bool (*hasPendingDataUpdates)(FnRenderPluginHandle renderPluginHandle); 00040 00041 int (*applyPendingDataUpdates)(FnRenderPluginHandle renderPluginHandle); 00042 00043 FnAttributeHandle (*configureDiskRenderOutputProcess)( 00044 FnRenderPluginHandle renderPluginHandle, 00045 const char* outputName, 00046 const char* outputPath, 00047 const char* renderMethodName, 00048 const float* frameTime); 00049 00050 void (*setRootIterator)(FnRenderPluginHandle renderPluginHandle, 00051 FnSgIteratorHandle rootIteratorHandle); 00052 00053 int (*setup)(FnRenderPluginHandle renderPluginHandle); 00054 00055 int (*cleanup)(FnRenderPluginHandle renderPluginHandle); 00056 }; 00057 00058 typedef FnRenderPluginSuite_v2 FnRenderPluginSuite; 00059 00060 struct FnRenderPluginSuite_v1 00061 { 00062 FnRenderPluginHandle (*create)(FnSgIteratorHandle rootIteratorHandle, 00063 FnAttributeHandle argsAttributeHandle); 00064 00065 void (*destroy)(FnRenderPluginHandle renderPluginHandle); 00066 00067 int (*start)(FnRenderPluginHandle renderPluginHandle); 00068 00069 int (*pause)(FnRenderPluginHandle renderPluginHandle); 00070 00071 int (*resume)(FnRenderPluginHandle renderPluginHandle); 00072 00073 int (*stop)(FnRenderPluginHandle renderPluginHandle); 00074 00075 int (*startLiveEditing)(FnRenderPluginHandle renderPluginHandle); 00076 00077 int (*stopLiveEditing)(FnRenderPluginHandle renderPluginHandle); 00078 00079 int (*processControlCommand)(FnRenderPluginHandle renderPluginHandle, 00080 const char* command); 00081 00082 int (*queueDataUpdates)(FnRenderPluginHandle renderPluginHandle, 00083 FnAttributeHandle commandAttributeHandle); 00084 00085 bool (*hasPendingDataUpdates)(FnRenderPluginHandle renderPluginHandle); 00086 00087 int (*applyPendingDataUpdates)(FnRenderPluginHandle renderPluginHandle); 00088 00089 FnAttributeHandle (*configureDiskRenderOutputProcess)( 00090 FnRenderPluginHandle renderPluginHandle, 00091 const char* outputName, 00092 const char* outputPath, 00093 const char* renderMethodName, 00094 const float* frameTime); 00095 }; 00096 } 00097 00098 #endif
1.7.3