Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

RmTypes.h

Go to the documentation of this file.
00001 //=============================================================================
00002 // filename: RmTypes.h                                                         
00003 //                                                                             
00004 //           ATI Research, Inc.                                                
00005 //           3D Application Research Group                                     
00006 //                                                                             
00007 // Description: declaration file for RenderMonkey real-time Framework.         
00008 //                                                                             
00009 //=============================================================================
00010 //   (C) 2004 ATI Research, Inc.  All rights reserved.                         
00011 //=============================================================================
00012 
00013 #ifndef _RM_CORE_TYPES_H_
00014 #define _RM_CORE_TYPES_H_
00015 
00016 //=============================================================================
00020 //=============================================================================
00021 
00022 //=============================================================================
00023 // Include MFC Related    
00024 //=============================================================================
00025 
00026 #if _MSC_VER > 1000
00027 #pragma once
00028 #endif // _MSC_VER > 1000
00029 
00030 #define VC_EXTRALEAN            // Exclude rarely-used stuff from Windows headers
00031 
00032 #define OEMRESOURCE
00033 
00034 #ifdef _UNICODE
00035    #ifndef UNICODE
00036       #define UNICODE
00037    #endif
00038 #endif
00039 
00040 //=============================================================================
00041 // Windows                 
00042 //=============================================================================
00043 #include <windows.h>
00044 #include <tchar.h>
00045 
00046 
00047 //=============================================================================
00048 // C Generic               
00049 //=============================================================================
00050 #include <assert.h>
00051 #include <stdlib.h>
00052 #include <stdio.h>
00053 #include <memory.h>
00054 #include <string.h>
00055 #include <math.h>
00056 
00057 //=============================================================================
00058 // For GUID                     
00059 //=============================================================================
00060 #include <objbase.h>
00061 
00062 //=============================================================================
00063 // Definitions of RenderMonkey SDK library and plug-in DLLs export & import
00064 //=============================================================================
00065 #define RM_API_EXPORT __declspec(dllexport) 
00066 #define RM_API_IMPORT __declspec(dllimport) 
00067 
00068 //=============================================================================
00069 // Used to specify whether methods are being exported from this library during its compilation and 
00070 // linkage or being imported to be used in an another plug-in.     
00071 //=============================================================================
00072 #ifdef RMCORE_EXPORTS
00073    #define RM_API RM_API_EXPORT
00074 #else
00075    #define RM_API RM_API_IMPORT
00076 #endif
00077 
00078 //=============================================================================
00079 // Basic data types 
00080 //=============================================================================
00081 #define RM_CHAR   char       
00082 #define RM_WCHAR  wchar_t    
00083 
00084 #ifdef _UNICODE
00085    #define RM_TCHAR  RM_WCHAR     
00086 
00087    #ifndef UNICODE
00088       #define UNICODE
00089    #endif
00090 #else
00091    #define RM_TCHAR  RM_CHAR      
00092 #endif
00093 
00094 #define RM_BYTE   unsigned char   
00095 #define RM_WORD   unsigned short  
00096 #define RM_DWORD  unsigned int    
00097 
00098 #define RM_INT8   char            
00099 #define RM_INT16  short           
00100 #define RM_INT32  int             
00101 #define RM_INT    int             
00102 
00103 #define RM_LONG   long            
00104 #define RM_ULONG  unsigned long   
00105 
00106 #define RM_FLOAT  float           
00107 #define RM_DOUBLE double          
00108 
00109 #define RM_NODETYPE_COUNT 256     
00110 
00111 typedef GUID RmPlugInID;          
00112 
00113 //=============================================================================
00121 //=============================================================================
00122 class RM_API RmNodeID
00123 {
00124 public :
00125 
00126    //==========================================================================
00130    //==========================================================================
00131    RmNodeID() 
00132    {
00133       memset( &m_guid, 0, sizeof( GUID ) );
00134 
00135    }; // End of constructor
00136 
00137    //==========================================================================
00143    //==========================================================================
00144    RmNodeID( const GUID& guid ) 
00145    {
00146       memcpy( &m_guid, &guid, sizeof( GUID ) );
00147 
00148    }; // End of constructor
00149 
00150    //==========================================================================
00156    //==========================================================================
00157    RmNodeID( const RmNodeID& srcID ) 
00158    {
00159       memcpy( &m_guid, &srcID.GetGUID(), sizeof( GUID ) );
00160 
00161    }; // End of constructor
00162 
00163    //==========================================================================
00168    //==========================================================================
00169    virtual ~RmNodeID() {};
00170 
00171    //==========================================================================
00178    //==========================================================================
00179    bool operator == ( const RmNodeID& src )
00180    {
00181       if ( ::IsEqualGUID( m_guid, src.GetGUID() ) == TRUE )
00182       {
00183          return true;
00184       }
00185 
00186       return false;
00187 
00188    }; // End of operator ==
00189 
00190    //==========================================================================
00196    //==========================================================================
00197    void operator = ( const RmNodeID &src )
00198    {
00199       memcpy( &m_guid, &src.GetGUID(), sizeof( GUID ) );
00200 
00201    }; // End of operator =
00202 
00203    //==========================================================================
00209    //==========================================================================
00210    const GUID& GetGUID() const { return m_guid; };
00211 
00212 private :
00213    GUID   m_guid; 
00214 
00215 }; // End of RmNodeID
00216 
00217 //=============================================================================
00223 //=============================================================================
00224 typedef enum 
00225 {
00227    RM_PLUGINTYPE_GENERIC = 0,
00228 
00230    RM_PLUGINTYPE_EDITOR,
00231 
00234    RM_PLUGINTYPE_WORKSPACE_EDITOR,
00235 
00239    RM_PLUGINTYPE_IMPORTER,
00240 
00243    RM_PLUGINTYPE_EXPORTER,
00244 
00247    RM_PLUGINTYPE_EFFECTVIEWER,
00248 
00251    RM_PLUGINTYPE_GEOMETRY_LOADER,
00252 
00255    RM_PLUGINTYPE_TEXTURE_LOADER,
00256 
00260    RM_PLUGINTYPE_GENERATOR
00261 
00262 } RmPlugInType; // End of RmPlugInType
00263 
00264 //=============================================================================
00272 //=============================================================================
00273 typedef enum
00274 {
00275    RM_EXPORT_DATA,    
00276    RM_SAVE_DATA       
00277 }  RmExporterPlugInType;
00278 
00279 //=============================================================================
00286 //=============================================================================
00287 typedef enum
00288 {
00289    RM_WINDOWTYPE_ALL = 0,   
00290    RM_WINDOWTYPE_DLG,       
00291    RM_WINDOWTYPE_MDI,       
00292    RM_WINDOWTYPE_DOCKTOOL,  
00293    RM_WINDOWTYPE_NONE       
00294 } RmWindowType; // End of RmWindowType
00295 
00296 //=============================================================================
00303 //=============================================================================
00304 typedef enum
00305 {
00306    RM_WINDOWDOCK_FLOAT = 0,      
00307    RM_WINDOWDOCK_LEFT,           
00308    RM_WINDOWDOCK_RIGHT,          
00309    RM_WINDOWDOCK_TOP,            
00310    RM_WINDOWDOCK_BOTTOM,         
00311    
00312 } RmDockingPaneLayout; // End of RmDockingPaneLayout
00313 
00314 //=============================================================================
00321 //=============================================================================
00322 typedef enum
00323 {
00324    RS_ENUM = 0,            
00325    RS_BOOLEAN,             
00326    RS_MASK,                
00327    RS_INT,                 
00328    RS_FLOAT,               
00329    RS_COLOR,               
00330    RS_FLAG,                
00331    RS_ENUM_WITH_FLAG,      
00332    RS_TYPE_COUNT           
00333 
00334 } RmStateType; // End of RmStateType 
00335 
00336 
00337 //=============================================================================
00343 //=============================================================================
00344 typedef enum
00345 {
00346    RM_ANGLE_DEGREE = 0,  
00347    RM_ANGLE_RADIAN       
00348 
00349 } RmAngleType;
00350 
00351 // Conversion methods between the two //
00352 #define RM_RADIAN_TO_DEGREE   (360.0/6.2832) 
00353 #define RM_DEGREE_TO_RADIAN   (6.2832/360.0) 
00354 
00355 //=============================================================================
00361 //=============================================================================
00362 typedef enum
00363 {
00364    RM_MATRIX_RAW = 0,     
00365    RM_MATRIX_ROTATE,      
00366    RM_MATRIX_TRANSLATE,   
00367    RM_MATRIX_SCALE,       
00368    RM_MATRIX_ORTHO,       
00369    RM_MATRIX_PERSPECTIVE  
00370 
00371 } RmMatrixType; // End of RmMatrixType 
00372 
00373 //=============================================================================
00379 //=============================================================================
00380 typedef enum
00381 {
00382    RM_DX_LIGHT_POINT = 0,  
00383    RM_DX_LIGHT_SPOT,       
00384    RM_DX_LIGHT_DIRECTIONAL 
00385 
00386 } RmLightType; // End of RmLightType
00387 
00388 //=============================================================================
00394 //=============================================================================
00395 typedef enum
00396 {
00397    RMVSDT_FLOAT1 = 0,    
00398    RMVSDT_FLOAT2,        
00399    RMVSDT_FLOAT3,        
00400    RMVSDT_FLOAT4,        
00401    RMVSDT_D3DCOLOR,      
00402 
00403    RMVSDT_UBYTE4,        
00404    RMVSDT_SHORT2,        
00405    RMVSDT_SHORT4         
00406 
00407 } RmStreamChannelDataType; // End of RmStreamChannelDataType 
00408 
00409 //=============================================================================
00415 //=============================================================================
00416 typedef enum
00417 {
00418     RM_DECLUSAGE_POSITION = 0,  
00419     RM_DECLUSAGE_BLENDWEIGHT,   
00420     RM_DECLUSAGE_BLENDINDICES,  
00421     RM_DECLUSAGE_NORMAL,        
00422     RM_DECLUSAGE_PSIZE,         
00423     RM_DECLUSAGE_TEXCOORD,      
00424     RM_DECLUSAGE_TANGENT,       
00425     RM_DECLUSAGE_BINORMAL,      
00426     RM_DECLUSAGE_TESSFACTOR,    
00427     RM_DECLUSAGE_POSITIONT,     
00428     RM_DECLUSAGE_COLOR,         
00429     RM_DECLUSAGE_FOG,           
00430     RM_DECLUSAGE_DEPTH,         
00431     RM_DECLUSAGE_SAMPLE,        
00432     RM_DECLUSAGE_NUM            
00433 
00434 } RmStreamChannelUsageType; // End of RmStreamChannelUsageType
00435 
00436 
00437 //=============================================================================
00443 //=============================================================================
00444 typedef enum
00445 {
00446    RM_PRIMITIVETYPE_POINT = 0,     
00447    RM_PRIMITIVETYPE_LINE,          
00448    RM_PRIMITIVETYPE_LINESTRIP,     
00449    RM_PRIMITIVETYPE_TRIANGLELIST,  
00450    RM_PRIMITIVETYPE_TRIANGLEFAN,   
00451    RM_PRIMITIVETYPE_TRIANGLESTRIP  
00452 
00453 } RmPrimitiveType; // End of RmPrimitiveType
00454 
00455 
00456 //=============================================================================
00462 //=============================================================================
00463 typedef enum 
00464 {
00465    RM_SHADER_UNKNOWN = 0,   
00466    RM_SHADER_DX_VS_1_1,     
00467    RM_SHADER_DX_VS_2_0,     
00468    RM_SHADER_DX_VS_2_0_SW,  
00469    RM_SHADER_DX_VS_3_0,     
00470    RM_SHADER_DX_VS_3_0_SW,  
00471    RM_SHADER_DX_PS_1_1,     
00472    RM_SHADER_DX_PS_1_2,     
00473    RM_SHADER_DX_PS_1_3,     
00474    RM_SHADER_DX_PS_1_4,     
00475    RM_SHADER_DX_PS_2_0,     
00476    RM_SHADER_DX_PS_2_A,     
00477    RM_SHADER_DX_PS_2_B,     
00478    RM_SHADER_DX_PS_2_0_SW,  
00479    RM_SHADER_DX_PS_3_0,     
00480    RM_SHADER_DX_PS_3_0_SW   
00481 
00482 } RmShaderVersion; // End of RmShaderVersion
00483 
00484 
00485 //=============================================================================
00491 //=============================================================================
00492 typedef enum
00493 {
00494    RM_PROJECTIONMODE_PERSPECTIVE = 0,  
00495    RM_PROJECTIONMODE_ORTHOGONAL        
00496 
00497 } RmProjectionMode; // End of RmProjectionMode
00498 
00499 
00500 //=============================================================================
00506 //=============================================================================
00507 typedef enum
00508 {
00509    RM_COORDINATESYSTEM_LHS = 0,     
00510    RM_COORDINATESYSTEM_RHS,         
00511 
00512 } RmCoordinateSystem; // End of RmCoordinateSystem
00513 
00514 //=============================================================================
00520 //=============================================================================
00521 enum RmModelOrientation
00522 
00523 {
00524    RM_ORIENTATION_LHS,  
00525    RM_ORIENTATION_RHS   
00526 
00527 }; // End of RmModelOrientation enumeration
00528 
00529 //=============================================================================
00535 //=============================================================================
00536 enum RmTextureOrigin
00537 
00538 {
00539    RM_ORIGIN_TOP_LEFT,   
00540    RM_ORIGIN_BOTTOM_LEFT 
00541 
00542 }; // End of RmTextureOrigin enumeration
00543 
00544 //=============================================================================
00550 //=============================================================================
00551 struct RM_API RmGeneralPreferenceData
00552 {
00553    RmGeneralPreferenceData() {};
00554 
00556    float fTimeCycle;
00557 
00562    BOOL  bTextureRefresh;
00563    float fTextureRefreshPeriod;
00564 
00569    BOOL  bModelRefresh;
00570    float fModelRefreshPeriod;
00571 
00573    RM_TCHAR  strDefaultTextureDirectory[ MAX_PATH ];
00574 
00576    RM_TCHAR  strDefaultModelDirectory[ MAX_PATH ];
00577 
00579    BOOL  bResetCameraOnEffectChange;   
00580 
00581    // Default orientation for newly created models
00582    RmModelOrientation modelOrientation;
00583    
00584    // Default origin for newly created textures
00585    RmTextureOrigin textureOrigin;
00586 
00587    // A flag to determine if the window settings (positions) are to be restored
00588    BOOL bRestoreDockingWindowSettings;
00589 
00590 }; // End of RmGeneralPreferenceData
00591 
00592 
00593 //=============================================================================
00603 //=============================================================================
00604 struct RM_API RmWindowPlacementData
00605 {
00606    RmWindowPlacementData();
00607 
00610    RECT GetWindowRect() const;
00611 
00612    //--------------------------------------------------
00613    // Window placement data 
00614    //--------------------------------------------------
00615    int x;               
00616    int y;               
00617    int width;           
00618    int height;          
00619 
00620    // Location when minimized ( iconized )
00621    int minimizedX;      
00622    int minimizedY;      
00623 
00625    int showStatus;
00626 
00628    bool bVisible;
00629 
00630 }; // End of RmWindowPlacementData
00631 
00632 //=============================================================================
00644 //=============================================================================
00645 enum RmNodeUpdateType
00646 {
00650    RM_NODE_GENERAL_UPDATE,          
00651 
00656    RM_NODE_NAME_CHANGED_UPDATE,   
00657 
00664    RM_NODE_VALUE_CHANGED_UPDATE,
00665 
00669    RM_NODE_ADDED_UPDATE,            
00670 
00675    RM_NODE_DELETED_UPDATE,          
00676 
00677 }; // End of enum RmNodeUpdateType definition
00678 
00679 
00680 //=============================================================================
00686 //=============================================================================
00687 enum RmTextureType
00688 {
00689    RM_TEXTURE_2D = 0,    
00690    RM_TEXTURE_3D,        
00691    RM_TEXTURE_CUBEMAP,   
00692 }; // End of enum RmTextureType definition
00693 
00694 
00695 //=============================================================================
00706 //=============================================================================
00707 enum RmPixelFormatType
00708 {  
00709    RM_PIXELFORMAT_UNKNOWN = 0,  
00710    RM_PIXELFORMAT_R8G8B8,       
00711    RM_PIXELFORMAT_A8R8G8B8,     
00712    RM_PIXELFORMAT_X8R8G8B8,     
00713    RM_PIXELFORMAT_R5G6B5,       
00714    RM_PIXELFORMAT_X1R5G5B5,     
00715    RM_PIXELFORMAT_A1R5G5B5,     
00716    RM_PIXELFORMAT_A4R4G4B4,     
00717    RM_PIXELFORMAT_R3G3B2,       
00718    RM_PIXELFORMAT_A8,           
00719    RM_PIXELFORMAT_A8R3G3B2,     
00720    RM_PIXELFORMAT_X4R4G4B4,     
00721    RM_PIXELFORMAT_A2B10G10R10,  
00722    RM_PIXELFORMAT_A8B8G8R8,     
00723    RM_PIXELFORMAT_X8B8G8R8,     
00724    RM_PIXELFORMAT_G16R16,       
00725    RM_PIXELFORMAT_A2R10G10B10,  
00726    RM_PIXELFORMAT_A16B16G16R16, 
00727    RM_PIXELFORMAT_A8P8,         
00728    RM_PIXELFORMAT_P8,           
00729    RM_PIXELFORMAT_L8,           
00730    RM_PIXELFORMAT_L16,          
00731    RM_PIXELFORMAT_A8L8,         
00732    RM_PIXELFORMAT_A4L4,         
00733 
00734    RM_PIXELFORMAT_V8U8,         
00735    RM_PIXELFORMAT_Q8W8V8U8,     
00736    RM_PIXELFORMAT_V16U16,       
00737    RM_PIXELFORMAT_Q16W16V16U16, 
00738    RM_PIXELFORMAT_CxV8U8,       
00739 
00740    RM_PIXELFORMAT_L6V5U5,       
00741    RM_PIXELFORMAT_X8L8V8U8,     
00742    RM_PIXELFORMAT_A2W10V10U10,  
00743 
00744    RM_PIXELFORMAT_MULTI2_ARGB8, 
00745    RM_PIXELFORMAT_G8R8_G8B8,    
00746    RM_PIXELFORMAT_R8G8_B8G8,    
00747    RM_PIXELFORMAT_DXT1,         
00748    RM_PIXELFORMAT_DXT2,         
00749    RM_PIXELFORMAT_DXT3,         
00750    RM_PIXELFORMAT_DXT4,         
00751    RM_PIXELFORMAT_DXT5,         
00752    RM_PIXELFORMAT_UYVY,         
00753    RM_PIXELFORMAT_YUY2,         
00754 
00755    RM_PIXELFORMAT_R16F,         
00756    RM_PIXELFORMAT_G16R16F,      
00757    RM_PIXELFORMAT_A16B16G16R16F,
00758 
00759    RM_PIXELFORMAT_R32F,         
00760    RM_PIXELFORMAT_G32R32F,      
00761    RM_PIXELFORMAT_A32B32G32R32F,
00762 
00763    RM_PIXELFORMAT_NUM_FORMATS   
00764 
00765 }; // End of enum RmPixelFormatType definition
00766 
00767 
00768 //=============================================================================
00774 //=============================================================================
00775 enum RmCubemapFaceType
00776 {
00777    RM_CUBEMAP_FACE_X_POS = 0, 
00778    RM_CUBEMAP_FACE_X_NEG = 1, 
00779    RM_CUBEMAP_FACE_Y_POS = 2, 
00780    RM_CUBEMAP_FACE_Y_NEG = 3, 
00781    RM_CUBEMAP_FACE_Z_POS = 4, 
00782    RM_CUBEMAP_FACE_Z_NEG = 5  
00783 }; // End of enum RmCubemapFaceType definition
00784 
00785 
00786 //=============================================================================
00787 // API identifier strings 
00788 //=============================================================================
00789 #define RM_DX_API        _T("D3D")          
00790 #define RM_OPENGL_API    _T("OpenGL")       
00791 #define RM_API_AGNOSTIC  _T("")             
00792 
00793 //=============================================================================
00794 // RenderMonkey node type string identifyiers. Use these for all type checks.
00795 //=============================================================================
00796 #define RM_NODE_TYPE                         _T("RmNode")
00797 #define RM_EFFECT_WORKSPACE_TYPE             _T("RmEffectWorkspace")
00798 #define RM_REGISTRY_BRANCH_TYPE              _T("RmRegistryBranch")
00799 #define RM_EFFECT_GROUP_TYPE                 _T("RmEffectGroup")
00800 #define RM_EFFECT_TYPE                       _T("RmEffect")
00801 #define RM_OPENGL_EFFECT_TYPE                _T("RmOpenGLEffect")
00802 #define RM_DIRECTX_EFFECT_TYPE               _T("RmDirectXEffect")
00803 #define RM_VARIABLE_TYPE                     _T("RmVariable")
00804 #define RM_DYNAMIC_VARIABLE_TYPE             _T("RmDynamicVariable" )
00805 #define RM_COLOR_VARIABLE_TYPE               _T("RmColorVariable")
00806 #define RM_VECTOR_VARIABLE_TYPE              _T("RmVectorVariable")
00807 #define RM_FLOAT_VARIABLE_TYPE               _T("RmFloatVariable")
00808 #define RM_FLOAT2_VARIABLE_TYPE              _T("RmFloat2Variable")
00809 #define RM_FLOAT3_VARIABLE_TYPE              _T("RmFloat3Variable")
00810 #define RM_MATRIX_VARIABLE_TYPE              _T("RmMatrixVariable")
00811 #define RM_INTEGER_VARIABLE_TYPE             _T("RmIntegerVariable")
00812 #define RM_BOOLEAN_VARIABLE_TYPE             _T("RmBooleanVariable")
00813 #define RM_TEXTURE_VARIABLE_TYPE             _T("RmTextureVariable")
00814 #define RM_2D_TEXTURE_VARIABLE_TYPE          _T("Rm2DTextureVariable")
00815 #define RM_3D_TEXTURE_VARIABLE_TYPE          _T("Rm3DTextureVariable")  
00816 #define RM_CUBEMAP_TEXTURE_VARIABLE_TYPE     _T("RmCubemapVariable")
00817 #define RM_LIGHT_VARIABLE_TYPE               _T("RmLightVariable")
00818 #define RM_MATERIAL_VARIABLE_TYPE            _T("RmMaterialVariable")
00819 #define RM_PASS_TYPE                         _T("RmPass")
00820 #define RM_OPENGL_PASS_TYPE                  _T("RmGLPass")
00821 #define RM_MODEL_DATA_TYPE                   _T("RmModelData")
00822 #define RM_MODEL_REFERENCE_TYPE              _T("RmModelReference")
00823 #define RM_STREAM_MAP_TYPE                   _T("RmStreamMap")
00824 #define RM_STREAM_MAP_REFERENCE_TYPE         _T("RmStreamMapReference")
00825 #define RM_RENDERABLE_TEXTURE_TYPE           _T("RmRenderableTexture")
00826 #define RM_RENDER_TARGET_TYPE                _T("RmRenderTarget")
00827 #define RM_SHADER_TYPE                       _T("RmShader")
00828 #define RM_HL_SHADER_TYPE                    _T("RmHLShader")
00829 #define RM_GL_SHADER_TYPE                    _T("RmGLShader")
00830 #define RM_HLSL_SHADER_TYPE                  _T("RmHLSLShader")
00831 #define RM_RENDER_STATE_BLOCK_TYPE           _T("RmRenderStateBlock")
00832 #define RM_STATE_TYPE                        _T("RmState")
00833 #define RM_TEXTURE_OBJECT_TYPE               _T("RmTextureObject")
00834 #define RM_TEXTURE_REFERENCE_TYPE            _T("RmTextureReference")
00835 #define RM_LIGHT_OBJECT_TYPE                 _T("RmLightObject")
00836 #define RM_LIGHT_REFERENCE_TYPE              _T("RmLightReference")
00837 #define RM_MATERIAL_OBJECT_TYPE              _T("RmMaterialObject")
00838 #define RM_MATERIAL_REFERENCE_TYPE           _T("RmMaterialReference")
00839 #define RM_STREAM_TYPE                       _T("RmStream")
00840 #define RM_STREAM_CHANNEL_TYPE               _T("RmStreamChannel")
00841 #define RM_STRING_VARIABLE_TYPE              _T("RmStringVariable")
00842 #define RM_SHADER_CONSTANT_TYPE              _T("RmShaderConstant")
00843 #define RM_SAMPLER_TYPE                      _T("RmSampler")
00844 #define RM_CAMERA_TYPE                       _T("RmCamera")
00845 #define RM_CAMERA_REFERENCE_TYPE             _T("RmCameraReference")
00846 #define RM_PLUGIN_DATA_TYPE                  _T("RmPlugInData")
00847 #define RM_CLIPBOARD_NODE_TYPE               _T("RmClipboardNode")
00848 
00849 //=============================================================================
00856 //=============================================================================
00857 typedef enum
00858 {
00859    RM_ICON_SIZE_SMALL = 0, 
00860    RM_ICON_SIZE_LARGE,     
00861 } RmIconSize;
00862 
00863 
00864 //=============================================================================
00865 // RenderMonkey Icon ID
00866 //=============================================================================
00867 typedef enum
00868 {
00869    RM_RENDER_MONKEY_ICON_ID = 0,              
00870    RM_ATI_ICON_ID,              
00871    RM_WORKSPACE_ICON_ID,                            
00872    RM_REGISTRY_BRANCH_ICON_ID,                       
00873    RM_FOLDER_OPEN_ICON_ID,                              
00874    RM_EFFECT_ICON_ID,
00875    RM_OPENGL_ICON_ID,                                  
00876    RM_D3D_ICON_ID,                                    
00877    RM_VARIABLE_ICON_ID,
00878    RM_DYNAMIC_ICON_ID,                              
00879    RM_COLOR_ICON_ID,                         
00880    RM_VECTOR_1_ICON_ID,                              
00881    RM_VECTOR_2_ICON_ID,                              
00882    RM_VECTOR_3_ICON_ID,                              
00883    RM_VECTOR_4_ICON_ID,                              
00884    RM_MATRIX_2x2_ICON_ID,                            
00885    RM_MATRIX_3x3_ICON_ID,                            
00886    RM_MATRIX_4x4_ICON_ID,                            
00887    RM_INTEGER_ICON_ID,                              
00888    RM_TEXTURE_ICON_ID,                           
00889    RM_VOLUME_ICON_ID,                            
00890    RM_CUBEMAP_ICON_ID,                      
00891    RM_LIGHT_ICON_ID,                                  
00892    RM_MATERIAL_ICON_ID,                            
00893    RM_PASS_ICON_ID,                                             
00894    RM_PRINT_ICON_ID,                                             
00895    RM_MODEL_ICON_ID,                                      
00896    RM_MODEL_REFERENCE_ICON_ID,                       
00897    RM_STREAM_MAP_ICON_ID,                                 
00898    RM_STREAM_MAP_REFERENCE_ICON_ID,             
00899    RM_RENDERABLE_TEXTURE_ICON_ID,                 
00900    RM_RENDER_TARGET_ICON_ID,                           
00901    RM_RENDER_STATE_BLOCK_ICON_ID,                 
00902    RM_STATE_ICON_ID,                                           
00903    RM_VERTEX_TEXTURE_OBJECT_ICON_ID,                         
00904    RM_TEXTURE_OBJECT_ICON_ID,                         
00905    RM_TEXTURE_REFERENCE_ICON_ID,                   
00906    RM_LIGHT_OBJECT_ICON_ID,                             
00907    RM_LIGHT_REFERENCE_ICON_ID,                       
00908    RM_MATERIAL_OBJECT_ICON_ID,                       
00909    RM_MATERIAL_REFERENCE_ICON_ID,                 
00910    RM_STREAM_ICON_ID,                                         
00911    RM_STREAM_CHANNEL_ICON_ID,                         
00912    RM_STRING_ICON_ID,                       
00913    RM_SHADER_CONSTANT_ICON_ID,                       
00914    RM_SAMPLER_ICON_ID,                                       
00915    RM_SHADER_ICON_ID,
00916    RM_DISASSEMBLER_ICON_ID,
00917    RM_OUTPUT_ICON_ID,
00918    RM_CAMERA_ICON_ID,                                         
00919    RM_CAMERA_REFERENCE_ICON_ID,                     
00920    RM_VERTEX_SHADER_ICON_ID,
00921    RM_PIXEL_SHADER_ICON_ID,   
00922    RM_RENDER_TARGET_SCREEN_ICON_ID,
00923    RM_BOOLEAN_TRUE_ICON_ID,
00924    RM_BOOLEAN_FALSE_ICON_ID,              
00925    RM_CAMERA_ACTIVE_ICON_ID,
00926    RM_ART_ICON_ID,
00927    RM_ART_OVERLAY_ICON_ID,
00928    RM_DISABLED_OVERLAY_ICON_ID,
00929    RM_HLSL_OVERLAY_ICON_ID,
00930    RM_GLSL_OVERLAY_ICON_ID,
00931    RM_PREDEFINED_OVERLAY_ICON_ID,
00932    RM_PRELINKED_OVERLAY_ICON_ID,
00933    RM_CUT_ICON_ID,
00934    RM_COPY_ICON_ID,
00935    RM_PASTE_ICON_ID,
00936    RM_DELETE_ICON_ID,
00937    RM_ERROR_ICON_ID,
00938    RM_FOLDER_CLOSED_ICON_ID,
00939    RM_UNDO_ICON_ID,
00940    RM_REDO_ICON_ID,
00941    RM_INFO_ICON_ID,
00942    RM_WINDOW_CASCADE_ICON_ID,
00943    RM_WINDOW_TILE_HORIZONTAL_ICON_ID,
00944    RM_WINDOW_TILE_VERTICAL_ICON_ID,
00945    RM_PLUGIN_DATA_ICON_ID,
00946 
00947 } RmIconID;
00948 
00949 //=============================================================================
00950 // SDK Version definitions 
00951 //
00952 // A plug-in must have current sdk version information in
00953 // order for it to be loaded by RenderMonkey at startup
00954 //=============================================================================
00955 #define RENDERMONKEY_SDK_CURRENT_VERSION_MAJOR           1
00956 #define RENDERMONKEY_SDK_CURRENT_VERSION_MINOR           6
00957 
00958 //=============================================================================
00959 // XML Version definitions 
00960 //=============================================================================
00961 #define RENDERMONKEY_XML_VERSION_1_0                     _T( "RenderMonkey 1.0" )
00962 #define RENDERMONKEY_XML_VERSION_1_1                     _T( "RenderMonkey 1.1" )
00963 #define RENDERMONKEY_XML_VERSION_1_5                     _T( "RenderMonkey 1.5" )
00964 #define RENDERMONKEY_XML_VERSION_1_6                     _T( "RenderMonkey 1.6" )
00965 #define RENDERMONKEY_XML_DEFAULT_VERSION                 RENDERMONKEY_XML_VERSION_1_0
00966 #define RENDERMONKEY_XML_CURRENT_VERSION                 RENDERMONKEY_XML_VERSION_1_6
00967 
00968 #define RENDERMONKEY_XML_CURRENT_DTD_VERSION             _T( "data\\RmDTDHeader.rfx" )
00969 
00970 //=============================================================================
00971 // Definitions of predefined variables update types. This signifies how the predefined variable 
00972 // is updated by the preview window during each frame's rendering.           
00973 //=============================================================================
00974 #define RM_DEFINED_VARIABLE_UPDATE_PER_EFFECT   _T("Effect")     // The variable needs to be updated for each frame 
00975 #define RM_DEFINED_VARIABLE_UPDATE_PER_PASS     _T("Pass")       // The variable needs to be updated each draw call
00976 
00977 //=============================================================================
00978 // Used for determination of state usages 
00979 //=============================================================================
00980 #define RM_RENDER_STATE_USAGE          _T("RENDER_STATE")
00981 #define RM_TEXTURE_STAGE_STATE_USAGE   _T("TEXTURE_STATE")
00982 #define RM_SAMPLER_STATE_USAGE         _T("SAMPLER_STATE")
00983 
00984 //=============================================================================
00985 // Used to find the named plugins
00986 //=============================================================================
00987 #define RM_TEXTURE_VIEWER_PLUGIN_ID       { 0xab857d87, 0xd308, 0x4293, { 0x82, 0x33, 0x5a, 0x2a, 0x51, 0x7a, 0xb9, 0x11 } }
00988 #define RM_EXTERNAL_FILE_EDITOR_PLUGIN_ID { 0x47c91d6, 0x73f9, 0x4e64, { 0xae, 0x72, 0x20, 0x76, 0x7, 0xe5, 0x21, 0x23 } }
00989 #define RM_WORKSPACE_EDITOR_PLUGIN_ID     { 0x6c3ed0be, 0xfc21, 0x47fb, { 0xb5, 0x4f, 0xac, 0xbc, 0xf, 0x17, 0xf7, 0xe2 } }
00990 #define RM_DX9_VIEWER_PLUGIN_ID           { 0xd158f5f1, 0x9d5d, 0x4173, { 0x9f, 0xe3, 0x90, 0x65, 0x97, 0xdd, 0x96, 0x32 } }
00991 #define RM_OPENGL_VIEWER_PLUGIN_ID        { 0x29aaa06f, 0xfae1, 0x4eb6, { 0x81, 0x7, 0x25, 0x6, 0x64, 0x64, 0x84, 0x4a } }
00992 #define RM_TEXTURE_LOADER_PLUGIN_ID       { 0xf35b195d, 0xb325, 0x4365, { 0x9e, 0x21, 0x67, 0xc1, 0xd0, 0x8b, 0x4, 0x2 } }
00993 
00994 //=============================================================================
01002 //=============================================================================
01003 class RmNode;
01004 struct RmHighlightLine
01005 {
01006    RmNode      *pNode;           
01007    RM_TCHAR    *szPassName;      
01008    int          nLineNumber;     
01009    RM_TCHAR    *szExtraString;   
01010 
01011 };    // End of struct RmHighlightLine
01012 
01013 
01014 //=============================================================================
01015 // Generic Memory Allocation Function
01016 //=============================================================================
01017 RM_API RM_BYTE* RmAllocateBuffer( int sizeOfData );     
01018 RM_API void     RmDeallocateBuffer( RM_BYTE* pBuffer ); 
01019 
01020 //=============================================================================
01027 //=============================================================================
01028 enum RmViewerUpdateMode
01029 {
01030    RM_UPDATE_FASTEST = 0, 
01031    RM_UPDATE_VSYNCH,      
01032    RM_UPDATE_REQUEST      
01033 
01034 }; // End of RmViewerUpdateMode enumeration
01035 
01036 //=============================================================================
01042 //=============================================================================
01043 enum RmViewerUIMode
01044 {
01046    RM_UI_NONE = 0,  
01047 
01050    RM_UI_CAMERA_ROTATE,
01051 
01054    RM_UI_CAMERA_PAN,
01055 
01058    RM_UI_CAMERA_ZOOM,
01059 
01062    RM_UI_CAMERA_OVERLOAD,
01063 
01066    RM_UI_INPUT_MODE          
01067 
01068 }; // End of RmViewerUIMode enumeration declaration
01069 
01070 #endif // _RM_CORE_TYPES_H

Generated on Fri Feb 25 16:08:41 2005 for RenderMonkey SDK by doxygen 1.3.6