raSystem
1.0 bata
raComputeShaderObject.cpp
Go to the documentation of this file.
1
#include "..\include\raMain.h"
2
3
namespace
System
4
{
5
raComputeShaderObject::raComputeShaderObject
(
raDirectX
*dx,
6
LPCSTR ShaderFileName, LPCSTR FunctionName) : m_ShaderFileName(ShaderFileName),
7
m_FunctionName(FunctionName)
8
{
9
m_dx
= dx;
10
m_pCS
= NULL;
11
}
12
bool
raComputeShaderObject::Create
()
13
{
14
ID3DBlob* pCSBuf = NULL;
15
DWORD dwShaderFlags = D3D10_SHADER_ENABLE_STRICTNESS;
16
17
HRESULT hr = D3DX11CompileFromFile(
m_ShaderFileName
, NULL, NULL,
m_FunctionName
,
"cs_5_0"
,
18
dwShaderFlags, 0, NULL, &pCSBuf, NULL, NULL);
19
20
if
(FAILED(hr))
21
{
22
RERROR_DX11
(
"D3DX11CompileFromFile"
, hr);
23
return
false
;
24
}
25
26
hr =
m_dx
->
GetDevice
()->CreateComputeShader((DWORD*)pCSBuf->GetBufferPointer(),
27
pCSBuf->GetBufferSize(), NULL, &
m_pCS
);
28
29
if
(FAILED(hr))
30
{
31
RERROR_DX11
(
"CreateComputeShader"
, hr);
32
return
false
;
33
}
34
35
SAFE_RELEASE
(pCSBuf);
36
37
return
true
;
38
}
39
void
raComputeShaderObject::Destroy
()
40
{
41
SAFE_RELEASE
(
m_pCS
);
42
}
43
bool
raComputeShaderObject::RunCS
(UINT ThreadGroupCountX, UINT ThreadGroupCountY,
44
UINT ThreadGroupCountZ)
45
{
46
m_dx
->
GetImmediateContext
()->CSSetShader(
m_pCS
, NULL, 0);
47
m_dx
->
GetImmediateContext
()->Dispatch(ThreadGroupCountX, ThreadGroupCountY,
48
ThreadGroupCountZ);
49
50
return
true
;
51
}
52
};
raComputeShaderObject::m_ShaderFileName
LPCSTR m_ShaderFileName
Definition:
raComputeShaderObject.h:18
System
Definition:
raFNormalize.h:3
raComputeShaderObject::Create
virtual bool Create()
Definition:
raComputeShaderObject.cpp:12
raDirectX::GetImmediateContext
ID3D11DeviceContext * GetImmediateContext(void)
Definition:
raDirectX.h:31
RERROR_DX11
void RAPI RERROR_DX11(raString x, HRESULT h)
Definition:
raMain.cpp:156
raDirectX::GetDevice
ID3D11Device * GetDevice(void)
Definition:
raDirectX.h:29
raDirectX
Definition:
raDirectX.h:5
raComputeShaderObject::m_pCS
ID3D11ComputeShader * m_pCS
Definition:
raComputeShaderObject.h:21
raComputeShaderObject::Destroy
virtual void Destroy()
Definition:
raComputeShaderObject.cpp:39
raComputeShaderObject::RunCS
virtual bool RunCS(UINT ThreadGroupCountX, UINT ThreadGroupCountY, UINT ThreadGroupCountZ)
Definition:
raComputeShaderObject.cpp:43
raComputeShaderObject::m_FunctionName
LPCSTR m_FunctionName
Definition:
raComputeShaderObject.h:19
raComputeShaderObject::raComputeShaderObject
raComputeShaderObject(const GUID &raguid, raDirectX *dx, LPCSTR ShaderFileName, LPCSTR FunctionName)
SAFE_RELEASE
#define SAFE_RELEASE(p)
Definition:
d3dxGlobal.h:22
raComputeShaderObject::m_dx
raDirectX * m_dx
Definition:
raComputeShaderObject.h:17
src
raComputeShaderObject.cpp
Generated by
1.8.13