-
Notifications
You must be signed in to change notification settings - Fork 0
/
PixelShader.cpp
40 lines (31 loc) · 765 Bytes
/
PixelShader.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include "base.h"
CPixelShader::CPixelShader()
{
m_pDevice = NULL;
m_pCode = NULL;
}
CPixelShader::~CPixelShader()
{
SafeRelease(m_pCode, "Releasing Pixel Shader Code");
}
HRESULT CPixelShader::CreateFromFile(LPDIRECT3DDEVICE9 pDevice, const char* FileName)
{
m_pDevice = pDevice;
D3DXAssembleShaderFromFile(FileName, 0, NULL, &m_pCode, NULL);
m_pDevice->CreatePixelShader((DWORD*)m_pCode->GetBufferPointer(), &m_hPShader);
if(m_pCode != NULL)
{
m_pCode->Release();
m_pCode = NULL;
return E_FAIL;
}
return S_OK;
}
void CPixelShader::SetConstant(DWORD Reg, const void *pData, DWORD Count)
{
m_pDevice->SetPixelShaderConstant(Reg, pData, Count);
}
void CPixelShader::Set()
{
m_pDevice->SetPixelShader(m_hPShader);
}