28 #ifndef __D3D9GpuProgram_H_
29 #define __D3D9GpuProgram_H_
46 String doGet(
const void* target)
const;
47 void doSet(
void* target,
const String& val);
53 String doGet(
const void* target)
const;
54 void doSet(
void* target,
const String& val);
72 void setExternalMicrocode(
const void* pMicrocode,
size_t size);
77 void setExternalMicrocode(ID3DXBuffer* pMicrocode);
79 LPD3DXBUFFER getExternalMicrocode(
void);
84 void loadImpl(IDirect3DDevice9* d3d9Device);
86 void unloadImpl(
void);
88 void loadFromSource(
void);
90 void loadFromSource(IDirect3DDevice9* d3d9Device);
92 virtual void loadFromMicrocode(IDirect3DDevice9* d3d9Device, ID3DXBuffer* microcode) = 0;
107 void getMicrocodeFromCache( IDirect3DDevice9* d3d9Device );
108 void compileMicrocode( IDirect3DDevice9* d3d9Device );
120 IDirect3DVertexShader9* getVertexShader(
void);
123 virtual void notifyOnDeviceCreate(IDirect3DDevice9* d3d9Device);
126 virtual void notifyOnDeviceDestroy(IDirect3DDevice9* d3d9Device);
130 void unloadImpl(
void);
131 void loadFromMicrocode(IDirect3DDevice9* d3d9Device, ID3DXBuffer* microcode);
148 IDirect3DPixelShader9* getPixelShader(
void);
151 virtual void notifyOnDeviceCreate(IDirect3DDevice9* d3d9Device);
154 virtual void notifyOnDeviceDestroy(IDirect3DDevice9* d3d9Device);
158 void unloadImpl(
void);
159 void loadFromMicrocode(IDirect3DDevice9* d3d9Device, ID3DXBuffer* microcode);
static CmdExternalMicrocode msCmdExternalMicrocode
map< IDirect3DDevice9 *, IDirect3DVertexShader9 * >::type DeviceToVertexShaderMap
Direct3D implementation of low-level vertex programs.
DeviceToVertexShaderMap mMapDeviceToVertexShader
bool getColumnMajorMatrices(void) const
Gets whether matrix packed in column-major order.
Command object for setting matrix packing in column-major order.
Defines a program which runs on the GPU such as a vertex or fragment program.
Interface describing a manual resource loader.
map< IDirect3DDevice9 *, IDirect3DPixelShader9 * >::type DeviceToPixelShaderMap
Direct3D implementation of a few things common to low-level vertex & fragment programs.
Direct3D implementation of low-level fragment programs.
DeviceToPixelShaderMap::iterator DeviceToPixelShaderIterator
ID3DXBuffer * mExternalMicrocode
DeviceToPixelShaderMap mMapDeviceToPixelShader
Command object for getting/setting external micro code (void*)
bool mColumnMajorMatrices
void setColumnMajorMatrices(bool columnMajor)
Sets whether matrix packing in column-major order.
unsigned long long int ResourceHandle
DeviceToVertexShaderMap::iterator DeviceToVertexShaderIterator
Defines a generic resource handler.
Abstract class which is command object which gets/sets parameters.
static CmdColumnMajorMatrices msCmdColumnMajorMatrices
Represents a Direct3D rendering resource.