00001
00002
00012
00013
00014 #ifndef _XSIIMAGEFX2_H
00015 #define _XSIIMAGEFX2_H
00016
00017 #include "Template.h"
00018 class CSLImage;
00019
00026 class XSIEXPORT CSLImageFX2
00027 : public CSLTemplate
00028 {
00029 public:
00031 enum EImageDefinitionType
00032 {
00033 SI_LOAD_IN_MEMORY,
00034 SI_USE_FROM_DISK,
00035 SI_BROADCAST,
00036 };
00037
00041 enum EOglFilter
00042 {
00043 SI_UNINTERPOLATED_PIXEL = 9728,
00044 SI_INTERPOLATED_PIXEL = 9729,
00045 SI_UNINTERPOLATED_PIXEL_NEAREST_MIPMAP = 9984,
00046 SI_INTERPOLATED_PIXEL_NEAREST_MIPMAP = 9985,
00047 SI_UNINTERPOLATED_PIXEL_INTERPOLATED_MIPMAP = 9986,
00048 SI_INTERPOLATED_PIXEL_INTERPOLATED_MIPMAP = 9987
00049 };
00050
00052 enum EFieldType
00053 {
00054 SI_NONE,
00055 SI_ODD,
00056 SI_EVEN
00057 };
00058
00064 CSLImageFX2(CSLScene* in_pScene, CSLModel *in_pModel, CdotXSITemplate* in_pTemplate);
00065
00067 virtual ~CSLImageFX2();
00068
00072 ETemplateType Type(){ return XSI_IMAGE_FX2; }
00073
00074 virtual CSLAnimatableType* ParameterFromName(SI_Char *in_szName);
00075
00076 virtual CSLAnimatableType* ParameterFromType(EFCurveType in_Type, SI_Char *in_szParameterName);
00077
00078
00079
00083 SI_Float GetExposure();
00084
00088 SI_Void SetExposure( SI_Float in_fValue );
00089
00093 SI_Float GetDisplayGamma();
00094
00098 SI_Void SetDisplayGamma( SI_Float in_fValue );
00099
00103 SI_Bool GetDisplayGammaAffectsRendering();
00104
00108 SI_Void SetDisplayGammaAffectsRendering( SI_Bool in_bValue );
00109
00113 SI_Char* GetRenderColorProfile();
00114
00118 SI_Void SetRenderColorProfile( SI_Char* in_pValue);
00119
00123 SI_Float GetRenderGamma();
00124
00128 SI_Void SetRenderGamma( SI_Float in_fValue );
00129
00133 EImageDefinitionType GetImageDefinitionType();
00134
00138 SI_Void SetImageDefinitionType( EImageDefinitionType in_Value );
00139
00143 SI_Bool GetEnableMipMap();
00144
00148 SI_Void SetEnableMipMap( SI_Bool in_bValue );
00149
00153 SI_Float GetMipMapScale();
00154
00158 SI_Void SetMipMapScale( SI_Float in_fValue );
00159
00163 SI_Int GetOglMaxSize();
00164
00168 SI_Void SetOglMaxSize( SI_Int in_nValue );
00169
00173 SI_Bool GetOglMipMap();
00174
00178 SI_Void SetOglMipMap( SI_Bool in_Value );
00179
00183 EOglFilter GetOglMinFilter();
00184
00188 SI_Void SetOglMinFilter( EOglFilter in_Value );
00189
00193 EOglFilter GetOglMagFilter();
00194
00198 SI_Void SetOglMagFilter( EOglFilter in_Value );
00199
00203 EFieldType GetFieldType();
00204
00208 SI_Void SetFieldType( EFieldType in_Value );
00209
00213 SI_Int GetSourceTrack();
00214
00218 SI_Void SetSourceTrack( SI_Int in_bValue );
00219
00220
00221 CSLFloatProxy* GetExposureProxy() { return &m_Exposure; };
00222 CSLFloatProxy* GetDisplayGammaProxy() { return &m_DisplayGamma; };
00223 CSLBoolProxy* GetDisplayGammaAffectsRenderingProxy() { return &m_DisplayGammaAffectsRendering; };
00224
00225 CSLStringProxy* GetRenderColorProfileProxy() { return &m_RenderColorProfile; };
00226 CSLFloatProxy* GetRenderGammaProxy() { return &m_RenderGamma; };
00227
00228 CSLEnumProxy<EImageDefinitionType, SI_BROADCAST>* GetImageDefinitionTypeProxy() { return &m_ImageDefinitionType; };
00229 CSLBoolProxy* GetEnableMipMapProxy() { return &m_EnableMipMap; };
00230 CSLFloatProxy* GetMipMapScaleProxy() { return &m_MipMapScale; };
00231
00232 CSLIntProxy* GetOglMaxSizeProxy() { return &m_OglMaxSize; };
00233 CSLBoolProxy* GetOglMipMapProxy() { return &m_OglMipMap; };
00234 CSLEnumProxy<EOglFilter, SI_INTERPOLATED_PIXEL_INTERPOLATED_MIPMAP>* GetOglMinFilterProxy() { return &m_OglMinFilter; };
00235 CSLEnumProxy<EOglFilter, SI_INTERPOLATED_PIXEL>* GetOglMagFilterProxy() { return &m_OglMagFilter; };
00236
00237 CSLEnumProxy<EFieldType, SI_EVEN>* GetFieldTypeProxy() { return &m_FieldType; };
00238 CSLIntProxy* GetSourceTrackProxy() { return &m_SourceTrack; };
00239
00240 private:
00241 CSLFloatProxy m_Exposure;
00242 CSLFloatProxy m_DisplayGamma;
00243 CSLBoolProxy m_DisplayGammaAffectsRendering;
00244
00245 CSLStringProxy m_RenderColorProfile;
00246 CSLFloatProxy m_RenderGamma;
00247
00248 CSLEnumProxy<EImageDefinitionType, SI_BROADCAST> m_ImageDefinitionType;
00249 CSLBoolProxy m_EnableMipMap;
00250 CSLFloatProxy m_MipMapScale;
00251
00252 CSLIntProxy m_OglMaxSize;
00253 CSLBoolProxy m_OglMipMap;
00254 CSLEnumProxy<EOglFilter, SI_INTERPOLATED_PIXEL_INTERPOLATED_MIPMAP> m_OglMinFilter;
00255 CSLEnumProxy<EOglFilter, SI_INTERPOLATED_PIXEL> m_OglMagFilter;
00256
00257 CSLEnumProxy<EFieldType, SI_EVEN> m_FieldType;
00258 CSLIntProxy m_SourceTrack;
00259
00260 SI_Void *m_pReserved;
00261 };
00262
00263 #endif