Cinder  0.8.6
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Classes | Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
cinder::dx::HlslProg Class Reference

Represents a DirectX HLSL shader. Implicitly shared object. More...

#include <HlslProg.h>

Classes

struct  Cbo
 
struct  Obj
 

Public Member Functions

 HlslProg ()
 
 HlslProg (DataSourceRef vertexShader, DataSourceRef fragmentShader, DataSourceRef geometryShader=DataSourceRef())
 Constructs a shader from compiled object bytecode. More...
 
 HlslProg (const BYTE *vertexShader, UINT vertexShaderSize, const BYTE *fragmentShader, UINT fragmentShaderSize, const BYTE *geometryShader=nullptr, UINT geometryShaderSize=0)
 Constructs a shader from compiled object bytecode. More...
 
 HlslProg (const std::string &vertexEntryPoint, DataSourceRef vertexShader, const std::string &fragmentEntryPoint, DataSourceRef fragmentShader, const std::string &geometryEntryPoint="", DataSourceRef geometryShader=DataSourceRef())
 Constructs a shader from source. Can only be during development for Windows Store Apps. More...
 
 HlslProg (const std::string &vertexEntryPoint, const char *vertexShader, const std::string &fragmentEntryPoint, const char *fragmentShader, const std::string &geometryEntryPoint="", const char *geometryShader=nullptr)
 Constructs a shader from source. Can only be during development for Windows Store Apps. More...
 
void bind () const
 
ID3D11VertexShader * GetVertexShader ()
 
ID3D11PixelShader * GetPixelShader ()
 
ID3D11GeometryShader * GetGeometryShader ()
 
ID3D11ComputeShader * GetComputeShader ()
 
void CreateCBufferVertex (UINT slot, UINT size)
 
voidMapCBufferVertex (UINT slot)
 
void UnmapCBufferVertex (UINT slot)
 
void CreateCBufferFragment (UINT slot, UINT size)
 
voidMapCBufferFragment (UINT slot)
 
void UnmapCBufferFragment (UINT slot)
 
void CreateCBufferGeometry (UINT slot, UINT size)
 
voidMapCBufferGeometry (UINT slot)
 
void UnmapCBufferGeometry (UINT slot)
 
void CreateCBufferCompute (UINT slot, UINT size)
 
voidMapCBufferCompute (UINT slot)
 
void UnmapCBufferCompute (UINT slot)
 

Static Public Member Functions

static HlslProgRef create (DataSourceRef vertexShader, DataSourceRef fragmentShader, DataSourceRef geometryShader=DataSourceRef())
 Constructs a shader from compiled object bytecode. More...
 
static HlslProgRef create (const BYTE *vertexShader, UINT vertexShaderSize, const BYTE *fragmentShader, UINT fragmentShaderSize, const BYTE *geometryShader=nullptr, UINT geometryShaderSize=0)
 Constructs a shader from compiled object bytecode. More...
 
static HlslProgRef create (const std::string &vertexEntryPoint, DataSourceRef vertexShaderSrc, const std::string &fragmentEntryPoint, DataSourceRef fragmentShaderSrc, const std::string &geometryEntryPoint="", DataSourceRef geometryShaderSrc=DataSourceRef())
 Constructs a shader from source. Can only be during development for Windows Store Apps. More...
 
static HlslProgRef create (const std::string &vertexEntryPoint, const char *vertexShaderSrc, const std::string &fragmentEntryPoint, const char *fragmentShaderSrc, const std::string &geometryEntryPoint="", const char *geometryShaderSrc=nullptr)
 Constructs a shader from source. Can only be during development for Windows Store Apps. More...
 
static void unbind ()
 

Protected Attributes

std::shared_ptr< ObjmObj
 
typedef std::shared_ptr< Obj >
HlslProg::* 
unspecified_bool_type
 Emulates shared_ptr-like behavior. More...
 
 operator unspecified_bool_type () const
 Emulates shared_ptr-like behavior. More...
 
void reset ()
 Emulates shared_ptr-like behavior. More...
 

Detailed Description

Represents a DirectX HLSL shader. Implicitly shared object.

Member Typedef Documentation

typedef std::shared_ptr<Obj> HlslProg::* cinder::dx::HlslProg::unspecified_bool_type

Emulates shared_ptr-like behavior.

Constructor & Destructor Documentation

cinder::dx::HlslProg::HlslProg ( )
cinder::dx::HlslProg::HlslProg ( DataSourceRef  vertexShader,
DataSourceRef  fragmentShader,
DataSourceRef  geometryShader = DataSourceRef() 
)

Constructs a shader from compiled object bytecode.

cinder::dx::HlslProg::HlslProg ( const BYTE *  vertexShader,
UINT  vertexShaderSize,
const BYTE *  fragmentShader,
UINT  fragmentShaderSize,
const BYTE *  geometryShader = nullptr,
UINT  geometryShaderSize = 0 
)

Constructs a shader from compiled object bytecode.

cinder::dx::HlslProg::HlslProg ( const std::string vertexEntryPoint,
DataSourceRef  vertexShader,
const std::string fragmentEntryPoint,
DataSourceRef  fragmentShader,
const std::string geometryEntryPoint = "",
DataSourceRef  geometryShader = DataSourceRef() 
)

Constructs a shader from source. Can only be during development for Windows Store Apps.

cinder::dx::HlslProg::HlslProg ( const std::string vertexEntryPoint,
const char *  vertexShader,
const std::string fragmentEntryPoint,
const char *  fragmentShader,
const std::string geometryEntryPoint = "",
const char *  geometryShader = nullptr 
)

Constructs a shader from source. Can only be during development for Windows Store Apps.

Member Function Documentation

static HlslProgRef cinder::dx::HlslProg::create ( DataSourceRef  vertexShader,
DataSourceRef  fragmentShader,
DataSourceRef  geometryShader = DataSourceRef() 
)
static

Constructs a shader from compiled object bytecode.

static HlslProgRef cinder::dx::HlslProg::create ( const BYTE *  vertexShader,
UINT  vertexShaderSize,
const BYTE *  fragmentShader,
UINT  fragmentShaderSize,
const BYTE *  geometryShader = nullptr,
UINT  geometryShaderSize = 0 
)
static

Constructs a shader from compiled object bytecode.

static HlslProgRef cinder::dx::HlslProg::create ( const std::string vertexEntryPoint,
DataSourceRef  vertexShaderSrc,
const std::string fragmentEntryPoint,
DataSourceRef  fragmentShaderSrc,
const std::string geometryEntryPoint = "",
DataSourceRef  geometryShaderSrc = DataSourceRef() 
)
static

Constructs a shader from source. Can only be during development for Windows Store Apps.

static HlslProgRef cinder::dx::HlslProg::create ( const std::string vertexEntryPoint,
const char *  vertexShaderSrc,
const std::string fragmentEntryPoint,
const char *  fragmentShaderSrc,
const std::string geometryEntryPoint = "",
const char *  geometryShaderSrc = nullptr 
)
static

Constructs a shader from source. Can only be during development for Windows Store Apps.

void cinder::dx::HlslProg::bind ( ) const
void cinder::dx::HlslProg::unbind ( )
static
ID3D11VertexShader* cinder::dx::HlslProg::GetVertexShader ( )
ID3D11PixelShader* cinder::dx::HlslProg::GetPixelShader ( )
ID3D11GeometryShader* cinder::dx::HlslProg::GetGeometryShader ( )
ID3D11ComputeShader* cinder::dx::HlslProg::GetComputeShader ( )
void cinder::dx::HlslProg::CreateCBufferVertex ( UINT  slot,
UINT  size 
)
void * cinder::dx::HlslProg::MapCBufferVertex ( UINT  slot)
void cinder::dx::HlslProg::UnmapCBufferVertex ( UINT  slot)
void cinder::dx::HlslProg::CreateCBufferFragment ( UINT  slot,
UINT  size 
)
void * cinder::dx::HlslProg::MapCBufferFragment ( UINT  slot)
void cinder::dx::HlslProg::UnmapCBufferFragment ( UINT  slot)
void cinder::dx::HlslProg::CreateCBufferGeometry ( UINT  slot,
UINT  size 
)
void * cinder::dx::HlslProg::MapCBufferGeometry ( UINT  slot)
void cinder::dx::HlslProg::UnmapCBufferGeometry ( UINT  slot)
void cinder::dx::HlslProg::CreateCBufferCompute ( UINT  slot,
UINT  size 
)
void* cinder::dx::HlslProg::MapCBufferCompute ( UINT  slot)
void cinder::dx::HlslProg::UnmapCBufferCompute ( UINT  slot)
cinder::dx::HlslProg::operator unspecified_bool_type ( ) const

Emulates shared_ptr-like behavior.

void cinder::dx::HlslProg::reset ( )

Emulates shared_ptr-like behavior.

Member Data Documentation

std::shared_ptr<Obj> cinder::dx::HlslProg::mObj
protected

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