light/modules/renderer/public/framebuffer.hpp
light7734 cd886aa8c9
Some checks reported errors
continuous-integration/drone/push Build was killed
refactor: flatten directory structure
2025-07-20 04:46:15 +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