00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef _XSIIMAGEFX2_H
00013 #define _XSIIMAGEFX2_H
00014
00015 #include "Template.h"
00016 class CSLImage;
00017
00022 class XSIEXPORT CSLImageFX2
00023 : public CSLTemplate
00024 {
00025 public:
00027 enum EImageDefinitionType
00028 {
00029 SI_LOAD_IN_MEMORY,
00030 SI_USE_FROM_DISK,
00031 SI_BROADCAST,
00032 };
00033
00037 enum EOglFilter
00038 {
00039 SI_UNINTERPOLATED_PIXEL = 9728,
00040 SI_INTERPOLATED_PIXEL = 9729,
00041 SI_UNINTERPOLATED_PIXEL_NEAREST_MIPMAP = 9984,
00042 SI_INTERPOLATED_PIXEL_NEAREST_MIPMAP = 9985,
00043 SI_UNINTERPOLATED_PIXEL_INTERPOLATED_MIPMAP = 9986,
00044 SI_INTERPOLATED_PIXEL_INTERPOLATED_MIPMAP = 9987
00045 };
00046
00048 enum EFieldType
00049 {
00050 SI_NONE,
00051 SI_ODD,
00052 SI_EVEN
00053 };
00054
00060 CSLImageFX2(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00061
00063 virtual ~CSLImageFX2();
00064
00068 ETemplateType Type(){ return XSI_IMAGE_FX2; }
00069
00070 virtual CSLAnimatableType* ParameterFromName(SI_Char *in_szName);
00071
00072 virtual CSLAnimatableType* ParameterFromType(EFCurveType in_Type, SI_Char *in_szParameterName);
00073
00074
00075
00079 SI_Float GetExposure();
00080
00084 SI_Void SetExposure( SI_Float in_fValue );
00085
00089 SI_Float GetDisplayGamma();
00090
00094 SI_Void SetDisplayGamma( SI_Float in_fValue );
00095
00099 SI_Bool GetDisplayGammaAffectsRendering();
00100
00104 SI_Void SetDisplayGammaAffectsRendering( SI_Bool in_bValue );
00105
00109 SI_Char* GetRenderColorProfile();
00110
00114 SI_Void SetRenderColorProfile( SI_Char* in_pValue);
00115
00119 SI_Float GetRenderGamma();
00120
00124 SI_Void SetRenderGamma( SI_Float in_fValue );
00125
00129 EImageDefinitionType GetImageDefinitionType();
00130
00134 SI_Void SetImageDefinitionType( EImageDefinitionType in_Value );
00135
00139 SI_Bool GetEnableMipMap();
00140
00144 SI_Void SetEnableMipMap( SI_Bool in_bValue );
00145
00149 SI_Float GetMipMapScale();
00150
00154 SI_Void SetMipMapScale( SI_Float in_fValue );
00155
00159 SI_Int GetOglMaxSize();
00160
00164 SI_Void SetOglMaxSize( SI_Int in_nValue );
00165
00169 SI_Bool GetOglMipMap();
00170
00174 SI_Void SetOglMipMap( SI_Bool in_Value );
00175
00179 EOglFilter GetOglMinFilter();
00180
00184 SI_Void SetOglMinFilter( EOglFilter in_Value );
00185
00189 EOglFilter GetOglMagFilter();
00190
00194 SI_Void SetOglMagFilter( EOglFilter in_Value );
00195
00199 EFieldType GetFieldType();
00200
00204 SI_Void SetFieldType( EFieldType in_Value );
00205
00209 SI_Int GetSourceTrack();
00210
00214 SI_Void SetSourceTrack( SI_Int in_bValue );
00215
00216
00217 CSLFloatProxy* GetExposureProxy() { return &m_Exposure; };
00218 CSLFloatProxy* GetDisplayGammaProxy() { return &m_DisplayGamma; };
00219 CSLBoolProxy* GetDisplayGammaAffectsRenderingProxy() { return &m_DisplayGammaAffectsRendering; };
00220
00221 CSLStringProxy* GetRenderColorProfileProxy() { return &m_RenderColorProfile; };
00222 CSLFloatProxy* GetRenderGammaProxy() { return &m_RenderGamma; };
00223
00224 CSLEnumProxy<EImageDefinitionType, SI_BROADCAST>* GetImageDefinitionTypeProxy() { return &m_ImageDefinitionType; };
00225 CSLBoolProxy* GetEnableMipMapProxy() { return &m_EnableMipMap; };
00226 CSLFloatProxy* GetMipMapScaleProxy() { return &m_MipMapScale; };
00227
00228 CSLIntProxy* GetOglMaxSizeProxy() { return &m_OglMaxSize; };
00229 CSLBoolProxy* GetOglMipMapProxy() { return &m_OglMipMap; };
00230 CSLEnumProxy<EOglFilter, SI_INTERPOLATED_PIXEL_INTERPOLATED_MIPMAP>* GetOglMinFilterProxy() { return &m_OglMinFilter; };
00231 CSLEnumProxy<EOglFilter, SI_INTERPOLATED_PIXEL>* GetOglMagFilterProxy() { return &m_OglMagFilter; };
00232
00233 CSLEnumProxy<EFieldType, SI_EVEN>* GetFieldTypeProxy() { return &m_FieldType; };
00234 CSLIntProxy* GetSourceTrackProxy() { return &m_SourceTrack; };
00235
00236 private:
00237 CSLFloatProxy m_Exposure;
00238 CSLFloatProxy m_DisplayGamma;
00239 CSLBoolProxy m_DisplayGammaAffectsRendering;
00240
00241 CSLStringProxy m_RenderColorProfile;
00242 CSLFloatProxy m_RenderGamma;
00243
00244 CSLEnumProxy<EImageDefinitionType, SI_BROADCAST> m_ImageDefinitionType;
00245 CSLBoolProxy m_EnableMipMap;
00246 CSLFloatProxy m_MipMapScale;
00247
00248 CSLIntProxy m_OglMaxSize;
00249 CSLBoolProxy m_OglMipMap;
00250 CSLEnumProxy<EOglFilter, SI_INTERPOLATED_PIXEL_INTERPOLATED_MIPMAP> m_OglMinFilter;
00251 CSLEnumProxy<EOglFilter, SI_INTERPOLATED_PIXEL> m_OglMagFilter;
00252
00253 CSLEnumProxy<EFieldType, SI_EVEN> m_FieldType;
00254 CSLIntProxy m_SourceTrack;
00255
00256 SI_Void *m_pReserved;
00257 };
00258
00259 #endif