summaryrefslogtreecommitdiffstats
path: root/client/red_cairo_canvas.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Remove all mentions of "cairo" from the codeAlexander Larsson2010-05-031-96/+0
| | | | | 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.
* Make client canvas and pixmaps handle more formats and simplifyAlexander Larsson2010-04-231-44/+31
| | | | | | | | | | | 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.
* Add emacs modelines to more filesAlexander Larsson2010-04-231-0/+1
|
* Relicense everything from GPL to LGPL 2.1+Alexander Larsson2010-04-131-9/+9
|
* libspice: add off screens supportIzik Eidus2010-04-031-2/+3
| | | | Signed-off-by: Izik Eidus <ieidus@redhat.com>
* Move virtualization of canvas drawing into common/canvas_baseAlexander Larsson2010-03-081-95/+1
| | | | | | | | | | | Instead of having two virtualizations of the canvas we push the virtualization into the canvas code itself. This not only avoids the duplication of this code, it also makes the exposed API for the canvas much smaller (in terms of exported API). It also lets us use the virtualization to implement basic support for operations in canvas_base which is then overridden by each canvas implementation.
* Make canvas Glz decoder integration nicerAlexander Larsson2010-03-081-2/+1
| | | | | We use a dynamic interface similar to e.g. SpiceImageCache instead of passing both function and opaque
* Remove cairo_t from cairo canvasAlexander Larsson2010-02-231-15/+8
|
* Replace custom region implementation with pixman_region32_tAlexander Larsson2010-02-231-3/+12
| | | | | | 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.
* Turn image and palette cache into c style dynamic interfaceAlexander Larsson2010-02-231-3/+2
| | | | | | Instead of passing a bunch of function pointer and an opaque pointer we make a real type and add a vtable pointer to it. This means we can simplify all the canvas constructors, etc.
* Rename symbols that were changed in spice-protocolAlexander Larsson2010-02-041-16/+16
| | | | | | 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
* spice: server: add memslots support.Izik Eidus2009-11-231-2/+2
| | | | Signed-off-by: Izik Eidus <ieidus@redhat.com>
* fresh startYaniv Kamay2009-10-141-0/+201