Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(506)

Unified Diff: ui/ozone/platform/caca/caca_connection.cc

Issue 387993002: ozone: caca: Preparatory work for resize / multiple windows (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/ozone/platform/caca/caca_connection.h ('k') | ui/ozone/platform/caca/scoped_caca_types.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/ozone/platform/caca/caca_connection.cc
diff --git a/ui/ozone/platform/caca/caca_connection.cc b/ui/ozone/platform/caca/caca_connection.cc
index 49b51a45c8674f77adcb16250d8742c38f26cdda..2086257a85dbbcda548fc03e066d1c8c0973f1a8 100644
--- a/ui/ozone/platform/caca/caca_connection.cc
+++ b/ui/ozone/platform/caca/caca_connection.cc
@@ -8,33 +8,50 @@
namespace ui {
-// TODO(dnicoara) As an optimization, |bitmap_size_| should be scaled based on
-// |physical_size_| and font size.
-CacaConnection::CacaConnection()
- : canvas_(NULL),
- display_(NULL),
- physical_size_(160, 48),
- bitmap_size_(800, 600) {}
+namespace {
+
+// Size of initial cnavas (in characters).
+const int kDefaultCanvasWidth = 160;
+const int kDefaultCanvasHeight = 48;
+
+} // namespace
+
+CacaConnection::CacaConnection() {
+}
CacaConnection::~CacaConnection() {
- if (display_) {
- caca_free_display(display_);
- caca_free_canvas(canvas_);
- }
}
-void CacaConnection::Initialize() {
+bool CacaConnection::Initialize() {
if (display_)
- return;
+ return true;
+
+ canvas_.reset(caca_create_canvas(kDefaultCanvasWidth, kDefaultCanvasHeight));
+ if (!canvas_) {
+ PLOG(ERROR) << "failed to create libcaca canvas";
+ return false;
+ }
+
+ display_.reset(caca_create_display(canvas_.get()));
+ if (!display_) {
+ PLOG(ERROR) << "failed to initialize libcaca display";
+ return false;
+ }
- canvas_ = caca_create_canvas(physical_size_.width(), physical_size_.height());
- display_ = caca_create_display(canvas_);
+ caca_set_cursor(display_.get(), 1);
+ caca_set_display_title(display_.get(), "Ozone Content Shell");
+
+ UpdateDisplaySize();
+
+ return true;
+}
- physical_size_.SetSize(caca_get_canvas_width(canvas_),
- caca_get_canvas_height(canvas_));
+void CacaConnection::UpdateDisplaySize() {
+ physical_size_.SetSize(caca_get_canvas_width(canvas_.get()),
+ caca_get_canvas_height(canvas_.get()));
- caca_set_cursor(display_, 1);
- caca_set_display_title(display_, "Ozone Content Shell");
+ bitmap_size_.SetSize(caca_get_display_width(display_.get()),
+ caca_get_display_height(display_.get()));
}
} // namespace ui
« no previous file with comments | « ui/ozone/platform/caca/caca_connection.h ('k') | ui/ozone/platform/caca/scoped_caca_types.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698