File size: 914 Bytes
0c51b93
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
#pragma once

#include <vector>
#include "core/maths.h"

#include <wrl.h>
using namespace Microsoft::WRL;

struct DebugLineRenderD3D11
{
	struct Vertex
	{
		Vec3 position;
		Vec4 color;
	};

	void init(ID3D11Device* d, ID3D11DeviceContext* c);
	void addLine(const Vec3& p, const Vec3& q, const Vec4& color);
	void flush(const Matrix44& viewProj);

	DebugLineRenderD3D11():
		m_vertexBufferSize(0),
		m_device(nullptr),
		m_context(nullptr)
	{}

	std::vector<Vertex> m_queued;

	ComPtr<ID3D11Buffer> m_vertexBuffer;
	int m_vertexBufferSize;

	ComPtr<ID3D11DepthStencilState> m_depthStencilState;
	ComPtr<ID3D11RasterizerState> m_rasterizerState;
	ComPtr<ID3D11InputLayout> m_inputLayout;
	ComPtr<ID3D11BlendState> m_blendState;
	ComPtr<ID3D11VertexShader> m_vertexShader;
	ComPtr<ID3D11PixelShader> m_pixelShader;
	ComPtr<ID3D11Buffer> m_constantBuffer;

	ID3D11Device* m_device;
	ID3D11DeviceContext* m_context;
};