XSIImageFX2.h

Go to the documentation of this file.
00001 //***************************************************************************************
00002 // File supervisor: Crosswalk team
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,    /* None */
00055         SI_ODD,     /* Upper Field First / Odd (PAL and HD Formats) */
00056         SI_EVEN     /* Lower Field First / Even (NTSC and DVFormats) */
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