#pragma once #include #include #include namespace lt { class dxSharedContext; class dxConstantBuffer: public ConstantBuffer { public: dxConstantBuffer( ConstantBufferIndex index, unsigned int size, Ref sharedContext ); void bind() override; void *map() override; void un_map() override; private: Ref m_context; Microsoft::WRL::ComPtr m_buffer; D3D11_MAPPED_SUBRESOURCE m_map; unsigned int m_index; }; class dxVertexBuffer: public VertexBuffer { public: dxVertexBuffer( float *vertices, unsigned int stride, unsigned int count, Ref sharedContext ); ~dxVertexBuffer(); void bind() override; void un_bind() override; auto map() -> void * override; void un_map() override; private: Ref m_context; Microsoft::WRL::ComPtr m_buffer; D3D11_MAPPED_SUBRESOURCE m_map; unsigned int m_stride; }; class dxIndexBuffer: public IndexBuffer { public: dxIndexBuffer(unsigned int *indices, unsigned int count, Ref sharedContext); ~dxIndexBuffer(); void bind() override; void un_bind() override; private: Ref m_context; Microsoft::WRL::ComPtr m_buffer; }; } // namespace lt