diff options
Diffstat (limited to '')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 2 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/renderer_opengl.cpp | 7 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/renderer_opengl.h | 2 |
3 files changed, 10 insertions, 1 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index e6f9ece8b..7ab7f0c0a 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp | |||
| @@ -520,6 +520,8 @@ bool RasterizerOpenGL::AccelerateDisplay(const Tegra::FramebufferConfig& config, | |||
| 520 | // ASSERT_MSG(image_view->size.width == config.width, "Framebuffer width is different"); | 520 | // ASSERT_MSG(image_view->size.width == config.width, "Framebuffer width is different"); |
| 521 | // ASSERT_MSG(image_view->size.height == config.height, "Framebuffer height is different"); | 521 | // ASSERT_MSG(image_view->size.height == config.height, "Framebuffer height is different"); |
| 522 | 522 | ||
| 523 | screen_info.texture.width = image_view->size.width; | ||
| 524 | screen_info.texture.height = image_view->size.height; | ||
| 523 | screen_info.display_texture = image_view->Handle(Shader::TextureType::Color2D); | 525 | screen_info.display_texture = image_view->Handle(Shader::TextureType::Color2D); |
| 524 | screen_info.display_srgb = VideoCore::Surface::IsPixelFormatSRGB(image_view->format); | 526 | screen_info.display_srgb = VideoCore::Surface::IsPixelFormatSRGB(image_view->format); |
| 525 | return true; | 527 | return true; |
diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp index f8f29013a..3a3c213bb 100644 --- a/src/video_core/renderer_opengl/renderer_opengl.cpp +++ b/src/video_core/renderer_opengl/renderer_opengl.cpp | |||
| @@ -208,6 +208,8 @@ void RendererOpenGL::LoadFBToScreenInfo(const Tegra::FramebufferConfig& framebuf | |||
| 208 | // Framebuffer orientation handling | 208 | // Framebuffer orientation handling |
| 209 | framebuffer_transform_flags = framebuffer.transform_flags; | 209 | framebuffer_transform_flags = framebuffer.transform_flags; |
| 210 | framebuffer_crop_rect = framebuffer.crop_rect; | 210 | framebuffer_crop_rect = framebuffer.crop_rect; |
| 211 | framebuffer_width = framebuffer.width; | ||
| 212 | framebuffer_height = framebuffer.height; | ||
| 211 | 213 | ||
| 212 | const VAddr framebuffer_addr{framebuffer.address + framebuffer.offset}; | 214 | const VAddr framebuffer_addr{framebuffer.address + framebuffer.offset}; |
| 213 | screen_info.was_accelerated = | 215 | screen_info.was_accelerated = |
| @@ -480,9 +482,12 @@ void RendererOpenGL::DrawScreen(const Layout::FramebufferLayout& layout) { | |||
| 480 | ASSERT_MSG(framebuffer_crop_rect.top == 0, "Unimplemented"); | 482 | ASSERT_MSG(framebuffer_crop_rect.top == 0, "Unimplemented"); |
| 481 | ASSERT_MSG(framebuffer_crop_rect.left == 0, "Unimplemented"); | 483 | ASSERT_MSG(framebuffer_crop_rect.left == 0, "Unimplemented"); |
| 482 | 484 | ||
| 485 | f32 scale_u = static_cast<f32>(framebuffer_width) / static_cast<f32>(screen_info.texture.width); | ||
| 486 | f32 scale_v = | ||
| 487 | static_cast<f32>(framebuffer_height) / static_cast<f32>(screen_info.texture.height); | ||
| 488 | |||
| 483 | // Scale the output by the crop width/height. This is commonly used with 1280x720 rendering | 489 | // Scale the output by the crop width/height. This is commonly used with 1280x720 rendering |
| 484 | // (e.g. handheld mode) on a 1920x1080 framebuffer. | 490 | // (e.g. handheld mode) on a 1920x1080 framebuffer. |
| 485 | f32 scale_u = 1.f, scale_v = 1.f; | ||
| 486 | if (framebuffer_crop_rect.GetWidth() > 0) { | 491 | if (framebuffer_crop_rect.GetWidth() > 0) { |
| 487 | scale_u = static_cast<f32>(framebuffer_crop_rect.GetWidth()) / | 492 | scale_u = static_cast<f32>(framebuffer_crop_rect.GetWidth()) / |
| 488 | static_cast<f32>(screen_info.texture.width); | 493 | static_cast<f32>(screen_info.texture.width); |
diff --git a/src/video_core/renderer_opengl/renderer_opengl.h b/src/video_core/renderer_opengl/renderer_opengl.h index aa206878b..ae9558a33 100644 --- a/src/video_core/renderer_opengl/renderer_opengl.h +++ b/src/video_core/renderer_opengl/renderer_opengl.h | |||
| @@ -137,6 +137,8 @@ private: | |||
| 137 | /// Used for transforming the framebuffer orientation | 137 | /// Used for transforming the framebuffer orientation |
| 138 | Service::android::BufferTransformFlags framebuffer_transform_flags{}; | 138 | Service::android::BufferTransformFlags framebuffer_transform_flags{}; |
| 139 | Common::Rectangle<int> framebuffer_crop_rect; | 139 | Common::Rectangle<int> framebuffer_crop_rect; |
| 140 | u32 framebuffer_width; | ||
| 141 | u32 framebuffer_height; | ||
| 140 | }; | 142 | }; |
| 141 | 143 | ||
| 142 | } // namespace OpenGL | 144 | } // namespace OpenGL |