Modules/RasterRender/public/RasterRender.hpp
2024-11-04 22:54:10 +03:00

33 lines
No EOL
681 B
C++

#pragma once
#include "Scene.hpp"
#include "Rect.hpp"
#include "FrameBuffer.hpp"
#include "Shader.hpp"
namespace tp {
class RasterRender {
public:
RasterRender();
~RasterRender();
void render(const Scene& geometry, const Vec2<ualni>& size);
uint4 getRenderBufferID();
RenderBuffer* getRenderBuffer();
Vec2F getBufferSize();
private:
void renderDefault(const Scene& geometry);
void renderOutline(const Camera& camera, const Object& object);
void bindObjectShaderAttributes(const Object& object);
void bindCameraShaderAttributes(Mat4F cameraMat);
private:
RenderBuffer mRenderBuffer;
RenderShader mDefaultShader;
RenderShader mSolidShader;
};
}