| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
|
|
| |
1) add an option to determine if a bitmap can be sent lossy to the client
2) when required, replacing lossy cache items with their correspending
lossless bitmaps
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
This patch allows people to build the spice-client on any 32bit/64bit
architecture.
by Bryan Stillwell <bryan@bokeoa.com>
|
|
|
|
|
| |
The command line option is renamed from "cairo" to "sw", and
similarly all filenames and types from Cairo to Sw (and similar).
|
|
|
|
| |
We just use pixman_image_t as the "information about image data" structure.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Pixman sometimes sets the ignored high byte to 0xff during alpha
blending. This is correct according to pixman specs, as the high
byte is ignored. However its not what windows expects, and it causes
unnecessary regions with non-zero high byte, causing us to
send rgba data instead of rgb which compresses worse.
So, we detect this and clear the high byte.
|
| |
|
| |
|
|
|
|
|
| |
The win32 driver makes all 32bit surfaces be xRGB now, so we
can remove this old workaround.
|
| |
|
| |
|
|
|
|
| |
This is needed since they always decode to 32bit mode.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
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>
|
| |
|
| |
|
|
|
|
| |
Signed-off-by: Izik Eidus <ieidus@redhat.com>
|
|
|
|
|
| |
When blitting we don't really care about alpha mismatches, we just copy bits
anyway.
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
Signed-off-by: Izik Eidus <ieidus@redhat.com>
|
|
|
|
| |
Also, make str(n)dup handle NULL correctly
|
|
|
|
| |
y2 was not initialized
|
|
|
|
|
| |
DrvAlphaBlend is the only current user of DRAW_ALPHA_BLEND, and its
defined to do nearest (COLORONCOLOR) scaling, not bilinear.
|
|
|
|
|
|
|
| |
We rely on not passing on empty rects to the drawing operations by
checking for empty regions and exiting early. However the checks
were wrongly using pixman_region32_n_rects(region) == 0, whereas
we should be using pixman_region32_not_empty().
|
| |
|
|
|
|
|
|
|
|
|
| |
Every place that does a regular malloc/calloc and aborts on failure
should use spice_malloc/spice_mallo0 instead, which is leaner and cleaner.
Allocations of dynamically sized arrays can use g_malloc_n or g_new etc
which correctly handle multiplication overflow if some of the arguments
are not trusted.
|
| |
|
|
|
|
| |
ALIGN -> SPICE_ALIGN
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This adds a set of virtual methods for low-level operations. A subclass
can choose to implement those and let the default CanvasBase implementations
handle the highlevel stuff.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
It can still be NULL, but we simplify the headers by always including it.
There is no practical performance difference here.
|
|
|
|
|
| |
We use a dynamic interface similar to e.g. SpiceImageCache instead
of passing both function and opaque
|