You.i Engine
IYIUniformBufferObject Class Referenceabstract

Detailed Description

Common interface for shader uniform buffers.

#include <renderer/YiUniformBufferObject.h>

Inheritance diagram for IYIUniformBufferObject:

Public Types

enum  YI_UNIFORM_TYPE {
  YI_UNIFORM_FLOAT,
  YI_UNIFORM_FVEC2,
  YI_UNIFORM_FVEC3,
  YI_UNIFORM_FVEC4,
  YI_UNIFORM_INT,
  YI_UNIFORM_IVEC2,
  YI_UNIFORM_IVEC3,
  YI_UNIFORM_IVEC4,
  YI_UNIFORM_MAT2,
  YI_UNIFORM_MAT3,
  YI_UNIFORM_MAT4
}
 
- Public Types inherited from IYIGPUObject
enum  YI_GPU_OBJECT_STATUS {
  INVALID,
  UNLOADED,
  LOADED_FRESH,
  LOADED_STALE
}
 

Public Member Functions

virtual void Set (const CYIUniformBufferId &uniformBufferId, YI_UNIFORM_TYPE type, uint32_t uCount, char *pData)=0
 
virtual void Remove (const CYIUniformBufferId &uniformBufferId)=0
 
- Public Member Functions inherited from IYIGPUObject
 IYIGPUObject ()
 
virtual ~IYIGPUObject ()
 
virtual void Load (const std::shared_ptr< CYIAssetHardware > &pHWAsset)=0
 
virtual void Unload ()=0
 
YI_GPU_OBJECT_STATUS GetStatus () const
 
virtual void Use () const =0
 
virtual void Generate ()=0
 
virtual void Free ()=0
 
virtual void InvalidateHandle ()=0
 

Additional Inherited Members

- Protected Attributes inherited from IYIGPUObject
YI_GPU_OBJECT_STATUS m_status
 

Member Enumeration Documentation

Enumerator
YI_UNIFORM_FLOAT 
YI_UNIFORM_FVEC2 
YI_UNIFORM_FVEC3 
YI_UNIFORM_FVEC4 
YI_UNIFORM_INT 
YI_UNIFORM_IVEC2 
YI_UNIFORM_IVEC3 
YI_UNIFORM_IVEC4 
YI_UNIFORM_MAT2 
YI_UNIFORM_MAT3 
YI_UNIFORM_MAT4 

Member Function Documentation

virtual void IYIUniformBufferObject::Remove ( const CYIUniformBufferId uniformBufferId)
pure virtual

An interface for removing data in a uniform buffer object.

virtual void IYIUniformBufferObject::Set ( const CYIUniformBufferId uniformBufferId,
YI_UNIFORM_TYPE  type,
uint32_t  uCount,
char *  pData 
)
pure virtual

An interface for setting data in a uniform buffer object. The data will be associated with the name given, and subsequent calls to Use() will set the data appropriately.


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