mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-04-23 12:39:24 -05:00
Add a fix to the window resolution for Retina displays
Add a new setting to the ConfigurationManager that can specify whether to scale the onscreen text by window size or resolution
This commit is contained in:
@@ -370,11 +370,10 @@ void RenderEngine::updateRenderer() {
|
||||
bool windowResized = OsEng.windowWrapper().windowHasResized();
|
||||
|
||||
if (windowResized) {
|
||||
glm::ivec2 res = OsEng.windowWrapper().currentWindowSize();
|
||||
//glm::ivec2 res = OsEng.windowWrapper().currentDrawBufferResolution();
|
||||
_renderer->setResolution(res);
|
||||
_renderer->setResolution(renderingResolution());
|
||||
|
||||
ghoul::fontrendering::FontRenderer::defaultRenderer().setFramebufferSize(
|
||||
glm::vec2(res)
|
||||
fontResolution()
|
||||
);
|
||||
}
|
||||
|
||||
@@ -387,6 +386,31 @@ void RenderEngine::updateScreenSpaceRenderables() {
|
||||
}
|
||||
}
|
||||
|
||||
glm::ivec2 RenderEngine::renderingResolution() const {
|
||||
if (OsEng.windowWrapper().isRegularRendering()) {
|
||||
return OsEng.windowWrapper().currentWindowResolution();
|
||||
}
|
||||
else {
|
||||
return OsEng.windowWrapper().currentDrawBufferResolution();
|
||||
}
|
||||
}
|
||||
|
||||
glm::ivec2 RenderEngine::fontResolution() const {
|
||||
std::string value;
|
||||
bool hasValue = OsEng.configurationManager().getValue(
|
||||
ConfigurationManager::KeyOnScreenTextScaling,
|
||||
value
|
||||
);
|
||||
if (hasValue && value == "framebuffer") {
|
||||
return OsEng.windowWrapper().currentWindowResolution();
|
||||
}
|
||||
else {
|
||||
// The default is to use the window size
|
||||
return OsEng.windowWrapper().currentWindowSize();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void RenderEngine::updateFade() {
|
||||
//temporary fade funtionality
|
||||
float fadedIn = 1.0;
|
||||
@@ -686,14 +710,12 @@ void RenderEngine::postRaycast(ghoul::opengl::ProgramObject& programObject) {
|
||||
* Set renderer
|
||||
*/
|
||||
void RenderEngine::setRenderer(std::unique_ptr<Renderer> renderer) {
|
||||
glm::ivec2 res = OsEng.windowWrapper().currentDrawBufferResolution();
|
||||
|
||||
if (_renderer) {
|
||||
_renderer->deinitialize();
|
||||
}
|
||||
|
||||
_renderer = std::move(renderer);
|
||||
_renderer->setResolution(res);
|
||||
_renderer->setResolution(renderingResolution());
|
||||
_renderer->setNAaSamples(_nAaSamples);
|
||||
_renderer->initialize();
|
||||
_renderer->setCamera(_mainCamera);
|
||||
@@ -1279,7 +1301,8 @@ void RenderEngine::renderInformation() {
|
||||
if (_fontDate) {
|
||||
glm::vec2 penPosition = glm::vec2(
|
||||
10.f,
|
||||
OsEng.windowWrapper().viewportPixelCoordinates().w
|
||||
fontResolution().y
|
||||
//OsEng.windowWrapper().viewportPixelCoordinates().w
|
||||
);
|
||||
penPosition.y -= _fontDate->height();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user