You.i Engine
YiAssetBufferObjectData.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_ASSET_BUFFER_OBJECT_DATA_H_
3 #define _YI_ASSET_BUFFER_OBJECT_DATA_H_
4 
6 #include "utility/YiRtti.h"
7 
18 {
19 public:
24  {
27  };
28 
30  {
33  };
34 
37 
38  virtual ~CYIAssetBufferObjectData();
39 
43  const std::vector<uint8_t> &GetData() const;
44 
48  YI_BUFFER_TYPE GetType() const;
49 
53  YI_BUFFER_USAGE GetUsage() const;
54 
58  void SetData(uint8_t const *pData, uint32_t uNumOfElements, uint32_t uSizeOfElement);
59 
63  void Resize(uint32_t uNumOfElements, uint32_t uSizeOfElement);
64 
68  void SetData(const std::vector<uint8_t> &rData);
69 
73  void SetType(YI_BUFFER_TYPE eType);
74 
78  void SetUsage(YI_BUFFER_USAGE eUsage);
79 
83  uint32_t GetSizeInBytes() const;
84 
85  virtual std::pair<uint32_t, uint32_t> GetApproximateSize() const override;
86 
87 protected:
88  virtual std::shared_ptr<IYIGPUObject> CreateGPUObject() const override;
89 
90  virtual void OnUnload() override;
91 
92  virtual void ApplyRetainmentPolicy() override;
93 
94 private:
97 
98  std::vector<uint8_t> m_data;
99  uint32_t m_uSizeInBytes;
100  YI_BUFFER_TYPE m_eType;
101  YI_BUFFER_USAGE m_eUsage;
103 };
104 
109 #endif // _YI_ASSET_BUFFER_OBJECT_DATA_H_
void SetUsage(YI_BUFFER_USAGE eUsage)
Container class for Unicode strings. Conceptually, a CYIString object is a sequence of Unicode charac...
Definition: YiString.h:35
Definition: YiAssetBufferObjectData.h:31
Definition: YiAssetBufferObjectData.h:25
void SetType(YI_BUFFER_TYPE eType)
virtual std::pair< uint32_t, uint32_t > GetApproximateSize() const override
#define YI_TYPE_BASES(...)
Definition: YiRtti.h:350
void SetData(uint8_t const *pData, uint32_t uNumOfElements, uint32_t uSizeOfElement)
virtual void OnUnload() override
virtual void ApplyRetainmentPolicy() override
YI_BUFFER_TYPE GetType() const
PATH_TYPE
Definition: YiAsset.h:44
virtual ~CYIAssetBufferObjectData()
YI_BUFFER_USAGE
Definition: YiAssetBufferObjectData.h:29
virtual std::shared_ptr< IYIGPUObject > CreateGPUObject() const override
uint32_t GetSizeInBytes() const
YI_BUFFER_USAGE GetUsage() const
Hardware-mirrored asset. These assets contain IYIGPUObject counterparts.
Definition: YiAssetHardware.h:21
const std::vector< uint8_t > & GetData() const
Definition: YiAsset.h:47
As asset container which wraps shared index or vertex buffer object data.
Definition: YiAssetBufferObjectData.h:17
This file contains the classes and macros used to implement RTTI in You.i Engine. ...
Definition: YiAssetBufferObjectData.h:26
Definition: YiAssetBufferObjectData.h:32
void Resize(uint32_t uNumOfElements, uint32_t uSizeOfElement)
YI_BUFFER_TYPE
Definition: YiAssetBufferObjectData.h:23