// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef UI_OZONE_PLATFORM_CACA_CACA_CONNECTION_H_
#define UI_OZONE_PLATFORM_CACA_CACA_CONNECTION_H_
#include <caca.h>
#include "base/macros.h"
#include "ui/gfx/geometry/size.h"
namespace ui {
// Basic initialization of Libcaca. This needs to be shared between SFO and EFO
// since both need the |display_| to draw and process events respectively.
// Note, |canvas_| needs to be here since it is needed for creating a
// |display_|.
class CacaConnection {
public:
CacaConnection();
~CacaConnection();
void Initialize();
// This is the Caca canvas size.
gfx::Size physical_size() const { return physical_size_; }
gfx::Size bitmap_size() const { return bitmap_size_; }
caca_display_t* display() const { return display_; }
private:
caca_canvas_t* canvas_;
caca_display_t* display_;
// Size of the console in characters. This can be changed by setting
// CACA_GEOMETRY environment variable.
gfx::Size physical_size_;
// Size of the backing buffer we draw into. Size in pixels.
gfx::Size bitmap_size_;
DISALLOW_COPY_AND_ASSIGN(CacaConnection);
};
} // namespace ui
#endif // UI_OZONE_PLATFORM_CACA_CACA_CONNECTION_H_