Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Clark Lin
hw3d
Commits
34278645
Commit
34278645
authored
Jan 29, 2019
by
chili
Browse files
primitive topology and input layout
parent
85bff2d8
Changes
1
Show whitespace changes
Inline
Side-by-side
hw3d/Graphics.cpp
View file @
34278645
...
@@ -134,9 +134,18 @@ void Graphics::DrawTestTriangle()
...
@@ -134,9 +134,18 @@ void Graphics::DrawTestTriangle()
pContext
->
IASetVertexBuffers
(
0u
,
1u
,
pVertexBuffer
.
GetAddressOf
(),
&
stride
,
&
offset
);
pContext
->
IASetVertexBuffers
(
0u
,
1u
,
pVertexBuffer
.
GetAddressOf
(),
&
stride
,
&
offset
);
// create pixel shader
wrl
::
ComPtr
<
ID3D11PixelShader
>
pPixelShader
;
wrl
::
ComPtr
<
ID3DBlob
>
pBlob
;
GFX_THROW_INFO
(
D3DReadFileToBlob
(
L"PixelShader.cso"
,
&
pBlob
)
);
GFX_THROW_INFO
(
pDevice
->
CreatePixelShader
(
pBlob
->
GetBufferPointer
(),
pBlob
->
GetBufferSize
(),
nullptr
,
&
pPixelShader
)
);
// bind pixel shader
pContext
->
PSSetShader
(
pPixelShader
.
Get
(),
nullptr
,
0u
);
// create vertex shader
// create vertex shader
wrl
::
ComPtr
<
ID3D11VertexShader
>
pVertexShader
;
wrl
::
ComPtr
<
ID3D11VertexShader
>
pVertexShader
;
wrl
::
ComPtr
<
ID3DBlob
>
pBlob
;
GFX_THROW_INFO
(
D3DReadFileToBlob
(
L"VertexShader.cso"
,
&
pBlob
)
);
GFX_THROW_INFO
(
D3DReadFileToBlob
(
L"VertexShader.cso"
,
&
pBlob
)
);
GFX_THROW_INFO
(
pDevice
->
CreateVertexShader
(
pBlob
->
GetBufferPointer
(),
pBlob
->
GetBufferSize
(),
nullptr
,
&
pVertexShader
)
);
GFX_THROW_INFO
(
pDevice
->
CreateVertexShader
(
pBlob
->
GetBufferPointer
(),
pBlob
->
GetBufferSize
(),
nullptr
,
&
pVertexShader
)
);
...
@@ -144,19 +153,31 @@ void Graphics::DrawTestTriangle()
...
@@ -144,19 +153,31 @@ void Graphics::DrawTestTriangle()
pContext
->
VSSetShader
(
pVertexShader
.
Get
(),
nullptr
,
0u
);
pContext
->
VSSetShader
(
pVertexShader
.
Get
(),
nullptr
,
0u
);
// create pixel shader
// input (vertex) layout (2d position only)
wrl
::
ComPtr
<
ID3D11PixelShader
>
pPixelShader
;
wrl
::
ComPtr
<
ID3D11InputLayout
>
pInputLayout
;
GFX_THROW_INFO
(
D3DReadFileToBlob
(
L"PixelShader.cso"
,
&
pBlob
)
);
const
D3D11_INPUT_ELEMENT_DESC
ied
[]
=
GFX_THROW_INFO
(
pDevice
->
CreatePixelShader
(
pBlob
->
GetBufferPointer
(),
pBlob
->
GetBufferSize
(),
nullptr
,
&
pPixelShader
)
);
{
{
"Position"
,
0
,
DXGI_FORMAT_R32G32_FLOAT
,
0
,
0
,
D3D11_INPUT_PER_VERTEX_DATA
,
0
},
};
GFX_THROW_INFO
(
pDevice
->
CreateInputLayout
(
ied
,(
UINT
)
std
::
size
(
ied
),
pBlob
->
GetBufferPointer
(),
pBlob
->
GetBufferSize
(),
&
pInputLayout
)
);
// bind
pixel shader
// bind
vertex layout
pContext
->
PS
Set
Shader
(
pPixelShader
.
Get
(),
nullptr
,
0u
);
pContext
->
IA
Set
InputLayout
(
pInputLayout
.
Get
()
);
// bind render target
// bind render target
pContext
->
OMSetRenderTargets
(
1u
,
pTarget
.
GetAddressOf
(),
nullptr
);
pContext
->
OMSetRenderTargets
(
1u
,
pTarget
.
GetAddressOf
(),
nullptr
);
// Set primitive topology to triangle list (groups of 3 vertices)
pContext
->
IASetPrimitiveTopology
(
D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST
);
// configure viewport
// configure viewport
D3D11_VIEWPORT
vp
;
D3D11_VIEWPORT
vp
;
vp
.
Width
=
800
;
vp
.
Width
=
800
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment