From 5e1e08b5ebe6546e1f54656bc58e44ec05fbe818 Mon Sep 17 00:00:00 2001 From: Simon Fels Date: Sat, 27 May 2017 18:11:03 +0200 Subject: [PATCH 1/2] Correct incorrect vertical/horizontal to width/height assignment --- src/anbox/graphics/emugl/RenderControl.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/anbox/graphics/emugl/RenderControl.cpp b/src/anbox/graphics/emugl/RenderControl.cpp index b34e28f..26e9559 100644 --- a/src/anbox/graphics/emugl/RenderControl.cpp +++ b/src/anbox/graphics/emugl/RenderControl.cpp @@ -169,10 +169,10 @@ static EGLint rcGetFBParam(EGLint param) { switch (param) { case FB_WIDTH: - ret = static_cast(anbox::graphics::emugl::DisplayInfo::get()->horizontal_resolution()); + ret = static_cast(anbox::graphics::emugl::DisplayInfo::get()->vertical_resolution()); break; case FB_HEIGHT: - ret = static_cast(anbox::graphics::emugl::DisplayInfo::get()->vertical_resolution()); + ret = static_cast(anbox::graphics::emugl::DisplayInfo::get()->horizontal_resolution()); break; case FB_XDPI: ret = 72; // XXX: should be implemented @@ -360,12 +360,12 @@ int rcGetNumDisplays() { int rcGetDisplayWidth(uint32_t display_id) { (void)display_id; - return static_cast(anbox::graphics::emugl::DisplayInfo::get()->horizontal_resolution()); + return static_cast(anbox::graphics::emugl::DisplayInfo::get()->vertical_resolution()); } int rcGetDisplayHeight(uint32_t display_id) { (void)display_id; - return static_cast(anbox::graphics::emugl::DisplayInfo::get()->vertical_resolution()); + return static_cast(anbox::graphics::emugl::DisplayInfo::get()->horizontal_resolution()); } int rcGetDisplayDpiX(uint32_t display_id) { From 977999f721603d1be731132b0ae475db3b82181f Mon Sep 17 00:00:00 2001 From: Simon Fels Date: Sat, 27 May 2017 18:18:03 +0200 Subject: [PATCH 2/2] tests: add case for render control API to guarantee correct width/height --- tests/anbox/graphics/CMakeLists.txt | 1 + tests/anbox/graphics/render_control_tests.cpp | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 tests/anbox/graphics/render_control_tests.cpp diff --git a/tests/anbox/graphics/CMakeLists.txt b/tests/anbox/graphics/CMakeLists.txt index 85b07c2..ce02330 100644 --- a/tests/anbox/graphics/CMakeLists.txt +++ b/tests/anbox/graphics/CMakeLists.txt @@ -1,3 +1,4 @@ ANBOX_ADD_TEST(buffer_queue_tests buffer_queue_tests.cpp) ANBOX_ADD_TEST(buffered_io_stream_tests buffered_io_stream_tests.cpp) ANBOX_ADD_TEST(layer_composer_tests layer_composer_tests.cpp) +ANBOX_ADD_TEST(render_control_tests render_control_tests.cpp) diff --git a/tests/anbox/graphics/render_control_tests.cpp b/tests/anbox/graphics/render_control_tests.cpp new file mode 100644 index 0000000..5a97f04 --- /dev/null +++ b/tests/anbox/graphics/render_control_tests.cpp @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2017 Simon Fels + * + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 3, as published + * by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranties of + * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + * + */ + +#include + +#include "anbox/graphics/emugl/DisplayManager.h" + +extern int rcGetDisplayWidth(uint32_t display_id); +extern int rcGetDisplayHeight(uint32_t display_id); + +TEST(RenderControl, WidthHeightAreCorrectlyAssigned) { + anbox::graphics::emugl::DisplayInfo::get()->set_resolution(640, 480); + ASSERT_EQ(rcGetDisplayWidth(0), 640); + ASSERT_EQ(rcGetDisplayHeight(0), 480); +}