00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __IENGINE_TEXTURE_H__
00020 #define __IENGINE_TEXTURE_H__
00021
00022 #include "csutil/scf.h"
00023 #include "cstypes.h"
00024
00025 struct iImage;
00026 struct iTextureHandle;
00027 struct iTextureManager;
00028 struct iTextureWrapper;
00029 struct iObject;
00030
00031 SCF_VERSION (iTextureCallback, 0, 0, 1);
00032
00036 struct iTextureCallback : public iBase
00037 {
00039 virtual void UseTexture (iTextureWrapper* wrap) = 0;
00040 };
00041
00042 SCF_VERSION (iTextureWrapper, 0, 0, 4);
00043
00050 struct iTextureWrapper : public iBase
00051 {
00053 virtual iObject *QueryObject() = 0;
00054
00059 virtual void SetImageFile (iImage *Image) = 0;
00061 virtual iImage* GetImageFile () = 0;
00062
00068 virtual void SetTextureHandle (iTextureHandle *tex) = 0;
00070 virtual iTextureHandle* GetTextureHandle () = 0;
00071
00073 virtual void SetKeyColor (int red, int green, int blue) = 0;
00075 virtual void GetKeyColor (int &red, int &green, int &blue) = 0;
00076
00078 virtual void SetFlags (int flags) = 0;
00080 virtual int GetFlags () = 0;
00081
00083 virtual void Register (iTextureManager *txtmng) = 0;
00084
00090 virtual void SetUseCallback (iTextureCallback* callback) = 0;
00091
00096 virtual iTextureCallback* GetUseCallback () = 0;
00097
00103 virtual void Visit () = 0;
00104 };
00105
00106
00107 SCF_VERSION (iTextureList, 0, 0, 1);
00108
00112 struct iTextureList : public iBase
00113 {
00115 virtual iTextureWrapper *NewTexture (iImage *image) = 0;
00116
00121 virtual iTextureWrapper *NewTexture (iTextureHandle *ith) = 0;
00122
00124 virtual int GetCount () const = 0;
00125
00127 virtual iTextureWrapper *Get (int n) const = 0;
00128
00130 virtual int Add (iTextureWrapper *obj) = 0;
00131
00133 virtual bool Remove (iTextureWrapper *obj) = 0;
00134
00136 virtual bool Remove (int n) = 0;
00137
00139 virtual void RemoveAll () = 0;
00140
00142 virtual int Find (iTextureWrapper *obj) const = 0;
00143
00145 virtual iTextureWrapper *FindByName (const char *Name) const = 0;
00146 };
00147
00148 #endif // __IENGINE_TEXTURE_H__