#pragma once // #include #include "ddraw.hpp" #include #include #include #include #include #include #include #include namespace glrage { namespace ddraw { class Renderer { public: Renderer(); void upload(DDSURFACEDESC& desc, std::vector& data); void render(); private: static const GLenum TEX_INTERNAL_FORMAT = GL_RGBA; static const GLenum TEX_FORMAT = GL_BGRA; static const GLenum TEX_TYPE = GL_UNSIGNED_SHORT_1_5_5_5_REV; Context& m_context{GLRage::getContext()}; uint32_t m_width = 0; uint32_t m_height = 0; gl::VertexArray m_surfaceFormat; gl::Buffer m_surfaceBuffer; gl::Texture m_surfaceTexture = GL_TEXTURE_2D; gl::Sampler m_sampler; gl::Program m_program; // CImage m_overrideImage; }; } // namespace ddraw } // namespace glrage