summaryrefslogtreecommitdiff
path: root/client/display_channel.cpp
AgeCommit message (Collapse)AuthorFilesLines
2014-12-03client: Remove client codeChristophe Fergeau1-1901/+0
The client has been superseded by virt-viewer ( http://virt-manager.org/download/sources/virt-viewer/ ) and is no longer being maintained.
2013-09-30spicec: add sw canvas diff checkMarc-André Lureau1-24/+64
Setting CHECKDIFF=1 environment variable will compare the rendering of the selected canvas with a software canvas. This is useful for debugging some rendering issues, however it is far from being perfect, since it's not able to tell whether one or the other is actually faulty. It's a strong indication though of which operations are incorrect. Ideally, all operations should be checked, however, a few of them are disabled by default because they fail all the time, and it looks like pixman is not very accurate for blending/compositing (at least visually, it seems gl has better rendering)
2013-09-30spicec: refresh the display after display resizeMarc-André Lureau1-0/+4
2012-09-06client: Advertise A8_SURFACE capabilitySøren Sandmann Pedersen1-0/+1
2012-08-24Add support for Composite command to the clientSøren Sandmann Pedersen1-0/+13
All the real work is being done in spice-common, so this patch is just hooking up the virtual calls and adding the SPICE_DISPLAY_CAP_COMPOSITE capability.
2012-05-03Update the spice-common submoduleYonit Halperin1-2/+4
spice-common changes: STREAM_DATA_SIZED message was added in order to support video streams with frames that their size is different from the initial size that the stream was created with. This patch also includes server and client adjustments to the new SpiceMsgDisplayStreamData.
2012-03-25Use the spice-common submoduleMarc-André Lureau1-1/+0
This patch will replace the common/ directory with the spice-common project. It is for now a simple project subdirectory shared with spice-gtk, but the goal is to make it a proper library later on. With this change, the spice-server build is broken. The following commits fix the build, and have been seperated to ease the review. v2 - moves all the generated marshallers to spice-common library - don't attempt to fix windows VS build, which should somehow be splitted with spice-common (or built from tarball only to avoid generation tools/libs deps) v3 - uses libspice-common-client - fix a mutex.h inclusion reported by Alon
2012-01-13Remove trailing whitespace from end of linesDaniel P. Berrange1-1/+1
2012-01-13Remove trailing blank linesDaniel P. Berrange1-1/+0
Remove any blank lines at the end of all source files
2011-11-02client: display channel - destroy all surfaces on disconnectYonit Halperin1-6/+12
Fix not destroying surfaces and other data (e.g., streams) upon disconnection. (cherry picked from commit 010b22cd771b7e81363b4b6521e4265b093fcd25 branch 0.8)
2011-11-02client: display channel migrationYonit Halperin1-13/+144
(cherry picked from commit cad3c585444f940f60c12789f4174f2d32bec70f branch 0.8) Conflicts: client/display_channel.cpp
2011-11-02client: rewrite surfaces cacheYonit Halperin1-97/+52
use std::map instead of a specific template (CHash). There is no need for special template. Moreover, using std::map will allow easy iteration over the surfaces. (cherry picked from commit fcb3b4ce5231218bcf949da4270bd85a2cfb3535 branch 0.8) Conflicts: client/display_channel.cpp
2011-09-19client: don't crash when booting a Xinerama setupChristophe Fergeau1-4/+6
In a Xinerama setup, when X starts up and creates one of the secondary screens, first a non-primary surface is created on the secondary screen, and then the primary surface for this screen is created. This causes a crash when the guest uses Xinerama and the client is attached to the VM before X starts (ie while the guest is booting). This happens because DisplayChannel::create_canvas (which is called when creating a non-primary surface) assumes a screen has already been set for the DisplayChannel while this only happens upon primary surface creation. However, it uses the screen for non important stuff, so we can test if screen() is non NULL before using it. This is what is done in other parts of this file. Fixes rhbz #732423
2011-05-19client: fix flipped video in Linux guest on windows client, RHBZ #667689Yonit Halperin1-3/+5
Video streams from Linux guests are oriented top-down, where gdi_canvas_put_image always received display context for down-top oriented bitmap. I fixed create_bitmap to consider the stream orientation.
2011-05-03s/USE_OGL/USE_OPENGLChristophe Fergeau1-20/+20
This is more explicit about what it does, and not much longer
2011-05-03add #include <config.h> to all source filesChristophe Fergeau1-0/+3
When using config.h, it must be the very first include in all source files since it contains #define that may change the compilation process (eg libc structure layout changes when it's used to enable large file support on 32 bit x86 archs). This commit adds it at the beginning of all .c and .cpp files
2011-03-23opengl: fix compilationChristophe Fergeau1-3/+0
When OpenGL is enabled, build fails in DisplayChannel::create_surface because Canvas *canvas is declared twice. Remove the first declaration to fix compilation.
2011-01-25client/display_channel: gcc 4.6.0 unused fixesAlon Levy1-6/+12
2010-12-08mingw32 build: fix signed/unsigned warnings as errorsAlon Levy1-1/+1
2010-11-25spicec: Don't show a white screen if guest resolution does not fit fullscreenHans de Goede1-1/+1
Currently when going / starting fullscreen if the guest resolution for one of the monitors is higher then that monitor on the client can handle, we show a white screen. Leaving the user stuck (unless they know the fullscreen key switch combi) with a white screen when starting the client fullscreen from the XPI. This patch changes the client to fall back to windowed mode in this case instead.
2010-07-20Swap red and blue when decoding 0.4 mjpeg streamsAlexander Larsson1-1/+1
There was an error in how this was encoded in 0.4, which we need to handle. There is still some issues with the old streams as the luminocity handling in 0.4 was not correct.
2010-07-20Don't send padding over the network with video dataAlexander Larsson1-5/+4
2010-06-30Update client and protocol to support the new SpiceClipRectsAlexander Larsson1-3/+2
2010-06-29detaching the screen when the primary surface is destoryed and closing the ↵Yonit Halperin1-10/+15
window if the primary surface is not recreated (the monitor has been detached).
2010-06-24Remove support for clip by pathAlexander Larsson1-1/+1
This is not supported currently anyway and was not generated before.
2010-06-23Fix screen resolution changes on old serversAlexander Larsson1-5/+5
* Correctly check for existing canvas 0 * Don't try to unlock the screen size if there is no active screen
2010-06-22Implement display_mode message needed for backwards compatAlexander Larsson1-0/+12
2010-06-22Convert client to use indirect calls for message marshallingAlexander Larsson1-2/+1
This is required to support multiple versions
2010-06-18Switch client to use generated marshallersAlexander Larsson1-6/+8
2010-06-18Client: Use the autogenerated demarshallersAlexander Larsson1-86/+54
When a message has been read from the network we now pass it into the generated demarshaller for the channel. The demarshaller converts the network data to in-memory structures that is passed on to the spice internals. Additionally it also: * Converts endianness * Validates sizes of message and any pointers in it * Localizes offsets (converts them to pointers) * Checks for zero offsets in messages where they are not supported Some of this was previously done using custom code in the client, this is now removed.
2010-06-09client: Only invalidate on screen if drawing to the primary surfaceAlexander Larsson1-2/+6
2010-05-21Fix some misspelled identifiersAlexander Larsson1-9/+9
severty -> severity SpiceResorceID -> SpiceResourceID SpiceResorceList -> SpiceResourceList resorces -> resources ped_size -> pad_size postition -> position
2010-05-21Fix spelling errors in comments and stringsAlexander Larsson1-2/+2
2010-05-03Remove all mentions of "cairo" from the codeAlexander Larsson1-5/+5
The command line option is renamed from "cairo" to "sw", and similarly all filenames and types from Cairo to Sw (and similar).
2010-04-23Make each surface its own depth/formatAlexander Larsson1-20/+22
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.
2010-04-23Make client canvas and pixmaps handle more formats and simplifyAlexander Larsson1-15/+14
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.
2010-04-23Add emacs modelines to more filesAlexander Larsson1-0/+1
2010-04-13Relicense everything from GPL to LGPL 2.1+Alexander Larsson1-9/+9
2010-04-08Remove leftover AutoVStreamInit classAlexander Larsson1-10/+0
2010-04-08Initialize _kill_mark so we don't get spurious valgrind warningsAlexander Larsson1-0/+1
2010-04-08Use libjpeg to decode mjpegs, not ffmpegAlexander Larsson1-151/+24
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
2010-04-03libspice: add off screens supportIzik Eidus1-87/+255
Signed-off-by: Izik Eidus <ieidus@redhat.com>
2010-04-03spice server: surface create/destroy protocol supportIzik Eidus1-42/+102
Now we can send commands from the server to the client to destroy surfaces (right now just the primary surface) Needed for offscreens support) Another patch`s on the way. Signed-off-by: Izik Eidus <ieidus@redhat.com>
2010-03-24spice: client: fix handling of top down images in video streamsAlon Levy1-9/+5
Top down streams arrive from x11-qxl driver.
2010-03-10Define GL_GLEXT_PROTOTYPES in CFLAGS not in random places in the sourceAlexander Larsson1-2/+0
2010-02-04Rename symbols that were changed in spice-protocolAlexander Larsson1-125/+125
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
2009-12-28client: move visibility change logic from screen to appYaniv Kamay1-17/+1
2009-12-28client: improve screen resizingYaniv Kamay1-2/+29
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.
2009-11-30client: interactive screen layerYaniv Kamay1-4/+208
2009-11-09spice: client: gl: fix glx support.Izik Eidus1-2/+14
Just move around touch_context and untouch_context to be at the right places. Signed-off-by: Izik Eidus <ieidus@redhat.com>