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, 1, 0);
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 bool IsVisitRequired () const = 0;
00118
00122 virtual void SetKeepImage (bool k) = 0;
00123
00129 virtual bool KeepImage () const = 0;
00130 };
00131
00132
00133 SCF_VERSION (iTextureList, 0, 0, 1);
00134
00138 struct iTextureList : public iBase
00139 {
00141 virtual iTextureWrapper *NewTexture (iImage *image) = 0;
00142
00147 virtual iTextureWrapper *NewTexture (iTextureHandle *ith) = 0;
00148
00150 virtual int GetCount () const = 0;
00151
00153 virtual iTextureWrapper *Get (int n) const = 0;
00154
00156 virtual int Add (iTextureWrapper *obj) = 0;
00157
00159 virtual bool Remove (iTextureWrapper *obj) = 0;
00160
00162 virtual bool Remove (int n) = 0;
00163
00165 virtual void RemoveAll () = 0;
00166
00168 virtual int Find (iTextureWrapper *obj) const = 0;
00169
00171 virtual iTextureWrapper *FindByName (const char *Name) const = 0;
00172 };
00173
00176 #endif // __CS_IENGINE_TEXTURE_H__