summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Server: Use the right image format when updating from a surfaceAlexander Larsson2010-04-231-22/+31
|
* Make each surface its own depth/formatAlexander Larsson2010-04-2310-341/+307
| | | | | | | | Surface creation now specifies the exact format, not only the bit depth of each surface which is used for rendering. Additionally we now actually store the surfaces in that format, instead of converting everything to 32bpp when drawing or e.g. handling palettes.
* Client: Support pixmap format conversion in copy_pixelsAlexander Larsson2010-04-2311-249/+179
| | | | | | | | | | | | | | | | | | | | | | 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.
* X11 client: Add helper for XImage constructionAlexander Larsson2010-04-232-4/+47
|
* Add utility functions to create XShm imagesAlexander Larsson2010-04-232-0/+83
|
* 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.
* Add helper to compare RedDrawable::Formats for copy compabibleAlexander Larsson2010-04-231-0/+4
| | | | | Being copy compatible means the format are identical except that some bits in the source may be ignored in the destination.
* Add RedDrawable::Format get_format()Alexander Larsson2010-04-234-0/+8
| | | | | This is useful because we can e.g. create pixmaps in the same format as a window.
* Add XPlatform::get_screen_format for X11Alexander Larsson2010-04-232-0/+30
|
* Move RedPixmap::Format to RedDrawable::FormatAlexander Larsson2010-04-239-65/+66
| | | | | | | | We need to know the format for other drawables too (like for instance the native format of a window), so we're pushing this down. This changes a bunch of references to be RedDrawable::, but not all. The the old RedPixmap:: references still work, but will be phased out.
* Make client canvas and pixmaps handle more formats and simplifyAlexander Larsson2010-04-2330-249/+296
| | | | | | | | | | | 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.
* common: Add lookaside storage for pixman image formatAlexander Larsson2010-04-232-1/+38
| | | | | Ideally we should just read this from the pixman image, but there is no API to do so in stable pixman, so we store it.
* Add pixman utilities for bitmap to pixman_image_t conversionAlexander Larsson2010-04-232-58/+775
|
* Add support for 16bit rop3Alexander Larsson2010-04-231-32/+75
|
* Add emacs modelines to more filesAlexander Larsson2010-04-2311-0/+11
|
* Remove unused method canvas_surf_to_inversAlexander Larsson2010-04-231-67/+17
|
* Make client start if screen is 16bppAlexander Larsson2010-04-231-9/+18
| | | | | | | | | The current glx code is looking for a rgb32 visual and always failing if there is none. This means not even software rendering starts up on e.g. 16bit visuals. This commit makes it pick software fallbacks on 16bit visuals. Long term we need to fix the gl implementation to do 16bpp too.
* Client: Don't die if XIM not availibleAlexander Larsson2010-04-232-27/+40
|
* Detect XShm extension sanelyAlexander Larsson2010-04-231-6/+4
| | | | | | The previous way XShm detection worked failed at least for me, and is not the standard way. We now just use XShmQueryExtension and XShmQueryVersion.
* Detect big endian systemsAlexander Larsson2010-04-231-0/+1
|
* Fix warnings breaking win32 buildAlexander Larsson2010-04-231-3/+3
|
* Merge branch 'master' of ssh://git.freedesktop.org/git/spice/spiceIzik Eidus2010-04-142-19/+46
|\
| * Avoid unncessary buffer management in mjpeg decoder if possibleAlexander Larsson2010-04-142-19/+46
| |
* | spice: server: change update_area commandIzik Eidus2010-04-145-9/+65
|/ | | | | | | | The new command return dirty area to be used by users that want spice to render localy or into some framebuffer (sdl / vnc) Signed-off-by: Izik Eidus <ieidus@redhat.com>
* Relicense everything from GPL to LGPL 2.1+Alexander Larsson2010-04-13206-2121/+2299
|
* Fix A1 handling in RedDrawable combine_pixels.Alexander Larsson2010-04-131-23/+18
| | | | | The previous code was just busted, as apparent on e.g. the cursor in MS Paint.
* Use upstream name for pthreads lib and new freetype versionAlexander Larsson2010-04-121-2/+2
|
* Fixed vs2008 warningAlexander Larsson2010-04-121-1/+1
|
* Fix win32 build with pixman 0.18.0Alexander Larsson2010-04-122-2/+2
|
* Use fast DCT method for better jpeg compression performanceAlexander Larsson2010-04-121-0/+1
|
* spice server: fix validate_chunkIzik Eidus2010-04-121-0/+1
| | | | Signed-off-by: Izik Eidus <ieidus@redhat.com>
* fix 16bpp support on cairo_canvasIzik Eidus2010-04-121-3/+30
| | | | Signed-off-by: Izik Eidus <ieidus@redhat.com>
* Always tread depth 24 (i.e. non alpha) as depth 32 when blittingAlexander Larsson2010-04-121-8/+22
| | | | | When blitting we don't really care about alpha mismatches, we just copy bits anyway.
* take the right lock when freeing glz stuff of surfacesIzik Eidus2010-04-091-2/+2
| | | | | | this was noticed by Yonit. Signed-off-by: Izik Eidus <ieidus@redhat.com>
* Split out the memslot stuff from red_worker.c to its own filesAlexander Larsson2010-04-094-289/+405
| | | | | This is required so that we can have code in other files that does address validation.
* server: fix race condition in lz global dictionary, in its image segments listYonit Halperin2010-04-091-21/+34
|
* spice: win32 client: fix gdi lockingIzik Eidus2010-04-097-60/+125
| | | | | | | | | | | While the fix could have been more effective, it seems like this patch stream better with the coding logic that was there..., maybe later we will want to change the locking into more effective way. (There is just the primary surface to protect in reiality) Signed-off-by: Izik Eidus <ieidus@redhat.com>
* Remove leftover AutoVStreamInit classAlexander Larsson2010-04-081-10/+0
|
* Initialize _kill_mark so we don't get spurious valgrind warningsAlexander Larsson2010-04-0810-389/+358
|
* Free the jpeg decoder with the streamAlexander Larsson2010-04-081-0/+1
|
* Use libjpeg to decode mjpegs, not ffmpegAlexander Larsson2010-04-087-163/+367
| | | | | | | | | | | | | | | | | | This is pretty straightforward, although there are two weird issues. The current encoder has two bugs in the yuv conversion. First of all it switches red and blue, due to something of an endianness issue. We keep this behavior by switching red and blue. Maybe we want to change this in the new protocol version since switching this may cause jpeg compression to be worse. Secondly, the old coder/decoder did rgb to/from yuv420 wrongly for jpeg, not using the "full scale" version of Y that is used in jpeg, but the other one where y goes from 16 to 235. (See jpeg/jfif reference on http://en.wikipedia.org/wiki/YCbCr for details.) The new decoder uses the full range in order to get better quality, which means old encoders will show slightly darker images. This completely removes all ffmpeg usage in the client
* Update project file to visual studio 2008Alexander Larsson2010-04-082-9/+8
|
* spice server: fix not sent depth size for surfacesIzik Eidus2010-04-081-0/+1
| | | | Signed-off-by: Izik Eidus <ieidus@redhat.com>
* Remove non-used lookup3.[ch]Alexander Larsson2010-04-073-798/+0
|
* server configuration: make network redirection support optionalYonit Halperin2010-04-063-7/+33
| | | | | By default it is disabled. To enable: configure --enable-tunnel. When active, requires libslirp.
* client: handling SPICE_MSG_MAIN_MIGRATE_SWITCH_HOSTYonit Halperin2010-04-064-4/+98
| | | | disconnecting from the current host and connecting to the target host.
* client: fix unsafe access to an event memberYonit Halperin2010-04-061-4/+1
|
* spice server: try to be less brutal when changing res or when flushing the treeIzik Eidus2010-04-061-0/+5
| | | | | | | | | | | | The idea is that we can try to defer some stuff to be later send in the pipe if the pipe is not fulled yet, moreover we will then walk on the pipe using: red_clear_surface_drawables_from_pipe() and will try to remove the uneeded objects of this surface Still some room to improvment but later... Signed-off-by: Izik Eidus <ieidus@redhat.com>
* spice server: remove surface_id and surfaces_dest[3] from guest memIzik Eidus2010-04-061-74/+68
| | | | | | | | | Validate the surface_ids just once and keep them in safe memory area Make things simpler Signed-off-by: Izik Eidus <ieidus@redhat.com>
* spice: common: gdi_canvas fix gdi objects leakIzik Eidus2010-04-051-0/+1
| | | | | | | | | | | BitmapMask was used by the draw_text function as well therefore we need to mark from_surface = 0 if we want it to release the boject... (Was evil, took me few hours to understand from where the leak come...) Signed-off-by: Izik Eidus <ieidus@redhat.com>