#ifndef RENDERER_H #define RENDERER_H #include "pch.hpp" #include "extratools.h" #include "RenderTarget.h" namespace Archimedes { class Renderer { public: int w, h; glm::vec4 clearColor = { 0.0f, 0.0f, 0.0f, 0.0f }; Renderer() : w(0), h(0) {} virtual ~Renderer() {} virtual bool init() = 0; virtual void render() = 0; virtual Shader createShader(const std::string& vs, const std::string& fs, const Shader::LoadType& lt) = 0; virtual RenderTarget* createRenderTarget( const void* data, size_t size, unsigned int* indices, size_t count, VertexLayout layout, const std::string& vs, const std::string& fs, const Shader::LoadType& lt ) = 0; virtual void draw(const RenderTarget&) = 0; virtual Renderer* getRendererImpl() = 0; }; } #endif