Commit 3417949a authored by Administrator's avatar Administrator
Browse files

add drawing multiple triangles with color

parent 7c1cc096
float4 main() : SV_TARGET float4 main(float3 color : Color) : SV_Target
{ {
return float4(1.0f, 1.0f, 1.0f, 1.0f); return float4(color, 1.0f);
} }
float4 main(float2 pos : POSITION) : SV_POSITION struct VSOut
{ {
return float4(pos.x, pos.y, 0.0f, 1.0f); float3 color : Color;
float4 pos : SV_Position;
};
VSOut main(float2 pos : Position, float3 color : Color)
{
VSOut vso;
vso.pos = float4(pos.x, pos.y, 0.0f, 1.0f);
vso.color = color;
return vso;
} }
...@@ -10,6 +10,8 @@ ...@@ -10,6 +10,8 @@
#include <wrl.h> #include <wrl.h>
#include <array> // to usd std::size
// global declarations // global declarations
Microsoft::WRL::ComPtr<IDXGISwapChain> swapchain; // the pointer to the swap chain interface Microsoft::WRL::ComPtr<IDXGISwapChain> swapchain; // the pointer to the swap chain interface
Microsoft::WRL::ComPtr<ID3D11Device> dev; // the pointer to our Direct3D device interface Microsoft::WRL::ComPtr<ID3D11Device> dev; // the pointer to our Direct3D device interface
...@@ -31,13 +33,35 @@ struct Vertex ...@@ -31,13 +33,35 @@ struct Vertex
{ {
float x; float x;
float y; float y;
float r;
float g;
float b;
}; };
// create vertex buffer (1 2d triangle at center of screen) // create vertex buffer (1 2d triangle at center of screen)
const Vertex vertices[] = const Vertex vertices[] =
{ {
{ -0.0f,0.5f }, // center
{ 0.5f,-0.5f }, { 0.0f, 0.5f, 1.0f, 0.0f, 0.0f },
{ -0.5f,-0.5f }, { 0.5f, -0.5f, 0.0f, 1.0f, 0.0f },
{ -0.5f, -0.5f, 0.0f, 0.0f, 1.0f },
// left top
{ 0.0f, 0.5f, 1.0f, 0.0f, 0.0f },
{ -0.5f, -0.5f, 0.0f, 0.0f, 1.0f },
{ -0.3f, 0.3f, 0.0f, 1.0f, 0.0f },
// right top
{ 0.5f, -0.5f, 0.0f, 1.0f, 0.0f },
{ 0.0f, 0.5f, 1.0f, 0.0f, 0.0f },
{ 0.3f, 0.3f, 0.0f, 0.0f, 1.0f },
// center bottom
{ 0.5f, -0.5f, 0.0f, 1.0f, 0.0f },
{ 0.0f, -0.8f, 1.0f, 0.0f, 0.0f },
{ -0.5f, -0.5f, 0.0f, 0.0f, 1.0f },
}; };
// Define input layout // Define input layout
...@@ -82,12 +106,13 @@ void DefineInputLayout() ...@@ -82,12 +106,13 @@ void DefineInputLayout()
const D3D11_INPUT_ELEMENT_DESC ied[] = const D3D11_INPUT_ELEMENT_DESC ied[] =
{ {
{ "Position",0,DXGI_FORMAT_R32G32_FLOAT,0,0,D3D11_INPUT_PER_VERTEX_DATA,0 }, { "Position",0,DXGI_FORMAT_R32G32_FLOAT,0,0,D3D11_INPUT_PER_VERTEX_DATA,0 },
{ "Color",0,DXGI_FORMAT_R32G32B32_FLOAT,0,8,D3D11_INPUT_PER_VERTEX_DATA,0 },
}; };
// Create input layout, using the description Defined above // Create input layout, using the description Defined above
dev->CreateInputLayout dev->CreateInputLayout
( (
ied, 1, //(UINT)std::size(ied), ied, (UINT)std::size(ied),
pCompiledVertexBlob->GetBufferPointer(), pCompiledVertexBlob->GetBufferPointer(),
pCompiledVertexBlob->GetBufferSize(), pCompiledVertexBlob->GetBufferSize(),
&pInputLayout &pInputLayout
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment