Files
Archimedes/include/utils/Renderer/Renderer.h
2026-02-10 13:37:49 -06:00

48 lines
1.1 KiB
C++

#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