You.i Engine
YiMaterialFactory.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_MATERIAL_FACTORY_H_
3 #define _YI_MATERIAL_FACTORY_H_
4 
5 #include "framework/YiPredef.h"
6 #include "renderer/YiGPUObject.h"
8 
14 class CYIAssetTexture;
18 class CYIString;
19 
24 {
25 public:
31  };
32 
37  {
42  YI_BGRA8888, // Added for the XboxOne Video Player
45  };
46 
50  virtual ~IYIMaterialFactory() {}
51 
55  virtual std::shared_ptr<IYIGPUObject> CreateTexture(int32_t nWidth, int32_t nHeight, YI_TEXTURE_TYPE eType, YI_COLORSPACE eSpace) = 0;
56 
60  virtual std::shared_ptr<IYIGPUObject> CreateFramebuffer() = 0;
61 
65  virtual std::shared_ptr<IYIGPUObject> CreateScreenFramebuffer() = 0;
66 
70  virtual std::shared_ptr<IYIUniformBufferObject> CreateUniformBuffer() = 0;
71 };
72 
75 #endif // _YI_MATERIAL_FACTORY_H_
Definition: YiMaterialFactory.h:42
virtual std::shared_ptr< IYIGPUObject > CreateTexture(int32_t nWidth, int32_t nHeight, YI_TEXTURE_TYPE eType, YI_COLORSPACE eSpace)=0
Container class for Unicode strings. Conceptually, a CYIString object is a sequence of Unicode charac...
Definition: YiString.h:35
Definition: YiMaterialFactory.h:41
virtual ~IYIMaterialFactory()
Definition: YiMaterialFactory.h:50
A texture asset representing an image which will be loaded into the GPU.
Definition: YiAssetTexture.h:23
Definition: YiMaterialFactory.h:38
Definition: YiMaterialFactory.h:44
Material Factory interface for the generation of all things texture and shader related.
Definition: YiMaterialFactory.h:23
Definition: YiMaterialFactory.h:39
Definition: YiMaterialFactory.h:30
virtual std::shared_ptr< IYIGPUObject > CreateFramebuffer()=0
YI_COLORSPACE
Definition: YiMaterialFactory.h:36
YI_TEXTURE_TYPE
Definition: YiMaterialFactory.h:29
Definition: YiMaterialFactory.h:43
Definition: YiMaterialFactory.h:40
Common interface for shader uniform buffers.
Definition: YiUniformBufferObject.h:16
Wraps CYIAssetBuffers and their hardware counterparts, and an internally managed FBO.
Definition: YiAssetFramebuffer.h:21
Shader program asset. Contains a vector of CYIAssetShaderObject types.
Definition: YiAssetShaderProgram.h:22
virtual std::shared_ptr< IYIUniformBufferObject > CreateUniformBuffer()=0
virtual std::shared_ptr< IYIGPUObject > CreateScreenFramebuffer()=0