summaryrefslogtreecommitdiffstats
path: root/client/screen_layer.cpp
diff options
context:
space:
mode:
authorChristophe Fergeau <cfergeau@redhat.com>2014-11-21 11:01:17 +0100
committerChristophe Fergeau <cfergeau@redhat.com>2014-12-03 11:31:17 +0100
commit1876971442ef808b5dcdaa5dc12df617f2179cb5 (patch)
tree54cdeb35593396e8319ae079f900a18808fb201a /client/screen_layer.cpp
parentb532ef0866cefe260ad0f08550f7c40d3580d0d7 (diff)
client: Remove client code
The client has been superseded by virt-viewer ( http://virt-manager.org/download/sources/virt-viewer/ ) and is no longer being maintained.
Diffstat (limited to 'client/screen_layer.cpp')
-rw-r--r--client/screen_layer.cpp239
1 files changed, 0 insertions, 239 deletions
diff --git a/client/screen_layer.cpp b/client/screen_layer.cpp
deleted file mode 100644
index 3638509d..00000000
--- a/client/screen_layer.cpp
+++ /dev/null
@@ -1,239 +0,0 @@
-/*
- Copyright (C) 2009 Red Hat, Inc.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, see <http://www.gnu.org/licenses/>.
-*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "common.h"
-#include "screen_layer.h"
-#include "utils.h"
-#include "screen.h"
-#include "application.h"
-#include "debug.h"
-
-class AttachLayerEvent: public SyncEvent {
-public:
- AttachLayerEvent(ScreenLayer& layer, int screen_id)
- : _layer (layer)
- , _screen_id (screen_id)
- {
- }
-
- virtual void do_response(AbstractProcessLoop& events_loop);
-
-private:
- ScreenLayer& _layer;
- int _screen_id;
-};
-
-void AttachLayerEvent::do_response(AbstractProcessLoop& events_loop)
-{
- Application* app = (Application*)(events_loop.get_owner());
- AutoRef<RedScreen> screen(app->get_screen(_screen_id));
- (*screen)->attach_layer(_layer);
-}
-
-class DetachLayerEvent: public SyncEvent {
-public:
- DetachLayerEvent(ScreenLayer& _layer) : _layer (_layer) {}
-
- virtual void do_response(AbstractProcessLoop& events_loop);
-
-private:
- ScreenLayer& _layer;
-};
-
-void DetachLayerEvent::do_response(AbstractProcessLoop& events_loop)
-{
- _layer.screen()->detach_layer(_layer);
-}
-
-ScreenLayer::ScreenLayer(int z_order, bool opaque)
- : _screen (NULL)
- , _z_order (z_order)
- , _opaque (opaque)
- , _using_ogl (false)
-{
- region_init(&_area);
- region_init(&_direct_area);
- region_init(&_composit_area);
-}
-
-ScreenLayer::~ScreenLayer()
-{
- ASSERT(!_screen);
- region_destroy(&_area);
- region_destroy(&_direct_area);
- region_destroy(&_composit_area);
-}
-
-uint64_t ScreenLayer::invalidate_rect(const SpiceRect& r, bool urgent)
-{
- return _screen->invalidate(r, urgent);
-}
-
-uint64_t ScreenLayer::invalidate(const SpiceRect& r, bool urgent)
-{
- if (!_screen) {
- return 0;
- }
- return invalidate_rect(r, urgent);
-}
-
-void ScreenLayer::invalidate(const QRegion& region)
-{
- pixman_box32_t *rects, *end;
- int num_rects;
-
- if (!_screen) {
- return;
- }
-
- rects = pixman_region32_rectangles((pixman_region32_t *)&region, &num_rects);
- end = rects + num_rects;
-
- while (rects != end) {
- SpiceRect r;
-
- r.left = rects->x1;
- r.top = rects->y1;
- r.right = rects->x2;
- r.bottom = rects->y2;
- rects++;
-
- invalidate_rect(r, false);
- }
-}
-
-void ScreenLayer::invalidate()
-{
- invalidate(_area);
-}
-
-void ScreenLayer::notify_changed()
-{
- if (_screen) {
- _screen->on_layer_changed(*this);
- }
-}
-
-void ScreenLayer::set_area(const QRegion& area)
-{
- Lock lock(_area_lock);
- invalidate();
- region_destroy(&_area);
- region_clone(&_area, &area);
- invalidate();
- notify_changed();
-}
-
-void ScreenLayer::clear_area()
-{
- Lock lock(_area_lock);
- invalidate();
- region_clear(&_area);
- notify_changed();
-}
-
-void ScreenLayer::set_rect_area(const SpiceRect& r)
-{
- Lock lock(_area_lock);
- invalidate();
- region_clear(&_area);
- region_add(&_area, &r);
- invalidate();
- notify_changed();
-}
-
-void ScreenLayer::offset_area(int dx, int dy)
-{
- Lock lock(_area_lock);
- invalidate();
- region_offset(&_area, dx, dy);
- invalidate();
- notify_changed();
-}
-
-void ScreenLayer::add_rect_area(const SpiceRect& r)
-{
- Lock lock(_area_lock);
- region_add(&_area, &r);
- notify_changed();
-}
-
-void ScreenLayer::remove_rect_area(const SpiceRect& r)
-{
- Lock lock(_area_lock);
- invalidate();
- region_remove(&_area, &r);
- notify_changed();
-}
-
-void ScreenLayer::begin_update(QRegion& direct_rgn, QRegion& composit_rgn)
-{
- Lock lock(_area_lock);
- region_destroy(&_direct_area);
- region_clone(&_direct_area, &_area);
- region_and(&_direct_area, &direct_rgn);
-
- region_destroy(&_composit_area);
- region_clone(&_composit_area, &_area);
- region_and(&_composit_area, &composit_rgn);
-
- region_exclude(&direct_rgn, &_direct_area);
- if (_opaque) {
- region_exclude(&composit_rgn, &_composit_area);
- } else {
- region_or(&composit_rgn, &_direct_area);
- region_or(&_composit_area, &_direct_area);
- region_clear(&_direct_area);
- }
-}
-
-bool ScreenLayer::contains_point(int x, int y)
-{
- Lock lock(_area_lock);
- return !!region_contains_point(&_area, x, y);
-}
-
-void ScreenLayer::attach_to_screen(Application& application, int screen_id)
-{
- if (_screen) {
- return;
- }
- AutoRef<AttachLayerEvent> event(new AttachLayerEvent(*this, screen_id));
- application.push_event(*event);
- (*event)->wait();
- if (!(*event)->success()) {
- THROW("attach failed");
- }
- ASSERT(_screen);
-}
-
-void ScreenLayer::detach_from_screen(Application& application)
-{
- if (!_screen) {
- return;
- }
- AutoRef<DetachLayerEvent> event(new DetachLayerEvent(*this));
- application.push_event(*event);
- (*event)->wait();
- if (!(*event)->success()) {
- THROW("detach failed");
- }
- ASSERT(!_screen);
-}