From ad860abf7d87f1adecb980b5140f69d7fecb71e8 Mon Sep 17 00:00:00 2001 From: Dmitri K Date: Fri, 18 Nov 2016 22:31:24 -0500 Subject: [PATCH] starting game UI --- src/viewer/simpleViewer.cpp | 33 +++++++++++++++++++++++++++++++++ src/viewer/simpleViewer.h | 6 ++++-- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/src/viewer/simpleViewer.cpp b/src/viewer/simpleViewer.cpp index b4adfaf..83d05a0 100644 --- a/src/viewer/simpleViewer.cpp +++ b/src/viewer/simpleViewer.cpp @@ -167,6 +167,8 @@ void Viewer::draw() modelStack.push(modelViewMatrix); root.accept(*this); + drawUi(); + sunRotate.setToIdentity(); //float rotAngle = (frame * angle_mult) % 360; } @@ -822,6 +824,37 @@ void Viewer::startAniumation(){} void Viewer::stopAnimation(){} + +void Viewer::drawUi(){ + + glCullFace(GL_FRONT); + + QMatrix4x4 projectionMatrix; + QMatrix4x4 uiViewMatrix; + + uiViewMatrix.translate(0, -1.5, -4); + camera()->getProjectionMatrix(projectionMatrix); + + float colorMult = 0.2 + std::fabs(0.8 * cos(std::fmod(angle_mult * frame + 300, 360) / 360 * M_PI)); + + m_program->setUniformValue(m_isSkyLoc, false); + m_program->setUniformValue(m_drawTextLoc, true); + m_program->setUniformValue(m_isLightLoc, true); + + glBindVertexArray(m_VAOs[VAO_Cube]); + uiViewMatrix.scale(.25, .25, .01); + uiViewMatrix.translate(-TEX_LENGTH/2.0, 0, 0); + for(int i = 0; ibind(); + m_program->setUniformValue(m_mvMatrixLocation, uiViewMatrix); + uiViewMatrix.translate(1.2, 0, 0); + glDrawArrays(GL_TRIANGLES, 0, 36); + } + +} + + PickedGeom Viewer::pickGeom(int x, int y){ makeCurrent(); diff --git a/src/viewer/simpleViewer.h b/src/viewer/simpleViewer.h index 15d9ca9..7daff12 100644 --- a/src/viewer/simpleViewer.h +++ b/src/viewer/simpleViewer.h @@ -92,6 +92,8 @@ private: void startAniumation(); void stopAnimation(); + void drawUi(); + // shader switching variables and constants; QOpenGLShaderProgram *colorPickerShaderProgram; QOpenGLShaderProgram *textureRenderShaderprogram; @@ -162,10 +164,10 @@ private: }; QString TexturePaths[TEX_LENGTH] = { - "src/data/dry_gound.jpg", + "src/data/dry_ground.jpg", "src/data/granite_floor.jpg", "src/data/grass.jpg", - "src/data/limestone_walls.jpg", + "src/data/limestone_wall.jpg", "src/data/pierre_bouchardee.jpg", "src/data/wood_floor.jpg" };