00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef _XSIIMAGEFX2_H
00016 #define _XSIIMAGEFX2_H
00017
00018 #include "Template.h"
00019 class CSLImage;
00020
00028 class XSIEXPORT CSLImageFX2
00029 : public CSLTemplate
00030 {
00031 public:
00033 enum EImageDefinitionType
00034 {
00035 SI_LOAD_IN_MEMORY,
00036 SI_USE_FROM_DISK,
00037 SI_BROADCAST,
00038 };
00039
00043 enum EOglFilter
00044 {
00045 SI_UNINTERPOLATED_PIXEL = 9728,
00046 SI_INTERPOLATED_PIXEL = 9729,
00047 SI_UNINTERPOLATED_PIXEL_NEAREST_MIPMAP = 9984,
00048 SI_INTERPOLATED_PIXEL_NEAREST_MIPMAP = 9985,
00049 SI_UNINTERPOLATED_PIXEL_INTERPOLATED_MIPMAP = 9986,
00050 SI_INTERPOLATED_PIXEL_INTERPOLATED_MIPMAP = 9987
00051 };
00052
00054 enum EFieldType
00055 {
00056 SI_NONE,
00057 SI_ODD,
00058 SI_EVEN
00059 };
00060
00066 CSLImageFX2(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00067
00069 virtual ~CSLImageFX2();
00070
00074 ETemplateType Type(){ return XSI_IMAGE_FX2; }
00075
00076 virtual CSLAnimatableType* ParameterFromName(SI_Char *in_szName);
00077
00078 virtual CSLAnimatableType* ParameterFromType(EFCurveType in_Type, SI_Char *in_szParameterName);
00079
00080
00081
00085 SI_Float GetExposure();
00086
00090 SI_Void SetExposure( SI_Float in_fValue );
00091
00095 SI_Float GetDisplayGamma();
00096
00100 SI_Void SetDisplayGamma( SI_Float in_fValue );
00101
00105 SI_Bool GetDisplayGammaAffectsRendering();
00106
00110 SI_Void SetDisplayGammaAffectsRendering( SI_Bool in_bValue );
00111
00115 SI_Char* GetRenderColorProfile();
00116
00120 SI_Void SetRenderColorProfile( SI_Char* in_pValue);
00121
00125 SI_Float GetRenderGamma();
00126
00130 SI_Void SetRenderGamma( SI_Float in_fValue );
00131
00135 EImageDefinitionType GetImageDefinitionType();
00136
00140 SI_Void SetImageDefinitionType( EImageDefinitionType in_Value );
00141
00145 SI_Bool GetEnableMipMap();
00146
00150 SI_Void SetEnableMipMap( SI_Bool in_bValue );
00151
00155 SI_Float GetMipMapScale();
00156
00160 SI_Void SetMipMapScale( SI_Float in_fValue );
00161
00165 SI_Int GetOglMaxSize();
00166
00170 SI_Void SetOglMaxSize( SI_Int in_nValue );
00171
00175 SI_Bool GetOglMipMap();
00176
00180 SI_Void SetOglMipMap( SI_Bool in_Value );
00181
00185 EOglFilter GetOglMinFilter();
00186
00190 SI_Void SetOglMinFilter( EOglFilter in_Value );
00191
00195 EOglFilter GetOglMagFilter();
00196
00200 SI_Void SetOglMagFilter( EOglFilter in_Value );
00201
00205 EFieldType GetFieldType();
00206
00210 SI_Void SetFieldType( EFieldType in_Value );
00211
00215 SI_Int GetSourceTrack();
00216
00220 SI_Void SetSourceTrack( SI_Int in_bValue );
00221
00222
00223 CSLFloatProxy* GetExposureProxy() { return &m_Exposure; };
00224 CSLFloatProxy* GetDisplayGammaProxy() { return &m_DisplayGamma; };
00225 CSLBoolProxy* GetDisplayGammaAffectsRenderingProxy() { return &m_DisplayGammaAffectsRendering; };
00226
00227 CSLStringProxy* GetRenderColorProfileProxy() { return &m_RenderColorProfile; };
00228 CSLFloatProxy* GetRenderGammaProxy() { return &m_RenderGamma; };
00229
00230 CSLEnumProxy<EImageDefinitionType, SI_BROADCAST>* GetImageDefinitionTypeProxy() { return &m_ImageDefinitionType; };
00231 CSLBoolProxy* GetEnableMipMapProxy() { return &m_EnableMipMap; };
00232 CSLFloatProxy* GetMipMapScaleProxy() { return &m_MipMapScale; };
00233
00234 CSLIntProxy* GetOglMaxSizeProxy() { return &m_OglMaxSize; };
00235 CSLBoolProxy* GetOglMipMapProxy() { return &m_OglMipMap; };
00236 CSLEnumProxy<EOglFilter, SI_INTERPOLATED_PIXEL_INTERPOLATED_MIPMAP>* GetOglMinFilterProxy() { return &m_OglMinFilter; };
00237 CSLEnumProxy<EOglFilter, SI_INTERPOLATED_PIXEL>* GetOglMagFilterProxy() { return &m_OglMagFilter; };
00238
00239 CSLEnumProxy<EFieldType, SI_EVEN>* GetFieldTypeProxy() { return &m_FieldType; };
00240 CSLIntProxy* GetSourceTrackProxy() { return &m_SourceTrack; };
00241
00242 private:
00243 CSLFloatProxy m_Exposure;
00244 CSLFloatProxy m_DisplayGamma;
00245 CSLBoolProxy m_DisplayGammaAffectsRendering;
00246
00247 CSLStringProxy m_RenderColorProfile;
00248 CSLFloatProxy m_RenderGamma;
00249
00250 CSLEnumProxy<EImageDefinitionType, SI_BROADCAST> m_ImageDefinitionType;
00251 CSLBoolProxy m_EnableMipMap;
00252 CSLFloatProxy m_MipMapScale;
00253
00254 CSLIntProxy m_OglMaxSize;
00255 CSLBoolProxy m_OglMipMap;
00256 CSLEnumProxy<EOglFilter, SI_INTERPOLATED_PIXEL_INTERPOLATED_MIPMAP> m_OglMinFilter;
00257 CSLEnumProxy<EOglFilter, SI_INTERPOLATED_PIXEL> m_OglMagFilter;
00258
00259 CSLEnumProxy<EFieldType, SI_EVEN> m_FieldType;
00260 CSLIntProxy m_SourceTrack;
00261
00262 SI_Void *m_pReserved;
00263 };
00264
00265 #endif