00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __CS_IENGINE_TEXTURE_H__
00020 #define __CS_IENGINE_TEXTURE_H__
00021
00028 #include "csutil/scf.h"
00029 #include "cstypes.h"
00030
00031 struct iImage;
00032 struct iTextureHandle;
00033 struct iTextureManager;
00034 struct iTextureWrapper;
00035 struct iObject;
00036
00037 SCF_VERSION (iTextureCallback, 0, 0, 1);
00038
00042 struct iTextureCallback : public iBase
00043 {
00045 virtual void UseTexture (iTextureWrapper* wrap) = 0;
00046 };
00047
00048 SCF_VERSION (iTextureWrapper, 0, 0, 5);
00049
00056 struct iTextureWrapper : public iBase
00057 {
00059 virtual iObject *QueryObject() = 0;
00060
00062 virtual iTextureWrapper *Clone () const = 0;
00063
00068 virtual void SetImageFile (iImage *Image) = 0;
00070 virtual iImage* GetImageFile () = 0;
00071
00077 virtual void SetTextureHandle (iTextureHandle *tex) = 0;
00079 virtual iTextureHandle* GetTextureHandle () = 0;
00080
00082 virtual void SetKeyColor (int red, int green, int blue) = 0;
00084 virtual void GetKeyColor (int &red, int &green, int &blue) = 0;
00085
00087 virtual void SetFlags (int flags) = 0;
00089 virtual int GetFlags () = 0;
00090
00092 virtual void Register (iTextureManager *txtmng) = 0;
00093
00099 virtual void SetUseCallback (iTextureCallback* callback) = 0;
00100
00105 virtual iTextureCallback* GetUseCallback () = 0;
00106
00112 virtual void Visit () = 0;
00113
00117 virtual void SetKeepImage (bool k) = 0;
00118
00124 virtual bool KeepImage () const = 0;
00125 };
00126
00127
00128 SCF_VERSION (iTextureList, 0, 0, 1);
00129
00133 struct iTextureList : public iBase
00134 {
00136 virtual iTextureWrapper *NewTexture (iImage *image) = 0;
00137
00142 virtual iTextureWrapper *NewTexture (iTextureHandle *ith) = 0;
00143
00145 virtual int GetCount () const = 0;
00146
00148 virtual iTextureWrapper *Get (int n) const = 0;
00149
00151 virtual int Add (iTextureWrapper *obj) = 0;
00152
00154 virtual bool Remove (iTextureWrapper *obj) = 0;
00155
00157 virtual bool Remove (int n) = 0;
00158
00160 virtual void RemoveAll () = 0;
00161
00163 virtual int Find (iTextureWrapper *obj) const = 0;
00164
00166 virtual iTextureWrapper *FindByName (const char *Name) const = 0;
00167 };
00168
00171 #endif // __CS_IENGINE_TEXTURE_H__