DynamicPlugin.h

Go to the documentation of this file.
00001 /**<!-------------------------------------------------------------------->
00002    @file   DynamicPlugin
00003    @author Travis Fischer (fisch0920@gmail.com)
00004    @author Matthew Jacobs (jacobs.mh@gmail.com)
00005    @date   Fall 2008
00006    
00007    @brief
00008       Wrapper around a dynamic, externally-loaded plugin for Milton
00009    <!-------------------------------------------------------------------->**/
00010 
00011 #ifndef MILTON_DYNAMIC_PLUGIN_H_
00012 #define MILTON_DYNAMIC_PLUGIN_H_
00013 
00014 #ifdef _WIN32
00015 #  define DLLEXPORT _declspec(dllexport)
00016 #else
00017 #  define DLLEXPORT
00018 #endif
00019 
00020 #ifdef __cplusplus
00021    extern "C" {  // turn off name mangling
00022 #endif
00023       
00024       enum MILTON_PLUGIN_TYPE {
00025          MILTON_PLUGIN_TYPE_RENDERER = 0, 
00026          MILTON_PLUGIN_TYPE_CAMERA, 
00027          MILTON_PLUGIN_TYPE_OUTPUT, 
00028          MILTON_PLUGIN_TYPE_FILTER, 
00029          MILTON_PLUGIN_TYPE_SHAPE, 
00030          MILTON_PLUGIN_TYPE_BSDF, 
00031          MILTON_PLUGIN_TYPE_EMITTER, 
00032          MILTON_PLUGIN_TYPE_MEDIUM, 
00033          MILTON_PLUGIN_TYPE_GENERATOR, 
00034          MILTON_PLUGIN_TYPE_METAOBJECT, 
00035       };
00036       
00037       extern DLLEXPORT MILTON_PLUGIN_TYPE plugin_type();
00038       extern DLLEXPORT void *plugin_new();
00039       extern DLLEXPORT void  plugin_delete(void *plugin);
00040       
00041       typedef MILTON_PLUGIN_TYPE (*plugin_type_func_t)();
00042       typedef void * (*plugin_new_func_t)();
00043       typedef void * (*plugin_delete_func_t)();
00044       
00045 #ifdef __cplusplus
00046    }  // end of extern "C"
00047 #endif
00048 
00049 #endif // MILTON_DYNAMIC_PLUGIN_H_
00050 

Generated on 28 Feb 2009 for Milton by doxygen 1.5.6