| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When scaling part of an image we need to specify the source
coordinates in transformed coordinates. For large magnifications this
means we will get pretty large values.
Now, if e.g. src_x * transform is larger than 32765, then the
coordinate ends up outside the pixman 16bit image size, so the
rendering will not work.
The fix is to make the src_x/y offset part of the transformation.
This means its automatically transformed by the correct scaling, and
the coordinates passed into pixman are not (typically) over 16bit.
|
|
|
|
| |
This reverts commit e13be77f33609cb3fdae354ce1f2686ae865f9e0.
|
| |
|
| |
|
|
|
|
|
|
|
| |
pipe if it depends on surfaces.
This will prevent: 1) rendering problems (commands sent to the client in the wrong order)
2) sending commands for surfaces that haven't been created yet on the client side.
|
|
|
|
|
|
|
|
|
| |
This used to be a callback for the vdi_port "data ready" interrupt,
which did indicate either data ready to read or data ready to write, but
this is no longer the case now that virtio-serial is used.
This seemingly simple fix prevents a race that needs to be fixed with
another patch, see freedesktop bz #29903
|
| |
|
|
|
|
|
|
|
|
|
| |
not empty
The vdi_port_write_timer_started flag was not being reset, which prevented
another vdi_port_write_timer_start from actually starting the timer. Fix
is to change order of lines. This happens in the callback of the timer, so
no chance of double timer set.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
parameter
A side effect of the previous red_current_flush, which flushed all the surfaces, and was called on a new display channel connection, was
that red_handle_drawable_surfaces_client_synced sent the most updated surfaces images when needed. However, now, it should
explicitly call red_current_flush.
Moreover, since red_current_flush was called on a new display channel connection only if there was a primary surface,
if the connection of the display channel occurred at the moment of no primary surface, red_handle_drawable_surfaces_client_synced was buggy.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When scaling part of an image we need to specify the source coordinates
in transformed coordinates. For large magnifications this means
we will get pretty large values.
Now, if e.g. src_x * transform is larger than 32765, then the coordinate
ends up outside the pixman 16bit image size, so the rendering
will not work.
In order to work around this we generate a "sub-image" of the pixman
image such that the src_x/y values we have to specify are zero (or near
zero).
|
|
|
|
|
|
| |
Update #define in server/spice.h in preparation for the 0.6.0 release.
We also got some new functions, thus we have to increate the shared
lib minor number for spice-server.
|
|
|
|
|
|
| |
A bunch of configuration functions where never ported forward from
rhel-6 to upstream. Add them so we can add qemu config options for
these settings.
|
|\ |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
destroy_surface_wait
Waiting till all the pipe items that are dependent on the surface will be sent.
This was probably the cause for freedesktop bug #29750.
|
| |
| |
| |
| | |
red_clear_surface_drawables_from_pipe
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When scaling in pixman you give the source coordinates in transformed
space rather than in the source coordinates. This is a bit problematic
when both source and destination coordinates are at integer positions, but
the scaling factor is not an exact 16.16 fixed point value. We used
to calculate the transformed source based on the floating point
transformation, which gave the wrong answer sometimes. Now we do the
calculations based on the fixed point transform that we give pixman.
However, even with this patch I can still sometimes see issues related
to this, although they are less bad.
|
| |
| |
| |
| |
| |
| | |
The actual bitmap data was added to the main marshaller rather than
the submarshaller that pointed to the SpiceImage part. This made us
send too short messages failing demarshalling in the client.
|
|/
|
|
| |
We're currently sending this to the network based on random memory.
|
|
|
|
|
| |
BufDescriptor isn't used at all.
Two AddBufInfo fields (slot_id and group_id) are not used any more.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
All lz surfaces are not 4 bytes per pixel, calculate the right stride
based on the pixman format.
|
|
|
|
|
|
| |
When the we reset qxl, we destroy all srufaces. Since surfaces and glz
drawables are no longer dependent, we need to call red_display_clear_glz_drawables explicitly
in order to clear all our drawables references in the server.
|
| |
|
|
|
|
|
| |
XShmAttach can fail asynchronously, so we need to check the
errors in the x error handler during the XSync.
|
| |
|
|
|
|
| |
This is copied from how Gtk+ detects Xshm failures.
|
|
|
|
| |
each surface.
|
|
|
|
| |
Fixes freedesktop bug #28568
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Patch adds a "from __future__" import that doesn't affect newer python's but
allows python 2.5.4 to run the code (tested under scratchbox, n900 build environment)
|
|
|
|
| |
the first
|