light/modules/renderer/include/renderer/framebuffer.hpp
light7734 f9ce347ca0
feat: initial math module implementation
refactor: replace glm with built-in math library
2025-07-17 10:44:00 +03:30

40 lines
693 B
C++

#pragma once
#include <math/vec2.hpp>
#include <math/vec4.hpp>
namespace lt {
class SharedContext;
struct FramebufferSpecification
{
unsigned int width {};
unsigned int height {};
unsigned int samples = 1;
};
class Framebuffer
{
public:
virtual ~Framebuffer() = default;
static auto create(
const FramebufferSpecification &specification,
const Ref<SharedContext> &sharedContext
) -> Ref<Framebuffer>;
virtual void bind_as_target(const math::vec4 &clearColor) = 0;
virtual void bind_as_resource() = 0;
virtual void resize(const math::uvec2 &size) = 0;
virtual auto get_color_attachment() -> void * = 0;
protected:
Framebuffer() = default;
};
} // namespace lt