You.i Engine
YiShaderFactory.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_SHADER_FACTORY_H_
3 #define _YI_SHADER_FACTORY_H_
4 
6 
7 class IYIGPUObject;
8 
15 {
16 public:
21  static std::shared_ptr<CYIAssetShaderProgram> CreateAssetFromSource(const CYIString &vertexShaderSource,
22  const CYIString &fragmentShaderSource);
23 
28  static std::shared_ptr<CYIAssetShaderProgram> CreateAssetFromBinary(uint8_t *pVertexShaderData,
29  int32_t nVertexShaderSize,
30  uint8_t *pFragmentShaderData,
31  int32_t nFragmentShaderSize);
32 
38  static std::shared_ptr<CYIAssetShaderProgram> CreateAssetFromFile(const CYIString &vertexShaderFile,
39  const CYIString &fragmentShaderFile,
41 
46  static std::shared_ptr<CYIAssetShaderProgram> CreateAssetFromPath(const CYIString &vertexShaderPath,
47  const CYIString &fragmentShaderPath,
49 
54  static std::shared_ptr<CYIAssetShaderProgram> CreateAsset(const std::shared_ptr<CYIAssetShaderObject> &pVertexShader,
55  const std::shared_ptr<CYIAssetShaderObject> &pFragmentShader);
56 
60  static std::shared_ptr<IYIGPUObject> CreateShaderProgram();
61 
62 private:
64  CYIShaderFactory(const CYIShaderFactory & factory);
65 };
66 
69 #endif // _YI_SHADER_FACTORY_H_
static std::shared_ptr< CYIAssetShaderProgram > CreateAssetFromFile(const CYIString &vertexShaderFile, const CYIString &fragmentShaderFile, CYIAssetShaderObject::CODE_TYPE eCodeType=CYIAssetShaderObject::UNCOMPILED_SOURCE)
Container class for Unicode strings. Conceptually, a CYIString object is a sequence of Unicode charac...
Definition: YiString.h:35
static std::shared_ptr< IYIGPUObject > CreateShaderProgram()
Definition: YiShaderFactory.h:14
CODE_TYPE
Definition: YiAssetShaderObject.h:31
String data that is compiled at run-time. This data can come from disk or from memory. See IsFromDisk.
Definition: YiAssetShaderObject.h:33
static std::shared_ptr< CYIAssetShaderProgram > CreateAsset(const std::shared_ptr< CYIAssetShaderObject > &pVertexShader, const std::shared_ptr< CYIAssetShaderObject > &pFragmentShader)
static std::shared_ptr< CYIAssetShaderProgram > CreateAssetFromBinary(uint8_t *pVertexShaderData, int32_t nVertexShaderSize, uint8_t *pFragmentShaderData, int32_t nFragmentShaderSize)
An interface for managing GPU-bound objects such as shaders and textures.
Definition: YiGPUObject.h:18
static std::shared_ptr< CYIAssetShaderProgram > CreateAssetFromSource(const CYIString &vertexShaderSource, const CYIString &fragmentShaderSource)
static std::shared_ptr< CYIAssetShaderProgram > CreateAssetFromPath(const CYIString &vertexShaderPath, const CYIString &fragmentShaderPath, CYIAssetShaderObject::CODE_TYPE eCodeType=CYIAssetShaderObject::UNCOMPILED_SOURCE)