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