Katana Plug-in APIs 0.1

FnRenderPluginSuite.h

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
 All Classes Functions Variables Typedefs Enumerations Enumerator