-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathShader.cpp
More file actions
70 lines (41 loc) · 1.32 KB
/
Copy pathShader.cpp
File metadata and controls
70 lines (41 loc) · 1.32 KB
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include "Shader.h"
// Vertex Shader
VertexShader::VertexShader() {
}
void VertexShader::Load(std::wstring fn, VertexType vt) {
std::wstring fileName = L"C:/Shaders/" + fn + L".cso";
UINT8* vsData;
UINT vsDataLength;
ReadDataFromFile(fileName.c_str(), &vsData, &vsDataLength);
gDevice->CreateVertexShader(vsData, vsDataLength, nullptr, &vertexShader);
switch (vt) {
case VT_P:
gDevice->CreateInputLayout(VertexP_Layout, ARRAYSIZE(VertexP_Layout), vsData, vsDataLength, &inputLayout);
break;
case VT_PU:
gDevice->CreateInputLayout(VertexPU_Layout, ARRAYSIZE(VertexPU_Layout), vsData, vsDataLength, &inputLayout);
break;
case VT_PNU:
gDevice->CreateInputLayout(VertexPNU_Layout, ARRAYSIZE(VertexPNU_Layout), vsData, vsDataLength, &inputLayout);
break;
default:
break;
};
};
void VertexShader::Set() {
gContext->VSSetShader(vertexShader.Get(), 0, 0);
gContext->IASetInputLayout(inputLayout.Get());
}
// Pixel Shader
PixelShader::PixelShader() {
}
void PixelShader::Load(std::wstring fn) {
std::wstring fileName = L"C:/Shaders/" + fn + L".cso";
UINT8* psData;
UINT psDataLength;
ReadDataFromFile(fileName.c_str(), &psData, &psDataLength);
gDevice->CreatePixelShader(psData, psDataLength, nullptr, &pixelShader);
}
void PixelShader::Set() {
gContext->PSSetShader(pixelShader.Get(), 0, 0);
}