summaryrefslogtreecommitdiffstats
path: root/src/video_core
diff options
context:
space:
mode:
Diffstat (limited to 'src/video_core')
-rw-r--r--src/video_core/CMakeLists.txt12
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer_cache.cpp20
-rw-r--r--src/video_core/renderer_opengl/renderer_opengl.cpp10
-rw-r--r--src/video_core/renderer_opengl/renderer_opengl.h3
-rw-r--r--src/video_core/video_core.h15
5 files changed, 17 insertions, 43 deletions
diff --git a/src/video_core/CMakeLists.txt b/src/video_core/CMakeLists.txt
index e00b88f71..e455f03bd 100644
--- a/src/video_core/CMakeLists.txt
+++ b/src/video_core/CMakeLists.txt
@@ -79,13 +79,15 @@ endif()
create_directory_groups(${SRCS} ${HEADERS})
add_library(video_core STATIC ${SRCS} ${HEADERS})
-target_link_libraries(video_core glad)
+target_link_libraries(video_core PUBLIC common core)
+target_link_libraries(video_core PRIVATE glad)
+
if (ARCHITECTURE_x86_64)
- target_link_libraries(video_core xbyak)
+ target_link_libraries(video_core PRIVATE xbyak)
endif()
if (PNG_FOUND)
- target_link_libraries(video_core ${PNG_LIBRARIES})
- include_directories(${PNG_INCLUDE_DIRS})
- add_definitions(${PNG_DEFINITIONS})
+ target_link_libraries(video_core PRIVATE ${PNG_LIBRARIES})
+ target_include_directories(video_core PRIVATE ${PNG_INCLUDE_DIRS})
+ target_compile_definitions(video_core PRIVATE ${PNG_DEFINITIONS})
endif()
diff --git a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp
index 456443e86..8b717e43d 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp
@@ -561,20 +561,16 @@ RasterizerCacheOpenGL::GetFramebufferSurfaces(
color_params.is_tiled = depth_params.is_tiled = true;
// Set the internal resolution, assume the same scaling factor for top and bottom screens
- const Layout::FramebufferLayout& layout = VideoCore::g_emu_window->GetFramebufferLayout();
- if (Settings::values.resolution_factor == 0.0f) {
+ float resolution_scale_factor = Settings::values.resolution_factor;
+ if (resolution_scale_factor == 0.0f) {
// Auto - scale resolution to the window size
- color_params.res_scale_width = depth_params.res_scale_width =
- (float)layout.top_screen.GetWidth() / VideoCore::kScreenTopWidth;
- color_params.res_scale_height = depth_params.res_scale_height =
- (float)layout.top_screen.GetHeight() / VideoCore::kScreenTopHeight;
- } else {
- // Otherwise, scale the resolution by the specified factor
- color_params.res_scale_width = Settings::values.resolution_factor;
- depth_params.res_scale_width = Settings::values.resolution_factor;
- color_params.res_scale_height = Settings::values.resolution_factor;
- depth_params.res_scale_height = Settings::values.resolution_factor;
+ resolution_scale_factor = VideoCore::g_emu_window->GetFramebufferLayout().GetScalingRatio();
}
+ // Scale the resolution by the specified factor
+ color_params.res_scale_width = resolution_scale_factor;
+ depth_params.res_scale_width = resolution_scale_factor;
+ color_params.res_scale_height = resolution_scale_factor;
+ depth_params.res_scale_height = resolution_scale_factor;
color_params.addr = config.GetColorBufferPhysicalAddress();
color_params.pixel_format = CachedSurface::PixelFormatFromColorFormat(config.color_format);
diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp
index e19375466..d90c776f9 100644
--- a/src/video_core/renderer_opengl/renderer_opengl.cpp
+++ b/src/video_core/renderer_opengl/renderer_opengl.cpp
@@ -94,14 +94,8 @@ static std::array<GLfloat, 3 * 2> MakeOrthographicMatrix(const float width, cons
return matrix;
}
-/// RendererOpenGL constructor
-RendererOpenGL::RendererOpenGL() {
- resolution_width = std::max(VideoCore::kScreenTopWidth, VideoCore::kScreenBottomWidth);
- resolution_height = VideoCore::kScreenTopHeight + VideoCore::kScreenBottomHeight;
-}
-
-/// RendererOpenGL destructor
-RendererOpenGL::~RendererOpenGL() {}
+RendererOpenGL::RendererOpenGL() = default;
+RendererOpenGL::~RendererOpenGL() = default;
/// Swap buffers (render frame)
void RendererOpenGL::SwapBuffers() {
diff --git a/src/video_core/renderer_opengl/renderer_opengl.h b/src/video_core/renderer_opengl/renderer_opengl.h
index 87c556cff..0b4f69e8f 100644
--- a/src/video_core/renderer_opengl/renderer_opengl.h
+++ b/src/video_core/renderer_opengl/renderer_opengl.h
@@ -68,9 +68,6 @@ private:
EmuWindow* render_window; ///< Handle to render window
- int resolution_width; ///< Current resolution width
- int resolution_height; ///< Current resolution height
-
OpenGLState state;
// OpenGL object IDs
diff --git a/src/video_core/video_core.h b/src/video_core/video_core.h
index 4aba19ca0..94e0867f0 100644
--- a/src/video_core/video_core.h
+++ b/src/video_core/video_core.h
@@ -15,21 +15,6 @@ class RendererBase;
namespace VideoCore {
-// 3DS Video Constants
-// -------------------
-
-// NOTE: The LCDs actually rotate the image 90 degrees when displaying. Because of that the
-// framebuffers in video memory are stored in column-major order and rendered sideways, causing
-// the widths and heights of the framebuffers read by the LCD to be switched compared to the
-// heights and widths of the screens listed here.
-static const int kScreenTopWidth = 400; ///< 3DS top screen width
-static const int kScreenTopHeight = 240; ///< 3DS top screen height
-static const int kScreenBottomWidth = 320; ///< 3DS bottom screen width
-static const int kScreenBottomHeight = 240; ///< 3DS bottom screen height
-
-// Video core renderer
-// ---------------------
-
extern std::unique_ptr<RendererBase> g_renderer; ///< Renderer plugin
extern EmuWindow* g_emu_window; ///< Emu window