git-svn-id: svn://db.shs.com.ru/libs@663 a8b55f48-bf90-11e4-a774-851b48703e85

This commit is contained in:
2019-12-08 22:53:21 +00:00
parent da962779d8
commit 1a210defb1
19 changed files with 4598 additions and 197 deletions

View File

@@ -27,7 +27,7 @@ using namespace QGLEngineShaders;
RendererSelection::RendererSelection(Renderer * r_): r(r_),
fbo_selection(r->view, 4) {
fbo_selection(r->view, 6) {
sel_frame = Primitive::plane(2., 2.);
id_hover = 0;
line_thick_ = 2.;
@@ -138,7 +138,7 @@ void RendererSelection::renderSelection(Scene & scene) {
//qDebug() << id_hover;
fbo_selection.bindColorTexture(sbrSrcHover , sbrSrcHover );
fbo_selection.bindColorTexture(sbrSrcSelect, sbrSrcSelect);
int wind[2] = {2, 3};
int wind[2] = {sbrHovered, sbrSelected};
fbo_selection.setWriteBuffers(wind, 2);
if (!view->hoverHalo_ && !view->selectionHalo_)
glClearFramebuffer(QColor(0,0,0,0), false);
@@ -157,6 +157,17 @@ void RendererSelection::renderSelection(Scene & scene) {
r->renderQuad(prog, r->quad, view->camera());
}
prog = r->shader_fxaa;
if (r->bindShader(prog)) {
r->setUniformCamera(prog, 0, true, fbo_selection.size());
fbo_selection.bindColorTexture(sbrHovered);
fbo_selection.setWriteBuffer(sbrHoveredFXAA);
r->renderQuad(prog, r->quad, 0, false);
fbo_selection.bindColorTexture(sbrSelected);
fbo_selection.setWriteBuffer(sbrSelectedFXAA);
r->renderQuad(prog, r->quad, 0, false);
}
fbo_selection.release();
}
}
@@ -187,8 +198,8 @@ void RendererSelection::drawSelection(Framebuffer & fbo_out, int index_out) {
fbo_selection.bindColorTextures();
fbo_out.bindColorTexture(index_out);
prog->setUniformValue("fb_out" , 0);
prog->setUniformValue("fb_hover" , (int)sbrHovered );
prog->setUniformValue("fb_select", (int)sbrSelected);
prog->setUniformValue("fb_hover" , (int)sbrHoveredFXAA );
prog->setUniformValue("fb_select", (int)sbrSelectedFXAA);
r->renderQuad(prog, r->quad, r->view->camera());
if (!r->mouse_rect.isNull()) {
renderSelectionFrame();