#ifndef XNA_GRAPHICS_BUFFER_HPP #define XNA_GRAPHICS_BUFFER_HPP #include "../default.hpp" #include "gresource.hpp" namespace xna { class ConstantBuffer : public GraphicsResource { public: ConstantBuffer(); ConstantBuffer(sptr const&); ~ConstantBuffer() override; bool Initialize(xna_error_nullarg); public: struct PlatformImplementation; uptr impl = nullptr; }; class DataBuffer : public GraphicsResource { public: DataBuffer(); DataBuffer(sptr const&); ~DataBuffer() override; bool Initialize(xna_error_nullarg); public: struct PlatformImplementation; uptr impl = nullptr; }; class IndexBuffer : public GraphicsResource { public: IndexBuffer(); IndexBuffer(sptr const&); ~IndexBuffer() override; template bool Initialize(std::vector const& data, xna_error_nullarg); bool Apply(xna_error_nullarg); public: struct PlatformImplementation; uptr impl = nullptr; }; class VertexBuffer : public GraphicsResource { public: VertexBuffer(); VertexBuffer(sptr const&); ~VertexBuffer(); template bool Initialize(std::vector const& data, xna_error_nullarg); bool Apply(xna_error_nullarg); public: struct PlatformImplementation; uptr impl = nullptr; }; class VertexInputLayout : public GraphicsResource { public: VertexInputLayout(); VertexInputLayout(sptr const&); ~VertexInputLayout(); bool Initialize(DataBuffer& blob, xna_error_nullarg); public: struct PlatformImplementation; uptr impl = nullptr; }; } #endif