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
diff --git a/screen_ui.cpp b/screen_ui.cpp
index 181d58e..9162bcb 100644
--- a/screen_ui.cpp
+++ b/screen_ui.cpp
@@ -600,7 +600,7 @@
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 @@
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 861b360..7602b05 100644
--- a/screen_ui.h
+++ b/screen_ui.h
@@ -60,14 +60,14 @@
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<std::string>& lines) const = 0;
@@ -299,9 +299,10 @@
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<std::string>& lines) const override;
int DrawWrappedTextLines(int x, int y, const std::vector<std::string>& lines) const override;
diff --git a/tests/unit/screen_ui_test.cpp b/tests/unit/screen_ui_test.cpp
index ec26950..130a6c1 100644
--- a/tests/unit/screen_ui_test.cpp
+++ b/tests/unit/screen_ui_test.cpp
@@ -42,26 +42,26 @@
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<std::string>& /* lines */) const override {
return 0;
- };
+ }
int DrawWrappedTextLines(int /* x */, int /* y */,
const std::vector<std::string>& /* lines */) const override {
return 0;
- };
+ }
};
class ScreenUITest : public testing::Test {
diff --git a/vr_ui.cpp b/vr_ui.cpp
index a131a27..1f0292c 100644
--- a/vr_ui.cpp
+++ b/vr_ui.cpp
@@ -34,13 +34,13 @@
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 63c0f24..2e8ac59 100644
--- a/vr_ui.h
+++ b/vr_ui.h
@@ -33,11 +33,12 @@
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;
};