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;
 };