summaryrefslogtreecommitdiffstats
path: root/client/screen.cpp
Commit message (Collapse)AuthorAgeFilesLines
* client: Interpret the title control message as utf8 instead of unicode16Hans de Goede2010-10-211-3/+3
| | | | | | | The activex browser plugin is sending unicode16 text, where as the xpi one is sending utf8 text. After discussing this on irc we've decided that utf8 is what we want to use. So the client (this patch), and the activex will be changed to expect resp. send utf8 text as the title.
* spicec: extract RedScreen::update_menu()Arnon Gilboa2010-10-171-2/+7
|
* Make opengl optional, disabled by defaultAlexander Larsson2010-06-211-0/+2
| | | | | | | | | | The OpenGL renderer isn't really useful right now, its not quite up to date, its not really faster than software and it only supports a limited subset of drivers. So, lets disable it for now. Long term opengl rendering of the 2d part of spice is important if we want to combine 2d and 3d rendering (say if spice adds opengl support in the protocol). But until then this is isn't useful for normal use.
* JPEG support: introducing jpeg encoding for spice bitmapsYonit Halperin2010-06-091-1/+1
|
* Remove all mentions of "cairo" from the codeAlexander Larsson2010-05-031-3/+3
| | | | | The command line option is renamed from "cairo" to "sw", and similarly all filenames and types from Cairo to Sw (and similar).
* Client: Support pixmap format conversion in copy_pixelsAlexander Larsson2010-04-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | In order to be able to support 16bit canvases on 32bit screens and 32bit canvases on 16bit screens we need to handle format conversion when drawing RedPixmaps. The way this works now for X11 is that we only have one PIXELS_SOURCE_TYPE for pixmaps, which always has a pixman_image_t for the data, but additionally it has an XImage (shared mem or not) if the screen the pixmap was created for (i.e. an explicit one or the default screen) has the same format as the pixmap. When we draw a pixmap on a drawable we have two variants. If the pixmap has a XImage and it matches the format of the target drawable then we just X(Shm)PutImage it to the drawable. If the formats differ, then we create a temporary XImage and convert into that before drawing it to the screen. Right now this is a bit inefficient, because we always allocate a new temporary image when converting. We want to add some caching here, but at least this lets things work again.
* Create screen composit area in same format as windowAlexander Larsson2010-04-231-2/+2
| | | | | This way we don't have to convert when drawing to it, or drawing it to the dc.
* Make client canvas and pixmaps handle more formats and simplifyAlexander Larsson2010-04-231-1/+1
| | | | | | | | | | | We now support 16bit format pixmaps as well as the old ones. Including both 555 and 565 modes. We drop the palette argument for pixmap construction as it was only used for black/white anyway. Canvas creation is simplified so that there is no separate set_mode state. Canvases are already created in the right mode and never change.
* Relicense everything from GPL to LGPL 2.1+Alexander Larsson2010-04-131-9/+9
|
* Replace custom region implementation with pixman_region32_tAlexander Larsson2010-02-231-9/+41
| | | | | | pixman_region32_t is an efficient well tested region implementation (its the one used in X) that we already depend on via pixman and use in some places. No need to have a custom region implementation.
* Rename symbols that were changed in spice-protocolAlexander Larsson2010-02-041-12/+12
| | | | | | This is an automatic change using: $ find -name "*.[ch]" | xargs ../spice-protocol/rename-identifiers.sh ../spice-protocol/renames $ find -name "*.cpp" | xargs ../spice-protocol/rename-identifiers.sh ../spice-protocol/renames
* client: improve screen resizingYaniv Kamay2009-12-281-2/+15
| | | | | | | | | | | Screen now have to modes locked and unlocked. In unlocked mode, the application can change screen size and so reduce resolution changing. The application can also choose to change window size while not in full screen mode. In locked mode the application must ewtain locker screen size setting.
* client: restore mouse capture state after screen resizingYaniv Kamay2009-12-281-1/+7
|
* client: KeyHandler now receive unicode char event in addition to RedKey eventsYaniv Kamay2009-11-301-0/+5
|
* client: interactive screen layerYaniv Kamay2009-11-301-107/+195
|
* spice client: sticky Alt activation when holding an Alt key: bug #505912.Yonit Halperin2009-11-151-6/+19
| | | | | | | | | | | Additional changes that were required for the feature: 1) focusing on the pointed window in full screen mode 2) In X11 - handling events that occur during keyboard ungrabbing 3) In X11 - handling Leave/Enter Notify events that occur during keyboard grabbing/ungrabbing 4) In X11 - fix for focus events that are handled in the wrong order (happens when focus events occur during grabbing the keyboard) 5) In X11 - ignoring key release events during key holding 6) In Windows - synchronizing keyboard release events that occured during a modal loop
* spice client: remove timer interface from platform - use Application (via ↵Yonit Halperin2009-11-091-14/+6
| | | | ProcessLoop interface).
* spice client: Transfer all channels run loop from EventsLoop class to ↵Yonit Halperin2009-11-091-1/+1
| | | | ProcessLoop class
* spice client: creating a general process loop.Yonit Halperin2009-11-091-2/+3
| | | | | | | | | | | The process loop is responsible for: 1) waiting for events 2) timers 3) events queue for actions that should be performed in the context of the thread and are pushed from other threads. The benefits: 1) remove duplicity: till now, there was one implementaion of events loop for the channels and another one for the main thread. 2) timers can be executed on each thread and not only on the main thread. 3) events can be pushed to each thread and not only to the main thread. In this commit, only the main thread was modified to use the new process loop.
* fresh startYaniv Kamay2009-10-141-0/+777