You.i Engine
IYIMaterialFactory Class Referenceabstract

Detailed Description

Material Factory interface for the generation of all things texture and shader related.

#include <renderer/YiMaterialFactory.h>

Public Types

enum  TextureType { TextureType::Dimensions2D }
 
enum  ColorSpace {
  ColorSpace::RGBA8888,
  ColorSpace::RGBA4444,
  ColorSpace::RGB565,
  ColorSpace::DepthStencilComponent,
  ColorSpace::BGRA8888,
  ColorSpace::R8,
  ColorSpace::RG88
}
 

Public Member Functions

virtual ~IYIMaterialFactory ()
 
virtual std::shared_ptr< IYIGPUObjectCreateTexture (int32_t width, int32_t height, TextureType type, ColorSpace space)=0
 
virtual std::shared_ptr< IYIGPUObjectCreateFramebuffer ()=0
 
virtual std::shared_ptr< IYIGPUObjectCreateScreenFramebuffer ()=0
 
virtual std::shared_ptr< IYIUniformBufferObjectCreateUniformBuffer ()=0
 

Member Enumeration Documentation

◆ ColorSpace

Color spaces

Enumerator
RGBA8888 
RGBA4444 
RGB565 
DepthStencilComponent 
BGRA8888 
R8 
RG88 

◆ TextureType

Texture types

Enumerator
Dimensions2D 

Constructor & Destructor Documentation

◆ ~IYIMaterialFactory()

virtual IYIMaterialFactory::~IYIMaterialFactory ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ CreateFramebuffer()

virtual std::shared_ptr<IYIGPUObject> IYIMaterialFactory::CreateFramebuffer ( )
pure virtual

Function to create an FBO object

◆ CreateScreenFramebuffer()

virtual std::shared_ptr<IYIGPUObject> IYIMaterialFactory::CreateScreenFramebuffer ( )
pure virtual

Function to create an FBO that points to the screen buffer

◆ CreateTexture()

virtual std::shared_ptr<IYIGPUObject> IYIMaterialFactory::CreateTexture ( int32_t  width,
int32_t  height,
TextureType  type,
ColorSpace  space 
)
pure virtual

Function to create an empty 2D hardware texture buffer object.

◆ CreateUniformBuffer()

virtual std::shared_ptr<IYIUniformBufferObject> IYIMaterialFactory::CreateUniformBuffer ( )
pure virtual

Function to create a uniform buffer object.


The documentation for this class was generated from the following file: