From 65815b6d3a67cf07a01f28fb9ecb7bf05049754b Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Tue, 23 Oct 2018 10:54:02 -0700 Subject: ui: Add constness to Draw- functions. These functions take the given GRSurface instances as inputs, which shouldn't be altered. Test: mmma -j bootable/recovery Test: Run recovery_unit_test. Test: `Run graphics test` on marlin. Change-Id: I51bf408e85faae2b497d4f148ab1dec22dd16c93 --- screen_ui.cpp | 4 ++-- screen_ui.h | 9 +++++---- tests/unit/screen_ui_test.cpp | 18 +++++++++--------- vr_ui.cpp | 4 ++-- vr_ui.h | 5 +++-- 5 files changed, 21 insertions(+), 19 deletions(-) diff --git a/screen_ui.cpp b/screen_ui.cpp index 181d58ecf..9162bcb58 100644 --- a/screen_ui.cpp +++ b/screen_ui.cpp @@ -600,7 +600,7 @@ int ScreenRecoveryUI::ScreenHeight() const { return gr_fb_height(); } -void ScreenRecoveryUI::DrawSurface(GRSurface* surface, int sx, int sy, int w, int h, int dx, +void ScreenRecoveryUI::DrawSurface(const GRSurface* surface, int sx, int sy, int w, int h, int dx, int dy) const { gr_blit(surface, sx, sy, w, h, dx, dy); } @@ -618,7 +618,7 @@ void ScreenRecoveryUI::DrawFill(int x, int y, int w, int h) const { gr_fill(x, y, w, h); } -void ScreenRecoveryUI::DrawTextIcon(int x, int y, GRSurface* surface) const { +void ScreenRecoveryUI::DrawTextIcon(int x, int y, const GRSurface* surface) const { gr_texticon(x, y, surface); } diff --git a/screen_ui.h b/screen_ui.h index 861b3605a..7602b052a 100644 --- a/screen_ui.h +++ b/screen_ui.h @@ -60,14 +60,14 @@ class DrawInterface { virtual int DrawTextLine(int x, int y, const std::string& line, bool bold) const = 0; // Draws surface portion (sx, sy, w, h) at screen location (dx, dy). - virtual void DrawSurface(GRSurface* surface, int sx, int sy, int w, int h, int dx, + virtual void DrawSurface(const GRSurface* surface, int sx, int sy, int w, int h, int dx, int dy) const = 0; // Draws rectangle at (x, y) - (x + w, y + h). virtual void DrawFill(int x, int y, int w, int h) const = 0; // Draws given surface (surface->pixel_bytes = 1) as text at (x, y). - virtual void DrawTextIcon(int x, int y, GRSurface* surface) const = 0; + virtual void DrawTextIcon(int x, int y, const GRSurface* surface) const = 0; // Draws multiple text lines. Returns the offset it should be moving along Y-axis. virtual int DrawTextLines(int x, int y, const std::vector& lines) const = 0; @@ -299,9 +299,10 @@ class ScreenRecoveryUI : public RecoveryUI, public DrawInterface { void SetColor(UIElement e) const override; void DrawHighlightBar(int x, int y, int width, int height) const override; int DrawHorizontalRule(int y) const override; - void DrawSurface(GRSurface* surface, int sx, int sy, int w, int h, int dx, int dy) const override; + void DrawSurface(const GRSurface* surface, int sx, int sy, int w, int h, int dx, + int dy) const override; void DrawFill(int x, int y, int w, int h) const override; - void DrawTextIcon(int x, int y, GRSurface* surface) const override; + void DrawTextIcon(int x, int y, const GRSurface* surface) const override; int DrawTextLine(int x, int y, const std::string& line, bool bold) const override; int DrawTextLines(int x, int y, const std::vector& lines) const override; int DrawWrappedTextLines(int x, int y, const std::vector& lines) const override; diff --git a/tests/unit/screen_ui_test.cpp b/tests/unit/screen_ui_test.cpp index ec269503e..130a6c161 100644 --- a/tests/unit/screen_ui_test.cpp +++ b/tests/unit/screen_ui_test.cpp @@ -42,26 +42,26 @@ static const std::vector ITEMS{ "item1", "item2", "item3", "item4", class MockDrawFunctions : public DrawInterface { void SetColor(UIElement /* element */) const override {} void DrawHighlightBar(int /* x */, int /* y */, int /* width */, - int /* height */) const override {}; + int /* height */) const override {} int DrawHorizontalRule(int /* y */) const override { return 0; - }; + } int DrawTextLine(int /* x */, int /* y */, const std::string& /* line */, bool /* bold */) const override { return 0; - }; - void DrawSurface(GRSurface* /* surface */, int /* sx */, int /* sy */, int /* w */, int /* h */, - int /* dx */, int /* dy */) const override {}; - void DrawFill(int /* x */, int /* y */, int /* w */, int /* h */) const override {}; - void DrawTextIcon(int /* x */, int /* y */, GRSurface* /* surface */) const override {}; + } + void DrawSurface(const GRSurface* /* surface */, int /* sx */, int /* sy */, int /* w */, + int /* h */, int /* dx */, int /* dy */) const override {} + void DrawFill(int /* x */, int /* y */, int /* w */, int /* h */) const override {} + void DrawTextIcon(int /* x */, int /* y */, const GRSurface* /* surface */) const override {} int DrawTextLines(int /* x */, int /* y */, const std::vector& /* lines */) const override { return 0; - }; + } int DrawWrappedTextLines(int /* x */, int /* y */, const std::vector& /* lines */) const override { return 0; - }; + } }; class ScreenUITest : public testing::Test { diff --git a/vr_ui.cpp b/vr_ui.cpp index a131a27a7..1f0292c30 100644 --- a/vr_ui.cpp +++ b/vr_ui.cpp @@ -34,13 +34,13 @@ int VrRecoveryUI::ScreenHeight() const { return gr_fb_height(); } -void VrRecoveryUI::DrawSurface(GRSurface* surface, int sx, int sy, int w, int h, int dx, +void VrRecoveryUI::DrawSurface(const GRSurface* surface, int sx, int sy, int w, int h, int dx, int dy) const { gr_blit(surface, sx, sy, w, h, dx + stereo_offset_, dy); gr_blit(surface, sx, sy, w, h, dx - stereo_offset_ + ScreenWidth(), dy); } -void VrRecoveryUI::DrawTextIcon(int x, int y, GRSurface* surface) const { +void VrRecoveryUI::DrawTextIcon(int x, int y, const GRSurface* surface) const { gr_texticon(x + stereo_offset_, y, surface); gr_texticon(x - stereo_offset_ + ScreenWidth(), y, surface); } diff --git a/vr_ui.h b/vr_ui.h index 63c0f2465..2e8ac5921 100644 --- a/vr_ui.h +++ b/vr_ui.h @@ -33,11 +33,12 @@ class VrRecoveryUI : public ScreenRecoveryUI { int ScreenWidth() const override; int ScreenHeight() const override; - void DrawSurface(GRSurface* surface, int sx, int sy, int w, int h, int dx, int dy) const override; + void DrawSurface(const GRSurface* surface, int sx, int sy, int w, int h, int dx, + int dy) const override; int DrawHorizontalRule(int y) const override; void DrawHighlightBar(int x, int y, int width, int height) const override; void DrawFill(int x, int y, int w, int h) const override; - void DrawTextIcon(int x, int y, GRSurface* surface) const override; + void DrawTextIcon(int x, int y, const GRSurface* surface) const override; int DrawTextLine(int x, int y, const std::string& line, bool bold) const override; }; -- cgit v1.2.3