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
PracticeDx
Commits
58bfba78
Commit
58bfba78
authored
Dec 23, 2022
by
Administrator
Browse files
add index buffer
parent
0da6faac
Changes
1
Show whitespace changes
Inline
Side-by-side
PracticeDx/WinMain.cpp
View file @
58bfba78
...
@@ -54,21 +54,28 @@ const Vertex vertices[] =
...
@@ -54,21 +54,28 @@ const Vertex vertices[] =
{
-
0.5
f
,
-
0.5
f
,
0.0
f
,
0.0
f
,
1.0
f
},
{
-
0.5
f
,
-
0.5
f
,
0.0
f
,
0.0
f
,
1.0
f
},
// left top
// left top
{
0.0
f
,
0.5
f
,
1.0
f
,
0.0
f
,
0.0
f
},
{
-
0.5
f
,
-
0.5
f
,
0.0
f
,
0.0
f
,
1.0
f
},
{
-
0.3
f
,
0.3
f
,
0.0
f
,
1.0
f
,
0.0
f
},
{
-
0.3
f
,
0.3
f
,
0.0
f
,
1.0
f
,
0.0
f
},
// right top
// right top
{
0.5
f
,
-
0.5
f
,
0.0
f
,
1.0
f
,
0.0
f
},
{
0.0
f
,
0.5
f
,
1.0
f
,
0.0
f
,
0.0
f
},
{
0.3
f
,
0.3
f
,
0.0
f
,
0.0
f
,
1.0
f
},
{
0.3
f
,
0.3
f
,
0.0
f
,
0.0
f
,
1.0
f
},
// center bottom
// center bottom
{
0.5
f
,
-
0.5
f
,
0.0
f
,
1.0
f
,
0.0
f
},
{
0.0
f
,
-
0.8
f
,
1.0
f
,
0.0
f
,
0.0
f
},
{
0.0
f
,
-
0.8
f
,
1.0
f
,
0.0
f
,
0.0
f
},
{
-
0.5
f
,
-
0.5
f
,
0.0
f
,
0.0
f
,
1.0
f
},
};
// Define index buffer
Microsoft
::
WRL
::
ComPtr
<
ID3D11Buffer
>
pIndexBuffer
;
// create index buffer
const
unsigned
short
indices
[]
=
{
// draw center
0
,
1
,
2
,
// draw left top
0
,
2
,
3
,
// draw right top
0
,
4
,
1
,
// draw bottom
1
,
5
,
2
,
};
};
// Define constant buffer
// Define constant buffer
...
@@ -127,6 +134,26 @@ void DefineVertexBuffer()
...
@@ -127,6 +134,26 @@ void DefineVertexBuffer()
dev
->
CreateBuffer
(
&
bd
,
&
sd
,
&
pVertexBuffer
);
dev
->
CreateBuffer
(
&
bd
,
&
sd
,
&
pVertexBuffer
);
}
}
void
DefineIndexBuffer
()
{
D3D11_BUFFER_DESC
ibd
=
{};
ibd
.
BindFlags
=
D3D11_BIND_INDEX_BUFFER
;
ibd
.
Usage
=
D3D11_USAGE_DEFAULT
;
ibd
.
CPUAccessFlags
=
0u
;
ibd
.
MiscFlags
=
0u
;
ibd
.
ByteWidth
=
sizeof
(
indices
);
ibd
.
StructureByteStride
=
sizeof
(
unsigned
short
);
D3D11_SUBRESOURCE_DATA
isd
=
{};
isd
.
pSysMem
=
indices
;
// Create index buffer
dev
->
CreateBuffer
(
&
ibd
,
&
isd
,
&
pIndexBuffer
);
// Bind index buffer to pipeline
devcon
->
IASetIndexBuffer
(
pIndexBuffer
.
Get
(),
DXGI_FORMAT_R16_UINT
,
0u
);
}
void
DefineConstantBuffer
(
float
angle
)
void
DefineConstantBuffer
(
float
angle
)
{
{
cb
=
cb
=
...
@@ -195,13 +222,15 @@ void DrawPrimitive()
...
@@ -195,13 +222,15 @@ void DrawPrimitive()
devcon
->
IASetPrimitiveTopology
(
D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST
);
devcon
->
IASetPrimitiveTopology
(
D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST
);
// Draw the triangle.
// Draw the triangle.
devcon
->
Draw
((
UINT
)
sizeof
(
vertices
),
0u
);
// devcon->Draw((UINT)sizeof(vertices), 0u);
devcon
->
DrawIndexed
((
UINT
)
std
::
size
(
indices
),
0u
,
0u
);
}
}
void
drawTriangle
()
void
drawTriangle
()
{
{
DefineShader
();
DefineShader
();
DefineVertexBuffer
();
DefineVertexBuffer
();
DefineIndexBuffer
();
DefineConstantBuffer
(
timer
.
Peek
());
DefineConstantBuffer
(
timer
.
Peek
());
DefineInputLayout
();
DefineInputLayout
();
DrawPrimitive
();
DrawPrimitive
();
...
...
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