You.i Engine
YiAssetTextureBase.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_ASSET_TEXTURE_BASE_H_
3 #define _YI_ASSET_TEXTURE_BASE_H_
4 
10 #include "asset/YiAssetHardware.h"
11 #include "framework/YiPredef.h"
12 #include "graphics/YiBitmap.h"
14 #include "utility/YiRtti.h"
15 
25 {
26 public:
33  };
34 
44  };
45 
49  enum USAGE
50  {
54  };
55 
60  {
65  };
66 
67 public:
69 
70  virtual ~CYIAssetTextureBase();
71 
79  void AddDirtyRegion(const YI_RECT_REL &dirtyRectangle);
80 
84  void ClearDirtyRegions();
85 
89  const std::vector<YI_RECT_REL> &GetDirtyRegions() const;
90 
94  const YI_TEXTURE_CONFIG &GetConfiguration() const;
95 
99  virtual int32_t GetWidth() const;
100 
104  virtual int32_t GetHeight() const;
105 
110 
114  void SetConfiguration(const YI_TEXTURE_CONFIG &config);
115 
123 
143  void SetMipmappingEnabled(bool bEnable);
144 
148  bool IsMipmappingEnabled() const;
149 
158 
162  virtual bool HasExtendedDimensions() const;
163 
167  USAGE GetUsage() const;
168 
169 protected:
174  virtual std::shared_ptr<IYIGPUObject> CreateGPUObject() const override = 0;
175 
176  virtual void OnUnload() override = 0;
177 
181  virtual void DirtyEntireTexture();
182 
186  void SetWidth(int32_t nWidth);
187 
191  void SetHeight(int32_t nHeight);
192 
197 
198  virtual void ApplyRetainmentPolicy() override;
199 
200 private:
201  int32_t m_nWidth;
202  int32_t m_nHeight;
203  IYIMaterialFactory::YI_COLORSPACE m_eColorSpace;
204 
205  YI_TEXTURE_CONFIG m_textureConfiguration;
206  std::vector<YI_RECT_REL> m_dirtyRegions;
207  USAGE m_usage;
208 
210 };
211 
214 #endif // _YI_ASSET_TEXTURE_BASE_H_
USAGE
Definition: YiAssetTextureBase.h:49
YI_TEXTURE_WRAP wrapT
Definition: YiAssetTextureBase.h:62
YI_MIN_MAG_FILTER magFilter
Definition: YiAssetTextureBase.h:63
Definition: YiAssetTextureBase.h:59
Definition: YiPredef.h:234
YI_TEXTURE_WRAP wrapS
Definition: YiAssetTextureBase.h:62
virtual void OnUnload() override=0
void SetTextureWrap(YI_TEXTURE_WRAP wrapS=YI_CLAMP_TO_EDGE, YI_TEXTURE_WRAP wrapT=YI_CLAMP_TO_EDGE)
USAGE GetUsage() const
bool IsMipmappingEnabled() const
#define YI_TYPE_BASES(...)
Definition: YiRtti.h:350
YI_TEXTURE_WRAP
Definition: YiAssetTextureBase.h:40
void SetConfiguration(const YI_TEXTURE_CONFIG &config)
CYIAssetTextureBase(USAGE usage=USAGE_STATIC)
Definition: YiAssetTextureBase.h:32
YI_MIN_MAG_FILTER
Definition: YiAssetTextureBase.h:30
Definition: YiAssetTextureBase.h:51
Definition: YiAssetTextureBase.h:53
void SetMipmappingEnabled(bool bEnable)
const YI_TEXTURE_CONFIG & GetConfiguration() const
Definition: YiAssetTextureBase.h:42
Definition: YiAssetTextureBase.h:43
YI_COLORSPACE
Definition: YiMaterialFactory.h:36
virtual ~CYIAssetTextureBase()
virtual bool HasExtendedDimensions() const
const std::vector< YI_RECT_REL > & GetDirtyRegions() const
void SetWidth(int32_t nWidth)
Hardware-mirrored asset. These assets contain IYIGPUObject counterparts.
Definition: YiAssetHardware.h:21
virtual std::shared_ptr< IYIGPUObject > CreateGPUObject() const override=0
IYIMaterialFactory::YI_COLORSPACE GetColorSpace() const
Definition: YiAssetTextureBase.h:41
void SetColorSpace(IYIMaterialFactory::YI_COLORSPACE eColorSpace)
This asset represents the base class for POT (Power Of Two) and NPOT (Non-Power Of Two) textures...
Definition: YiAssetTextureBase.h:24
bool bUseMipmaps
Definition: YiAssetTextureBase.h:64
void SetMinificationFilter(YI_MIN_MAG_FILTER minFilter=YI_LINEAR, YI_MIN_MAG_FILTER magFilter=YI_LINEAR)
YI_MIN_MAG_FILTER minFilter
Definition: YiAssetTextureBase.h:63
void AddDirtyRegion(const YI_RECT_REL &dirtyRectangle)
This file contains the classes and macros used to implement RTTI in You.i Engine. ...
void SetHeight(int32_t nHeight)
virtual void ApplyRetainmentPolicy() override
virtual int32_t GetHeight() const
virtual int32_t GetWidth() const
Definition: YiAssetTextureBase.h:52
Definition: YiAssetTextureBase.h:31
virtual void DirtyEntireTexture()