Resize frame buffer method added

This commit is contained in:
IlyaShurupov 2024-06-18 14:48:26 +03:00
parent 787681d320
commit bafe6a7f43
6 changed files with 66 additions and 13 deletions

View file

@ -65,7 +65,7 @@ Render::Render(Vec2F renderResolution) :
Render::~Render() {}
uint4 Render::getRenderBuffer() { return mRenderBuffer.texId(); }
uint4 Render::getRenderBufferID() { return mRenderBuffer.texId(); }
Vec2F Render::getBufferSize() { return mRenderBuffer.getSize(); }
@ -77,7 +77,7 @@ void Render::render(const Scene& geometry, Vec2F size) {
}
}
mRenderBuffer.mClearCol = { 0.0f, 0.0f, 0.0f, 0.f };
mRenderBuffer.mClearCol = { 0.0f, 0.0f, 0.0f, 1.f };
mRenderBuffer.beginDraw();
mRenderBuffer.clear();
@ -108,3 +108,5 @@ void Render::render(const Scene& geometry, Vec2F size) {
mRenderBuffer.endDraw();
}
RenderBuffer* Render::getRenderBuffer() { return &mRenderBuffer; }

View file

@ -9,14 +9,18 @@ namespace tp {
explicit ViewportWidget(Canvas* canvas, Scene* geometry, Vec2F renderResolution) :
mRender(renderResolution) {
mImage = canvas->createImageFromTextId(mRender.getRenderBuffer(), mRender.getBufferSize());
mImage = canvas->createImageFromTextId(mRender.getRenderBufferID(), { 0, 0 });
mGeometry = geometry;
mCanvas = canvas;
}
~ViewportWidget() { mCanvas->deleteImageHandle(mImage); }
void eventProcess(const Events& events) override { mGeometry->mCamera.rotate(0.01f, 0.0); }
void eventProcess(const Events& events) override {
mRender.getRenderBuffer()->resize(this->mArea.size);
mGeometry->mCamera.rotate(0.01f, 0.0);
mGeometry->mCamera.setRatio(this->mArea.w / this->mArea.z);
}
void eventDraw(Canvas& canvas) override {
mRender.render(*mGeometry, this->mArea.size);

View file

@ -13,7 +13,8 @@ namespace tp {
~Render();
void render(const Scene& geometry, Vec2F size);
uint4 getRenderBuffer();
uint4 getRenderBufferID();
RenderBuffer* getRenderBuffer();
Vec2F getBufferSize();
private: