version 1.1.0

add Renderer::GrabFormat flags
This commit is contained in:
2023-04-25 17:34:47 +03:00
parent 0151e34477
commit 011c3eeb71
6 changed files with 27 additions and 15 deletions

View File

@@ -145,7 +145,7 @@ void Renderer::init(int width, int height) {
initCoeffTextures();
markReloadTextures();
tex_env.init();
if (is_grabbing) fbo_out.enablePixelBuffer();
fbo_out.enablePixelBuffer();
need_init_shaders = true;
}
@@ -686,11 +686,15 @@ void Renderer::renderScene() {
/// grab framebuffer
phase.begin("grab");
if (is_grabbing) {
fbo_out.queryImage(0);
if (view->grabFormats().testFlag(gfImage)) {
fbo_out.queryImage(cur_write_plane);
last_img = fbo_out.getImage().mirrored();
// qDebug() << last_img.size();
}
if (view->grabFormats().testFlag(gfFloat)) {
fbo_out.queryImageF(obrLighting);
last_img_f = fbo_out.getPointsFloat();
}
// qDebug() << last_img.size();
phase.end();
/*
@@ -728,11 +732,6 @@ void Renderer::setCameraLightMode(int m) {
view->scene()->setLightsChanged();
}
void Renderer::setGrabImage(bool on) {
is_grabbing = on;
// fbo_out.enablePixelBuffer();
}
void Renderer::addFramebufferEffect(FramebufferEffectBase * e) {
e->r = this;

View File

@@ -92,6 +92,10 @@ public:
dbrBuffersCount,
};
enum GrabFormat {
gfImage = 1,
gfFloat = 2
};
void init(int width, int height);
void resize(int width, int height);
@@ -99,9 +103,8 @@ public:
void renderScene();
void setCameraLightMode(int m);
int cameraLightMode() const { return camera_light_mode; }
void setGrabImage(bool on);
bool isGrabImage() const { return is_grabbing; }
QImage getImage() const { return last_img; }
QVector<QVector4D> getImageF() const { return last_img_f; }
void addFramebufferEffect(FramebufferEffectBase * e);
void clearFramebufferEffects() { fb_effects.clear(); }
QVector<FramebufferEffectBase *> framebufferEffects() const { return fb_effects; }
@@ -156,8 +159,8 @@ private:
QMap<int, QList<Light *>> cur_lights;
QVector<FramebufferEffectBase *> fb_effects;
QImage last_img;
QVector<QVector4D> last_img_f;
QString obr_defines, timings;
bool is_grabbing = false;
};
#endif // RENDERER_H