Alexander Larsson
fb935fe73b
Simplify spice_pixman_region32_init_rects with new types
...
Don't manually of SpiceRects to pixman_box32_t now that they are compatible
and SpiceRect is internal.
2012-03-20 15:25:48 +01:00
Alexander Larsson
12a734e336
Make all internal structures not be packed
2012-03-20 15:25:48 +01:00
Alexander Larsson
69c1444add
Move SpiceChunks to mem.h
2012-03-20 15:25:48 +01:00
Alexander Larsson
c471990a9f
Move in spice/draw.h from spice-protocol to common/
2012-03-20 15:25:48 +01:00
Alexander Larsson
199c710a08
codegen: No SPICE_ADDRESS types left, drop @c_ptr
2012-03-20 15:25:47 +01:00
Alexander Larsson
4bcb58cc9f
Properly parse QXLLineAttrs.style
2012-03-20 15:25:47 +01:00
Gerd Hoffmann
e37ce72809
Properly parse QXLImage to the new-world SpiceImage
...
SpiceImage now replaces RedImage and has all image types in it.
All image data are now chunked (and as such not copied when demarshalling).
2012-03-20 15:25:47 +01:00
Alexander Larsson
4b6605fc42
codegen: support @chunk on non-pointer arrays
...
This is similar to @as_ptr, but generates a single chunk of data.
2012-03-20 15:25:47 +01:00
Alexander Larsson
601d1be843
Add support for @chunk
2012-03-20 15:25:47 +01:00
Alexander Larsson
0df81d33f6
marshaller: Make get_nw_offset() handle deep member references
2012-03-20 15:25:47 +01:00
Alexander Larsson
cd9b3dac8b
Add spice_marshaller_add_ref_chunks
2012-03-20 15:25:47 +01:00
Alexander Larsson
8f568a4073
Add spice_chunks_* helpers
2012-03-20 15:25:47 +01:00
Alexander Larsson
09d9a18702
Convert SpicePath.segments to a pointer array
2012-03-20 15:25:47 +01:00
Alexander Larsson
bc8d26bfc0
Handle extra size for switch and array the right way
...
Even for is_extra_size() we should calculate the mem_size for
arrays, its just that the parent type (in this case switch) should
request mem_size if the type is_extra_size.
2012-03-20 15:25:47 +01:00
Alexander Larsson
8c2ff07518
marshaller: Add some docs describing the types of sizes
2012-03-20 15:25:47 +01:00
Alexander Larsson
ad7e75325d
marshaller: Make @nonnull a propagated attribute
...
This cleans up some stuff
2012-03-20 15:25:47 +01:00
Alexander Larsson
71bf95171d
marshaller: Make @c_ptr a propagated attribute
...
This simplifies some code
2012-03-20 15:25:47 +01:00
Alexander Larsson
1d5c7d1d79
marshaller: Add generic way to handle propagating attributes
...
Also switches @ptr_array to use this
2012-03-20 15:25:47 +01:00
Gerd Hoffmann
c5d06102b7
Properly parse and marshall SpiceString
2012-03-20 15:25:46 +01:00
Alexander Larsson
dabdea4fac
Fix build on win32
2012-03-20 15:25:46 +01:00
Alexander Larsson
e3fadaef86
Fix 32bit failure in demarshaller
...
Due to a typo we always read offsets as pointers, never as SPICE_ADDRESS.
2012-03-20 15:25:46 +01:00
Alexander Larsson
f90b89d521
Update for the SpicePath.segments type change
2012-03-20 15:25:46 +01:00
Alexander Larsson
bef8a0cf19
Simplify SpiceLineAttr by removing unsed stuff
...
Also in new protocol don't send style data if not needed.
2012-03-20 15:25:46 +01:00
Alexander Larsson
fcb5eb4629
Automatically marshall SpiceClipRects
2012-03-20 15:25:46 +01:00
Alexander Larsson
53a7560481
Automatically marshall SpicePath
2012-03-20 15:25:46 +01:00
Alexander Larsson
930458ea50
Support @marshall to automatically marshall pointers
2012-03-20 15:25:46 +01:00
Alexander Larsson
e6eb19e752
Store SpicePath segment count rather than size
...
Internally and in the network protocol (for the new version) we
now store the actual number of segments rather than the size of the
full segments array in bytes. This change consists of multiple changes
to handle this:
* Make the qxl parser calculate num_segments
* Make the canvas stroke code handle the new SpicePath layout.
* Fix up is_equal_path in red_worker.c for the new layout
* replace multiple calls to spice_marshall_PathSegment with a single
spice_marshall_Path call
* Make the byte_size() array size handling do the conversion from
network size to number of elements when marshalling/demarshalling.
* Update the current spice protocol to send the segment count rather than
the size
* Update the old spice protocol to use the new byte_size functionallity
to calculate the size sent and the number of elements recieved
2012-03-20 15:25:46 +01:00
Alexander Larsson
93405abac7
Add spice_marshaller_set_uint32
...
With this function you can update an added uint32 after it being added.
To make this possible all the spice_marshaller_add_add_foo functions
now return a pointer that can be used as a reference when later
setting a value.
2012-03-20 15:25:46 +01:00
Alexander Larsson
eaeb65c53e
Update client and protocol to support the new SpiceClipRects
2012-03-20 15:25:46 +01:00
Alexander Larsson
18a11d6be0
demarshaller: Support @c_ptr attributes for pointers
...
A @c_ptr pointer is stored in memory as a real pointer rather than a
SPICE_ADDRESS. This is a temporary thing that will be removed again
when all SPICE_ADDRESSes have been converted to real pointer.
2012-03-20 15:25:46 +01:00
Alexander Larsson
2feb07a7b8
demarshaller: Don't parse @zero members
...
These just write zeros at the right place in the network protocol
typically for old back-compat things. We don't want to read these
back in.
2012-03-20 15:25:46 +01:00
Gerd Hoffmann
51c71e6883
qxl-abi: handle clip rect and path references.
...
red_parse_qxl.c starts to follow QXLPHYSICAL references and build up
data structures. Can zap a bunch of get_virt calls in red_worker.c,
followed by cleanups.
(de-) marshaller needs updates to deal with that. Also I suspect with
the get_virt() calls being gone we can offload more work to generated
marshaller code.
client doesn't build.
2012-03-20 15:25:46 +01:00
Gerd Hoffmann
908c841563
qxl abi: parse QXLCopy + QXLBlend.
...
Also adapt to tyops fix (s/rop_decriptor/rop_descriptor/).
2012-03-20 15:25:46 +01:00
Gerd Hoffmann
6ba331f45e
qxl abi: parse QXLOpaque.
...
Also adapt to tyops fix (s/rop_decriptor/rop_descriptor/).
2012-03-20 15:25:45 +01:00
Gerd Hoffmann
bc1c2837f3
qxl abi: parse QXLFill.
...
Also adapt to tyops fix (s/rop_decriptor/rop_descriptor/).
2012-03-20 15:25:45 +01:00
Alexander Larsson
a45758117b
Fix build error due to member "SpiceMsgEmpty" same name as type
2012-03-20 15:25:45 +01:00
Alexander Larsson
49aeb85dc1
spice.proto: surface_create.format is of type surface_fmt
2012-03-20 15:25:45 +01:00
Alexander Larsson
fb5463fe9b
Use smaller size for enums and flags on the network
...
This makes the protocol more compact. This was mainly done for the commonly
used types. Some seldom used ones are still 32bit for future compatibility.
2012-03-20 15:25:45 +01:00
Alexander Larsson
90193bf160
Remove support for clip by path
...
This is not supported currently anyway and was not generated before.
2012-03-20 15:25:45 +01:00
Alexander Larsson
2e8aecc2a5
spice.proto: No need for @ptr32 as that is now the default
2012-03-20 15:25:45 +01:00
Alexander Larsson
ee597577e1
spice.proto: Don't use @fixedsize for Brush
...
There is no reason to send the maximum size on the network, that is just
a waste of space most of the time.
2012-03-20 15:25:45 +01:00
Alexander Larsson
5b7fb4db45
Don't send zero data item for clips with no data
2012-03-20 15:25:45 +01:00
Alexander Larsson
13d9b32acc
Make pointers 32bit in new protocol format
2012-03-20 15:25:45 +01:00
Alexander Larsson
8b5726ecfa
marshaller: Correctly determine if switches are fixed size
...
Switches are fixed size only if all cases have the same size *and*
it has a default case or all the valid cases are listed.
2012-03-20 15:25:45 +01:00
Alexander Larsson
21c7a6d278
Fix handling of @ptr32 network size
2012-03-20 15:25:45 +01:00
Alexander Larsson
ce0f0032f4
Remove minor markup in unstable protocol as we're resetting minor to 0
2012-03-20 15:25:45 +01:00
Gerd Hoffmann
d217864737
fix use-after-free in spice_marshaller_reset
2012-03-20 15:25:45 +01:00
Alexander Larsson
e9d10ef1d5
Add spice1.proto describing the 0.4 version of the network protocolx
2012-03-20 15:25:44 +01:00
Alexander Larsson
9e8883a1f8
Add support for @virtual markup in spice protocol
...
This means the member is not sent on the network at all.
Instead its initialized to the attribute argument when demarshalled.
This is useful for backwards compatibility support.
2012-03-20 15:25:44 +01:00
Alexander Larsson
7022f4d248
Make internal generated marshaller functions static
2012-03-20 15:25:44 +01:00