From 2ad2c4d55441ae0cce701bf669de634c7fbb0a00 Mon Sep 17 00:00:00 2001 From: ZappoMan Date: Wed, 15 Jul 2015 15:32:02 -0700 Subject: [PATCH 1/5] remove some dead code --- interface/src/ui/ApplicationCompositor.cpp | 1 - libraries/render-utils/src/GeometryCache.cpp | 2 -- 2 files changed, 3 deletions(-) diff --git a/interface/src/ui/ApplicationCompositor.cpp b/interface/src/ui/ApplicationCompositor.cpp index 8565371a9b..4623109cdd 100644 --- a/interface/src/ui/ApplicationCompositor.cpp +++ b/interface/src/ui/ApplicationCompositor.cpp @@ -197,7 +197,6 @@ void ApplicationCompositor::displayOverlayTexture(RenderArgs* renderArgs) { updateTooltips(); auto deviceSize = qApp->getDeviceSize(); - glViewport(0, 0, deviceSize.width(), deviceSize.height()); //Handle fading and deactivation/activation of UI gpu::Batch batch; diff --git a/libraries/render-utils/src/GeometryCache.cpp b/libraries/render-utils/src/GeometryCache.cpp index 7cb882acc1..2bf41bc9b3 100644 --- a/libraries/render-utils/src/GeometryCache.cpp +++ b/libraries/render-utils/src/GeometryCache.cpp @@ -433,8 +433,6 @@ void GeometryCache::renderGrid(gpu::Batch& batch, int x, int y, int width, int h } // Draw vertical grid lines for (int i = cols + 1; --i >= 0; ) { - //glVertex2i(tx, y); - //glVertex2i(tx, y + height); *(vertex++) = tx; *(vertex++) = y; From d1e511efcb073fe6d72759b4ac928d06b2bb1847 Mon Sep 17 00:00:00 2001 From: ZappoMan Date: Wed, 15 Jul 2015 15:52:12 -0700 Subject: [PATCH 2/5] more naked gl cleanup, deleting dead code, tweaking comments so they don't give false positives in searching for more naked gl --- interface/src/ui/overlays/Cube3DOverlay.cpp | 2 -- libraries/gpu/src/gpu/Batch.h | 4 ++-- libraries/gpu/src/gpu/Shader.h | 2 +- libraries/render-utils/src/TextRenderer.cpp | 3 --- libraries/render-utils/src/TextureCache.cpp | 10 ---------- libraries/shared/src/Transform.h | 8 ++++---- 6 files changed, 7 insertions(+), 22 deletions(-) diff --git a/interface/src/ui/overlays/Cube3DOverlay.cpp b/interface/src/ui/overlays/Cube3DOverlay.cpp index 3455ce2e51..7f6fd5f971 100644 --- a/interface/src/ui/overlays/Cube3DOverlay.cpp +++ b/interface/src/ui/overlays/Cube3DOverlay.cpp @@ -33,8 +33,6 @@ void Cube3DOverlay::render(RenderArgs* args) { const float MAX_COLOR = 255.0f; glm::vec4 cubeColor(color.red / MAX_COLOR, color.green / MAX_COLOR, color.blue / MAX_COLOR, alpha); - //glDisable(GL_LIGHTING); - // TODO: handle registration point?? glm::vec3 position = getPosition(); glm::vec3 center = getCenter(); diff --git a/libraries/gpu/src/gpu/Batch.h b/libraries/gpu/src/gpu/Batch.h index bf6883e3a9..244ede7151 100644 --- a/libraries/gpu/src/gpu/Batch.h +++ b/libraries/gpu/src/gpu/Batch.h @@ -86,7 +86,7 @@ public: // Then by the inverse of the ViewTransform from world space to eye space // finaly projected into the clip space by the projection transform // WARNING: ViewTransform transform from eye space to world space, its inverse is composed - // with the ModelTransformu to create the equivalent of the glModelViewMatrix + // with the ModelTransform to create the equivalent of the gl ModelViewMatrix void setModelTransform(const Transform& model); void setViewTransform(const Transform& view); void setProjectionTransform(const Mat4& proj); @@ -114,7 +114,7 @@ public: // TODO: As long as we have gl calls explicitely issued from interface // code, we need to be able to record and batch these calls. THe long // term strategy is to get rid of any GL calls in favor of the HIFI GPU API - // For now, instead of calling the raw glCall, use the equivalent call on the batch so the call is beeing recorded + // For now, instead of calling the raw gl Call, use the equivalent call on the batch so the call is beeing recorded // THe implementation of these functions is in GLBackend.cpp void _glEnable(GLenum cap); diff --git a/libraries/gpu/src/gpu/Shader.h b/libraries/gpu/src/gpu/Shader.h index 9193ddb778..9c3953bff5 100755 --- a/libraries/gpu/src/gpu/Shader.h +++ b/libraries/gpu/src/gpu/Shader.h @@ -148,7 +148,7 @@ public: // // As of now (03/2015), the call to makeProgram is in fact calling gpu::Context::makeProgram and does rely // on the underneath gpu::Context::Backend available. Since we only support glsl, this means that it relies - // on a glContext and the driver to compile the glsl shader. + // on a gl Context and the driver to compile the glsl shader. // Hoppefully in a few years the shader compilation will be completely abstracted in a separate shader compiler library // independant of the graphics api in use underneath (looking at you opengl & vulkan). static bool makeProgram(Shader& shader, const Shader::BindingSet& bindings = Shader::BindingSet()); diff --git a/libraries/render-utils/src/TextRenderer.cpp b/libraries/render-utils/src/TextRenderer.cpp index fcd7bf2f2a..61a7ce78cf 100644 --- a/libraries/render-utils/src/TextRenderer.cpp +++ b/libraries/render-utils/src/TextRenderer.cpp @@ -504,9 +504,6 @@ glm::vec2 Font::drawString(float x, float y, const QString & str, _vao->release(); _texture->release(); // TODO: Brad & Sam, let's discuss this. Without this non-textured quads get their colors borked. _program->release(); - // FIXME, needed? - // glDisable(GL_TEXTURE_2D); - return advance; } diff --git a/libraries/render-utils/src/TextureCache.cpp b/libraries/render-utils/src/TextureCache.cpp index 4df9718e24..953cfda910 100644 --- a/libraries/render-utils/src/TextureCache.cpp +++ b/libraries/render-utils/src/TextureCache.cpp @@ -110,9 +110,6 @@ const gpu::TexturePointer& TextureCache::getPermutationNormalTexture() { _permutationNormalTexture = gpu::TexturePointer(gpu::Texture::create2D(gpu::Element(gpu::VEC3, gpu::UINT8, gpu::RGB), 256, 2)); _permutationNormalTexture->assignStoredMip(0, _blueTexture->getTexelFormat(), sizeof(data), data); - - // glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - // glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); } return _permutationNormalTexture; } @@ -122,13 +119,6 @@ const unsigned char OPAQUE_GRAY[] = { 0x80, 0x80, 0x80, 0xFF }; const unsigned char OPAQUE_BLUE[] = { 0x80, 0x80, 0xFF, 0xFF }; const unsigned char OPAQUE_BLACK[] = { 0x00, 0x00, 0x00, 0xFF }; -/* -static void loadSingleColorTexture(const unsigned char* color) { - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, color); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); -} -*/ - const gpu::TexturePointer& TextureCache::getWhiteTexture() { if (!_whiteTexture) { _whiteTexture = gpu::TexturePointer(gpu::Texture::create2D(gpu::Element(gpu::VEC4, gpu::UINT8, gpu::RGBA), 1, 1)); diff --git a/libraries/shared/src/Transform.h b/libraries/shared/src/Transform.h index 6f841151c4..09cb3ba65b 100644 --- a/libraries/shared/src/Transform.h +++ b/libraries/shared/src/Transform.h @@ -87,20 +87,20 @@ public: const Vec3& getTranslation() const; void setTranslation(const Vec3& translation); // [new this] = [translation] * [this.rotation] * [this.scale] void preTranslate(const Vec3& translation); // [new this] = [translation] * [this] - void postTranslate(const Vec3& translation); // [new this] = [this] * [translation] equivalent to glTranslate + void postTranslate(const Vec3& translation); // [new this] = [this] * [translation] equivalent to gl Translate const Quat& getRotation() const; void setRotation(const Quat& rotation); // [new this] = [this.translation] * [rotation] * [this.scale] void preRotate(const Quat& rotation); // [new this] = [rotation] * [this] - void postRotate(const Quat& rotation); // [new this] = [this] * [rotation] equivalent to glRotate + void postRotate(const Quat& rotation); // [new this] = [this] * [rotation] equivalent to gl Rotate const Vec3& getScale() const; void setScale(float scale); void setScale(const Vec3& scale); // [new this] = [this.translation] * [this.rotation] * [scale] void preScale(float scale); void preScale(const Vec3& scale); - void postScale(float scale); // [new this] = [this] * [scale] equivalent to glScale - void postScale(const Vec3& scale); // [new this] = [this] * [scale] equivalent to glScale + void postScale(float scale); // [new this] = [this] * [scale] equivalent to gl Scale + void postScale(const Vec3& scale); // [new this] = [this] * [scale] equivalent to gl Scale bool isIdentity() const { return (_flags & ~Flags(FLAG_CACHE_INVALID_BITSET)).none(); } bool isTranslating() const { return _flags[FLAG_TRANSLATION]; } From 7795eaace630d4e1de99092c57ef0bfc207469ab Mon Sep 17 00:00:00 2001 From: ZappoMan Date: Wed, 15 Jul 2015 15:56:27 -0700 Subject: [PATCH 3/5] remove more naked gl --- interface/src/avatar/SkeletonModel.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/interface/src/avatar/SkeletonModel.cpp b/interface/src/avatar/SkeletonModel.cpp index 2d4baaf237..05b1500b8b 100644 --- a/interface/src/avatar/SkeletonModel.cpp +++ b/interface/src/avatar/SkeletonModel.cpp @@ -791,19 +791,24 @@ void SkeletonModel::renderBoundingCollisionShapes(gpu::Batch& batch, float alpha transform.setTranslation(endPoint); batch.setModelTransform(transform); auto geometryCache = DependencyManager::get(); - geometryCache->renderSphere(batch, _boundingShape.getRadius(), BALL_SUBDIVISIONS, BALL_SUBDIVISIONS, glm::vec4(0.6f, 0.6f, 0.8f, alpha)); + geometryCache->renderSphere(batch, _boundingShape.getRadius(), BALL_SUBDIVISIONS, BALL_SUBDIVISIONS, + glm::vec4(0.6f, 0.6f, 0.8f, alpha)); // draw a yellow sphere at the capsule startpoint glm::vec3 startPoint; _boundingShape.getStartPoint(startPoint); startPoint = startPoint - _translation; glm::vec3 axis = endPoint - startPoint; - glTranslatef(-axis.x, -axis.y, -axis.z); - geometryCache->renderSphere(_boundingShape.getRadius(), BALL_SUBDIVISIONS, BALL_SUBDIVISIONS, glm::vec4(0.8f, 0.8f, 0.6f, alpha)); + Transform axisTransform = Transform(); + axisTransform.setTranslation(-axis); + batch.setModelTransform(axisTransform); + geometryCache->renderSphere(batch, _boundingShape.getRadius(), BALL_SUBDIVISIONS, BALL_SUBDIVISIONS, + glm::vec4(0.8f, 0.8f, 0.6f, alpha)); // draw a green cylinder between the two points glm::vec3 origin(0.0f); - Avatar::renderJointConnectingCone(batch, origin, axis, _boundingShape.getRadius(), _boundingShape.getRadius(), glm::vec4(0.6f, 0.8f, 0.6f, alpha)); + Avatar::renderJointConnectingCone(batch, origin, axis, _boundingShape.getRadius(), _boundingShape.getRadius(), + glm::vec4(0.6f, 0.8f, 0.6f, alpha)); } bool SkeletonModel::hasSkeleton() { From d5a6e87a029c2ce9c2d621b0b9e0e96b89a4a86f Mon Sep 17 00:00:00 2001 From: ZappoMan Date: Wed, 15 Jul 2015 16:34:23 -0700 Subject: [PATCH 4/5] remove naked gl from Avatar::calculateDisplayNameTransform() --- interface/src/avatar/Avatar.cpp | 15 +++++---------- interface/src/avatar/Avatar.h | 4 ++-- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/interface/src/avatar/Avatar.cpp b/interface/src/avatar/Avatar.cpp index d0268fd936..6374b6b10b 100644 --- a/interface/src/avatar/Avatar.cpp +++ b/interface/src/avatar/Avatar.cpp @@ -523,7 +523,7 @@ void Avatar::render(RenderArgs* renderArgs, const glm::vec3& cameraPosition, boo auto cameraMode = Application::getInstance()->getCamera()->getMode(); if (!isMyAvatar() || cameraMode != CAMERA_MODE_FIRST_PERSON) { - renderDisplayName(batch, *renderArgs->_viewFrustum); + renderDisplayName(batch, *renderArgs->_viewFrustum, renderArgs->_viewport); } } @@ -674,7 +674,7 @@ glm::vec3 Avatar::getDisplayNamePosition() const { return namePosition; } -Transform Avatar::calculateDisplayNameTransform(const ViewFrustum& frustum, float fontSize) const { +Transform Avatar::calculateDisplayNameTransform(const ViewFrustum& frustum, float fontSize, const glm::ivec4& viewport) const { Transform result; // We assume textPosition is whithin the frustum glm::vec3 textPosition = getDisplayNamePosition(); @@ -693,12 +693,7 @@ Transform Avatar::calculateDisplayNameTransform(const ViewFrustum& frustum, floa glm::vec4 p0 = viewProj * glm::vec4(testPoint0, 1.0); glm::vec4 p1 = viewProj * glm::vec4(testPoint1, 1.0); - // TODO REMOVE vvv - GLint viewportMatrix[4]; - glGetIntegerv(GL_VIEWPORT, viewportMatrix); - glm::dmat4 modelViewMatrix; - float windowSizeY = viewportMatrix[3] - viewportMatrix[1]; - // TODO REMOVE ^^^ + float windowSizeY = viewport.w; const float DESIRED_HIGHT_ON_SCREEN = 20; // In pixels (this is double on retinas) @@ -731,7 +726,7 @@ Transform Avatar::calculateDisplayNameTransform(const ViewFrustum& frustum, floa } -void Avatar::renderDisplayName(gpu::Batch& batch, const ViewFrustum& frustum) const { +void Avatar::renderDisplayName(gpu::Batch& batch, const ViewFrustum& frustum, const glm::ivec4& viewport) const { bool shouldShowReceiveStats = DependencyManager::get()->shouldShowReceiveStats() && !isMyAvatar(); // If we have nothing to draw, or it's tottaly transparent, return @@ -773,7 +768,7 @@ void Avatar::renderDisplayName(gpu::Batch& batch, const ViewFrustum& frustum) co (_displayNameAlpha / DISPLAYNAME_ALPHA) * DISPLAYNAME_BACKGROUND_ALPHA); // Compute display name transform - auto textTransform = calculateDisplayNameTransform(frustum, renderer->getFontSize()); + auto textTransform = calculateDisplayNameTransform(frustum, renderer->getFontSize(), viewport); batch.setModelTransform(textTransform); DependencyManager::get()->bindSimpleProgram(batch, false, true, true, true); diff --git a/interface/src/avatar/Avatar.h b/interface/src/avatar/Avatar.h index b23059acb0..b67caa1641 100644 --- a/interface/src/avatar/Avatar.h +++ b/interface/src/avatar/Avatar.h @@ -234,8 +234,8 @@ protected: float getPelvisFloatingHeight() const; glm::vec3 getDisplayNamePosition() const; - Transform calculateDisplayNameTransform(const ViewFrustum& frustum, float fontSize) const; - void renderDisplayName(gpu::Batch& batch, const ViewFrustum& frustum) const; + Transform calculateDisplayNameTransform(const ViewFrustum& frustum, float fontSize, const glm::ivec4& viewport) const; + void renderDisplayName(gpu::Batch& batch, const ViewFrustum& frustum, const glm::ivec4& viewport) const; virtual void renderBody(RenderArgs* renderArgs, ViewFrustum* renderFrustum, bool postLighting, float glowLevel = 0.0f); virtual bool shouldRenderHead(const RenderArgs* renderArgs) const; virtual void fixupModelsInScene(); From 5165210e11237f101191a0864f543b56e9857c3a Mon Sep 17 00:00:00 2001 From: ZappoMan Date: Wed, 15 Jul 2015 16:35:20 -0700 Subject: [PATCH 5/5] fix Sams comment about comments --- libraries/shared/src/Transform.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libraries/shared/src/Transform.h b/libraries/shared/src/Transform.h index 09cb3ba65b..3b66bcd814 100644 --- a/libraries/shared/src/Transform.h +++ b/libraries/shared/src/Transform.h @@ -87,20 +87,20 @@ public: const Vec3& getTranslation() const; void setTranslation(const Vec3& translation); // [new this] = [translation] * [this.rotation] * [this.scale] void preTranslate(const Vec3& translation); // [new this] = [translation] * [this] - void postTranslate(const Vec3& translation); // [new this] = [this] * [translation] equivalent to gl Translate + void postTranslate(const Vec3& translation); // [new this] = [this] * [translation] equivalent to:glTranslate const Quat& getRotation() const; void setRotation(const Quat& rotation); // [new this] = [this.translation] * [rotation] * [this.scale] void preRotate(const Quat& rotation); // [new this] = [rotation] * [this] - void postRotate(const Quat& rotation); // [new this] = [this] * [rotation] equivalent to gl Rotate + void postRotate(const Quat& rotation); // [new this] = [this] * [rotation] equivalent to:glRotate const Vec3& getScale() const; void setScale(float scale); void setScale(const Vec3& scale); // [new this] = [this.translation] * [this.rotation] * [scale] void preScale(float scale); void preScale(const Vec3& scale); - void postScale(float scale); // [new this] = [this] * [scale] equivalent to gl Scale - void postScale(const Vec3& scale); // [new this] = [this] * [scale] equivalent to gl Scale + void postScale(float scale); // [new this] = [this] * [scale] equivalent to:glScale + void postScale(const Vec3& scale); // [new this] = [this] * [scale] equivalent to:glScale bool isIdentity() const { return (_flags & ~Flags(FLAG_CACHE_INVALID_BITSET)).none(); } bool isTranslating() const { return _flags[FLAG_TRANSLATION]; }