From 2ca4d0ab29082de10ac023749c994a8a00b4ed51 Mon Sep 17 00:00:00 2001 From: Bradley Austin Davis Date: Mon, 5 Dec 2016 14:12:57 -0800 Subject: [PATCH] Fix drop in text rendering quality on texture memory constrained systems --- interface/src/Menu.cpp | 5 ++++- interface/src/Menu.h | 1 + .../src/display-plugins/OpenGLDisplayPlugin.cpp | 1 - libraries/render-utils/src/text/Font.cpp | 1 - 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index ea1b26dd80..c22d0ba32a 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -363,6 +363,7 @@ Menu::Menu() { QActionGroup* textureGroup = new QActionGroup(textureMenu); textureGroup->setExclusive(true); textureGroup->addAction(addCheckableActionToQMenuAndActionHash(textureMenu, MenuOption::RenderMaxTextureAutomatic, 0, true)); + textureGroup->addAction(addCheckableActionToQMenuAndActionHash(textureMenu, MenuOption::RenderMaxTexture4MB, 0, false)); textureGroup->addAction(addCheckableActionToQMenuAndActionHash(textureMenu, MenuOption::RenderMaxTexture64MB, 0, false)); textureGroup->addAction(addCheckableActionToQMenuAndActionHash(textureMenu, MenuOption::RenderMaxTexture256MB, 0, false)); textureGroup->addAction(addCheckableActionToQMenuAndActionHash(textureMenu, MenuOption::RenderMaxTexture512MB, 0, false)); @@ -372,7 +373,9 @@ Menu::Menu() { auto checked = textureGroup->checkedAction(); auto text = checked->text(); gpu::Context::Size newMaxTextureMemory { 0 }; - if (MenuOption::RenderMaxTexture64MB == text) { + if (MenuOption::RenderMaxTexture4MB == text) { + newMaxTextureMemory = MB_TO_BYTES(4); + } else if (MenuOption::RenderMaxTexture64MB == text) { newMaxTextureMemory = MB_TO_BYTES(64); } else if (MenuOption::RenderMaxTexture256MB == text) { newMaxTextureMemory = MB_TO_BYTES(256); diff --git a/interface/src/Menu.h b/interface/src/Menu.h index ad11b91796..287fec2609 100644 --- a/interface/src/Menu.h +++ b/interface/src/Menu.h @@ -156,6 +156,7 @@ namespace MenuOption { const QString RenderOtherLookAtVectors = "Show Other Eye Vectors"; const QString RenderMaxTextureMemory = "Maximum Texture Memory"; const QString RenderMaxTextureAutomatic = "Automatic Texture Memory"; + const QString RenderMaxTexture4MB = "4 MB"; const QString RenderMaxTexture64MB = "64 MB"; const QString RenderMaxTexture256MB = "256 MB"; const QString RenderMaxTexture512MB = "512 MB"; diff --git a/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp b/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp index 63c4692a5f..969c0a95a9 100644 --- a/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp +++ b/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp @@ -360,7 +360,6 @@ void OpenGLDisplayPlugin::customizeContext() { auto usage = gpu::Texture::Usage::Builder().withColor().withAlpha(); cursorData.texture->setUsage(usage.build()); cursorData.texture->assignStoredMip(0, gpu::Element(gpu::VEC4, gpu::NUINT8, gpu::RGBA), image.byteCount(), image.constBits()); - cursorData.texture->autoGenerateMips(-1); } } } diff --git a/libraries/render-utils/src/text/Font.cpp b/libraries/render-utils/src/text/Font.cpp index 3607aa5803..4f4ee12622 100644 --- a/libraries/render-utils/src/text/Font.cpp +++ b/libraries/render-utils/src/text/Font.cpp @@ -210,7 +210,6 @@ void Font::read(QIODevice& in) { _texture = gpu::TexturePointer(gpu::Texture::create2D(formatGPU, image.width(), image.height(), gpu::Sampler(gpu::Sampler::FILTER_MIN_POINT_MAG_LINEAR))); _texture->assignStoredMip(0, formatMip, image.byteCount(), image.constBits()); - _texture->autoGenerateMips(-1); } void Font::setupGPU() {