00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __CS_IVIDEO_TEXTURE_H__
00020 #define __CS_IVIDEO_TEXTURE_H__
00021
00030 #include "csutil/scf.h"
00031 #include "cstypes.h"
00032
00033 struct iGraphics2D;
00034 struct iGraphics3D;
00035
00036 SCF_VERSION (iTextureHandle, 2, 2, 2);
00037
00041 struct iTextureHandle : public iBase
00042 {
00044 virtual int GetFlags () = 0;
00045
00047 virtual void SetKeyColor (bool Enable) = 0;
00048
00050 virtual void SetKeyColor (uint8 red, uint8 green, uint8 blue) = 0;
00051
00053 virtual bool GetKeyColor () = 0;
00054
00056 virtual void GetKeyColor (uint8 &red, uint8 &green, uint8 &blue) = 0;
00057
00068 virtual bool GetMipMapDimensions (int mipmap, int &mw, int &mh) = 0;
00069
00077 virtual void GetOriginalDimensions (int& mw, int& mh) = 0;
00078
00079
00080
00081 enum { CS_TEX_IMG_1D = 0, CS_TEX_IMG_2D, CS_TEX_IMG_3D, CS_TEX_IMG_CUBEMAP };
00085 enum { CS_TEXTURE_CUBE_POS_X = 0, CS_TEXTURE_CUBE_NEG_X,
00086 CS_TEXTURE_CUBE_POS_Y, CS_TEXTURE_CUBE_NEG_Y,
00087 CS_TEXTURE_CUBE_POS_Z, CS_TEXTURE_CUBE_NEG_Z };
00088
00089 #ifdef CS_USE_NEW_RENDERER
00090
00100 virtual bool GetMipMapDimensions (int mipmap, int &mw, int &mh, int &md) = 0;
00101
00109 virtual void GetOriginalDimensions (int& mw, int& mh, int &md) = 0;
00110
00119 virtual void SetTextureTarget (int target) = 0;
00120 #endif // CS_USE_NEW_RENDERER
00121
00123 virtual void GetMeanColor (uint8 &red, uint8 &green, uint8 &blue) = 0;
00124
00126 virtual void *GetCacheData () = 0;
00127
00129 virtual void SetCacheData (void *d) = 0;
00130
00135 virtual void *GetPrivateObject () = 0;
00136
00142 virtual bool GetAlphaMap () = 0;
00143
00149 virtual void Prepare () = 0;
00150
00156 virtual iGraphics2D* GetCanvas () = 0;
00157 };
00158
00161 #endif // __CS_IVIDEO_TEXTURE_H__