History log of /haiku/src/kits/interface/PicturePlayer.cpp
Revision Date Author Comments
# 00a1f249 07-Apr-2022 Máximo Castañeda <antiswen@yahoo.es>

PicturePlayer: update debug strings

Change-Id: I64a7dead30b8f484b63ba4d8055d93c626447755


# 4399ec51 10-Jun-2020 X512 <danger_mail@list.ru>

BPicture: add fill rule support

Change-Id: I068e1c2e8659f7b90c6d7c7331a8bb25ae343fe9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2922
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 90ab1a44 27-May-2020 X512 <danger_mail@list.ru>

BPicture: add gradient support

Fixes #9680.

Change-Id: I0013326559cc40ff26cf7b44794c0b32aea832ba
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2829
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>


# 1d22b1ae 08-Jun-2020 X512 <danger_mail@list.ru>

PicturePlayer: use BStackOrHeapArray

Change-Id: I7908d8304276d14782bde5c2b8c089f3ca0138e2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2894
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 3ca2e85b 24-May-2019 Augustin Cavalier <waddlesplash@gmail.com>

Interface: Add casts to memcpy/memset invocations on BPoint & BRect.

Their copy constructors are exactly what GCC would generate,
but we can't remove them because doing so would make them
trivially copyable, and so they would be passed in registers
on x86_64, an ABI breakage.

So instead we have to add explicit casts to void* here.


# 954a0a0c 02-Jan-2019 Stephan Aßmus <superstippi@gmx.de>

Fix some cases of updating draw state while recording a BPicture

* Also implemented recording DrawString(string, length,
BPoint[] locations), which was previously not recorded at all.
* Also implemented playing back recently added drawing commands
in PicturePlayer.cpp. I don't quite understand what this is
actually used for, but it seemed it was forgotten. I just followed
the pattern already established in the code.
* The other important bit in this change is to update the pen
location when it is needed while recording a BPicture. Often
the BView will use PenLocation() in order to transmit drawing
commands to the app_server which use absolute coordinates only.
This isn't actually so nice, since it means the client has to
wait for the server to transmit the current pen location. If there
were dedicated link-commands for pen-relative drawing commands,
the client could just keep sending without waiting for the server.
In any case, the app_server needs to update the pen location in
the current DrawState and even the DrawingEngine even while
recording a picture, because some next command may need up-2-date
state information, such as the font state and the pen location.
* I have not yet tried to find /all/ instances where the DrawState
needs to be updated while recording. This change should repair
/all/ font state changes, all versions of drawing a string, and
all versions of StrokeLine().

Change-Id: Ia0f23e7b1cd058f70f76a5849acb2d02e0f0da09
Reviewed-on: https://review.haiku-os.org/c/817
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>


# 214f8799 04-Mar-2016 Jérôme Duval <jerome.duval@gmail.com>

try to fix gcc5 build on buildbot.

* I'd only reproduce the kernel build failure locally, weird.


# 25dbf74b 10-Nov-2015 Julian Harnath <julian.harnath@rwth-aachen.de>

BView: add methods for affine translation/scaling/rotation

* BView::TranslateBy(), BView::ScaleBy() and BView::RotateBy()
allow to conveniently modify the current affine transformation.
This makes it unnecessary to first read the current transform,
modify it, and then set it again.
Uses the new Pre...() methods of BAffineTransform.

* Also, remove setting the transform "through" to the BView even
while recording a BPicture, as this now results in transforms
being applied more than once.


# 4bd6f322 09-Nov-2015 Julian Harnath <julian.harnath@rwth-aachen.de>

app_server/Interface Kit: add new clipping API

* Add new clipping API for rectangles (ClipToRect, ClipToInverseRect)
and shapes (ClipToShape, ClipToInverseShape)

* Works with affine transforms and automatically switches from fast
region-based clipping to alpha-mask based clipping as necessary.

* Always self-intersecting, i.e. no state push required to further
narrow down the clipping region. All of the 4 new methods can be
mixed in any order.


# 551438b9 25-Jul-2015 Julian Harnath <julian.harnath@rwth-aachen.de>

app_server: add new BView layers API

* Add new methods
BView::BeginLayer(uint8 opacity)
BView::EndLayer()

* All drawing between begin and end of a layer is redirected onto an
intermediate bitmap. When ending the layer, this bitmap is
composited onto the view with the opacity given when the layer was
started.

* Layers can be nested arbitrarily and will be blended onto each
other in order. There can also be any arbitrary interleaving of
layer begin/end and drawing operations.

* Internally, drawing commands are redirected into a BPicture between
BeginLayer and EndLayer (but client code need not know or care
about this). Client code can also start/end other BPictures while
inside a layer.

* Uses the PictureBoundingBoxPlayer to determine the size of the
layer bitmap before allocating and drawing into it, so it does not
allocate more memory than necessary and -- more importantly -- it
will not alpha-composite more pixels than necessary.

* Drawing mode is always set to B_OP_ALPHA, blend mode to
(B_PIXEL_ALPHA, B_ALPHA_COMPOSITE) while inside layers. This is
necessary for (a) correct compositing output and (b) for
redirection of drawing into the intermediate bitmap, which uses the
renderer_region offset (in B_OP_COPY, the Painter does not use the
AGG renderer methods, it directly accesses the pixel data. This
would access out-of-bounds without the offset, so B_OP_COPY cannot
be allowed.)
To ensure these modes aren't changed, BView::SetDrawingMode()
and BView::SetBlendingMode() are ignored while inside a layer.

* The main motivation behind this new API is WebKit, which internally
expects such a layers functionality to be present. A performant and
reusable implementation of this functionality can only be done
server-side in app_server.


# c34cbf28 08-Jul-2015 Julian Harnath <julian.harnath@rwth-aachen.de>

app_server: fix PicturePlayer dummy function table

* With the support for BAffineTransform, it needs to have 49 entries


# ce27f961 05-Sep-2015 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implement ClipToPicture inside a BPicture. Not working yet.
BView::ClipToPicture doesn't work anymore, when nested inside a BPicture,
This happened when its implementation was moved server-side.


# eec73693 05-Sep-2015 Michael Lotz <mmlr@mlotz.ch>

PicturePlayer: Rework to be more safe against corrupted data.

This introduces a more sane API (currently private) that allows for
safer and possibly more efficient implementations:

* It uses a struct of named and typed function pointers instead of just
a void pointer array. This adds type safety to the callbacks so the
compiler can figure out if things match up before subtle bugs get
introduced.
* It provides bounds for all strings/buffers passed to the callbacks.
* It uses const references instead of implicitly copying arguments.
* It folds stroke_x/fill_x pairs into draw_x functions with a fill
argument to reduce the amount of functions needed.
* It uses unsigned values where negative values make no sense.

The old API has been implemented on top of the new one using adapter
functions. It makes copies of all data passed to the callbacks which
effectively keeps the picture data from being modified. This matches
with the R5 behaviour.

This also reimplements the buffer parsing to be safe against corrupted
data by validating that the types actually fit in the provided sizes
and buffers (using a templated reader).

Since this class is used from the app_server with user provided data,
making it more safe is important even though it comes with a slight
overhead (replicating R5 behaviour, i.e. crashing the app_server when
corrupted data is fed, doesn't seem very appropriate here).


# a6db6bd4 04-Feb-2014 Stephan Aßmus <superstippi@gmx.de>

Added WIP support for affine transformations to BViews.

Everything untested, but compiles, so it must work. The idea is to introduce
BAffineTransform additionally to the existing Origin and Scale properties of
BViews. One may use it in parallel or as an alternative. Painter in app_server
is not yet aware of the additional transformation. It is however already used
to transform drawing coordinates. It probably needs to work differently,
perhaps only in Painter and AGGTextRenderer.


# 6c6fcaf9 20-Dec-2012 Alex Smith <alex@alex-smith.me.uk>

Some build fixes for DEBUG=1.


# e1c748e4 11-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Revert "Fixed type mismatch in picture data."

This reverts commit 81aad168f87486149f6e4ce8acc43e3e7a5de9e1.


# 81aad168 10-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Fixed type mismatch in picture data.

The size of an operation block was written as size_t by PictureDataWriter
but read as int32 by PicturePlayer. Fixes an app_server crash.


# adffb3bd 13-Oct-2008 Oliver Tappe <zooey@hirschkaefer.de>

* fixed build in DEBUG mode

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28039 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c8ffdabb 04-Sep-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fixed memcpy in case a smaller function table is provided. Improved readability of the SET_CLIPPING_RECT op block.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27315 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 422fadc8 16-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Moved the dummy table local to the PicturePlayer::Play() function since,
as Marcus pointed out, having it outside wasn't thread safe. Moved
PicturePlayer into the BPrivate namespace.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21982 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9f22373b 16-Aug-2007 Jérôme Duval <korli@users.berlios.de>

fix gcc4 build


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21977 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bd147851 16-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Debug was enabled by default.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21973 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 46b4e489 16-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added some debug output to PicturePlayer. Since checking the table size for every op is very slow, now we do that only at the beginning, and use a custom op table if needed. The best case (which is the one used when drawing a picture with BView::DrawPicture()) is very fast since it only requires one check.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21972 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 253d42a6 14-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implemented SetClipping op, but it's not working yet (looks like it's
never written into the data stream)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21947 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d2d3fb84 13-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Removed a no longer true TODO


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21944 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 796e4e45 13-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implement calling the exit_xxx hooks. Thanks to Marc Flerackers for the
help.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21943 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2f99607b 14-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

My last commit broke setting fonts in BPictures. Added a comment in
PicturePlayer to explain what we need to do. Don't write the
B_PIC_ENTER_STATE_CHANGE and B_PIC_ENTER_FONT_STATE ops until we fix the
problem (we don't care about them in our server side
implementation anyway). Font changes and state syncing work again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21940 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c00e6e3f 14-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implement more bpicture font methods, now PicturePlayer checks the size
of the function table, so if someone passes a smaller table, we avoid

calling invalid pointers.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21939 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ed5de868 13-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implemented the following BPicture ops: fill region, stroke/fill arc,
stroke/fill polygon, stroke/fill bezier. some work towards drawing of
nested pictures.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21918 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0b0ecfab 01-Mar-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

Added "const" to many parameters.
Removed most data allocations/copying from PicturePlayer, ServerPicture now has to do this when converting coordinates.
Added additional functions to ViewLayer to copy&convert multiple BPoint, BRect, BRegion to Screen coordinates, those should be further optimized.
Removed some function call overhead.
Note: some functions of PicturePlayer don't appear to be implented by PictureDataWriter,


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20292 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f9e5811b 28-Nov-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

forgot this file



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19380 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 420fe80e 12-Nov-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Moved picture data writing to its own class, thus simplifying code in
various places. Implemented SetLineMode op for BPicture, fixed shape
drawing (I accidentally broke it in the previous commit).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19264 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0976f53c 09-Nov-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

and there it goes, the usual untested last minute change which breaks
the build...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19242 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ab757c7a 09-Nov-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

our BPicture stream format wasn't compatible with R5 one.
Hopefully fixed all the problems. Reported by
Marc Flerackers.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19241 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 34633cab 30-Oct-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

patch by Lucasz Zemczak which adds BShape drawing support to BPicture. Actually we should use a ShapeIterator subclass (like Lucasz did here) in Painter too instead of having duplicating code.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19153 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 04c67ff9 23-Oct-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

delete -> delete[]

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19101 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3ffcd64e 23-Oct-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

updated headers


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19099 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 18c8a41c 23-Oct-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

renamed TPicture.cpp to PicturePlayer.cpp


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19096 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ce27f9612e78bbb58c62bdc54c02bfc0e5172681 05-Sep-2015 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implement ClipToPicture inside a BPicture. Not working yet.
BView::ClipToPicture doesn't work anymore, when nested inside a BPicture,
This happened when its implementation was moved server-side.


# eec73693e030e7455f2312ab49613b1b85076c73 05-Sep-2015 Michael Lotz <mmlr@mlotz.ch>

PicturePlayer: Rework to be more safe against corrupted data.

This introduces a more sane API (currently private) that allows for
safer and possibly more efficient implementations:

* It uses a struct of named and typed function pointers instead of just
a void pointer array. This adds type safety to the callbacks so the
compiler can figure out if things match up before subtle bugs get
introduced.
* It provides bounds for all strings/buffers passed to the callbacks.
* It uses const references instead of implicitly copying arguments.
* It folds stroke_x/fill_x pairs into draw_x functions with a fill
argument to reduce the amount of functions needed.
* It uses unsigned values where negative values make no sense.

The old API has been implemented on top of the new one using adapter
functions. It makes copies of all data passed to the callbacks which
effectively keeps the picture data from being modified. This matches
with the R5 behaviour.

This also reimplements the buffer parsing to be safe against corrupted
data by validating that the types actually fit in the provided sizes
and buffers (using a templated reader).

Since this class is used from the app_server with user provided data,
making it more safe is important even though it comes with a slight
overhead (replicating R5 behaviour, i.e. crashing the app_server when
corrupted data is fed, doesn't seem very appropriate here).


# a6db6bd40fe3492fd3104dba560f0e3ff61d388d 04-Feb-2014 Stephan Aßmus <superstippi@gmx.de>

Added WIP support for affine transformations to BViews.

Everything untested, but compiles, so it must work. The idea is to introduce
BAffineTransform additionally to the existing Origin and Scale properties of
BViews. One may use it in parallel or as an alternative. Painter in app_server
is not yet aware of the additional transformation. It is however already used
to transform drawing coordinates. It probably needs to work differently,
perhaps only in Painter and AGGTextRenderer.


# 6c6fcaf95bd0900cec88e13d58795f5241850037 20-Dec-2012 Alex Smith <alex@alex-smith.me.uk>

Some build fixes for DEBUG=1.


# e1c748e4c0509ffcc986faf39579c9c06179a1a6 11-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Revert "Fixed type mismatch in picture data."

This reverts commit 81aad168f87486149f6e4ce8acc43e3e7a5de9e1.


# 81aad168f87486149f6e4ce8acc43e3e7a5de9e1 10-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Fixed type mismatch in picture data.

The size of an operation block was written as size_t by PictureDataWriter
but read as int32 by PicturePlayer. Fixes an app_server crash.


# adffb3bd7f1faecf58a523d47f163898360fa445 13-Oct-2008 Oliver Tappe <zooey@hirschkaefer.de>

* fixed build in DEBUG mode

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28039 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c8ffdabb3586223daa2ec1522c97e6534c645cad 04-Sep-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fixed memcpy in case a smaller function table is provided. Improved readability of the SET_CLIPPING_RECT op block.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27315 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 422fadc829581055c4776614f7cffce670e51ab6 16-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Moved the dummy table local to the PicturePlayer::Play() function since,
as Marcus pointed out, having it outside wasn't thread safe. Moved
PicturePlayer into the BPrivate namespace.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21982 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9f22373bd344b8574de9917f76a1c5d1c8e08f58 16-Aug-2007 Jérôme Duval <korli@users.berlios.de>

fix gcc4 build


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21977 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bd14785126221c7184280b13424f3ad68e73a470 16-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Debug was enabled by default.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21973 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 46b4e489982de2e3ddfab11c68c714f6c1be4598 16-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added some debug output to PicturePlayer. Since checking the table size for every op is very slow, now we do that only at the beginning, and use a custom op table if needed. The best case (which is the one used when drawing a picture with BView::DrawPicture()) is very fast since it only requires one check.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21972 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 253d42a602bc2ed053cf9a5f400bb95070f91da5 14-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implemented SetClipping op, but it's not working yet (looks like it's
never written into the data stream)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21947 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d2d3fb84722df082b9ccc51c915731e7d48af40c 13-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Removed a no longer true TODO


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21944 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 796e4e4552e247113ff540017eb41035f8c70d14 13-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implement calling the exit_xxx hooks. Thanks to Marc Flerackers for the
help.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21943 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2f99607b779eddb4150a74aa25259a288d1b9c80 14-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

My last commit broke setting fonts in BPictures. Added a comment in
PicturePlayer to explain what we need to do. Don't write the
B_PIC_ENTER_STATE_CHANGE and B_PIC_ENTER_FONT_STATE ops until we fix the
problem (we don't care about them in our server side
implementation anyway). Font changes and state syncing work again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21940 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c00e6e3f897ae0aae682a970906e2bed17b9e7af 14-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implement more bpicture font methods, now PicturePlayer checks the size
of the function table, so if someone passes a smaller table, we avoid

calling invalid pointers.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21939 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ed5de868df775fceddb5abedec7eab9bd5147d51 13-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implemented the following BPicture ops: fill region, stroke/fill arc,
stroke/fill polygon, stroke/fill bezier. some work towards drawing of
nested pictures.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21918 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0b0ecfab9004dab03fc2cdc6b0d1bc01fd4336af 01-Mar-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

Added "const" to many parameters.
Removed most data allocations/copying from PicturePlayer, ServerPicture now has to do this when converting coordinates.
Added additional functions to ViewLayer to copy&convert multiple BPoint, BRect, BRegion to Screen coordinates, those should be further optimized.
Removed some function call overhead.
Note: some functions of PicturePlayer don't appear to be implented by PictureDataWriter,


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20292 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f9e5811b92c80c6a9fbe557459d087728121191d 28-Nov-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

forgot this file



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19380 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 420fe80e5c3dc9765da5343c511071d63bcb81cb 12-Nov-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Moved picture data writing to its own class, thus simplifying code in
various places. Implemented SetLineMode op for BPicture, fixed shape
drawing (I accidentally broke it in the previous commit).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19264 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0976f53cef94af04b311cbc0c1aa07c17baab5c2 09-Nov-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

and there it goes, the usual untested last minute change which breaks
the build...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19242 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ab757c7a3ad45bf6112c913a3fec935bb58899dd 09-Nov-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

our BPicture stream format wasn't compatible with R5 one.
Hopefully fixed all the problems. Reported by
Marc Flerackers.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19241 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 34633cab94673896f8a528bcabf282bac5a4c30e 30-Oct-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

patch by Lucasz Zemczak which adds BShape drawing support to BPicture. Actually we should use a ShapeIterator subclass (like Lucasz did here) in Painter too instead of having duplicating code.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19153 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 04c67ff9bfe699adf255ece46900cdcffc888ae7 23-Oct-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

delete -> delete[]

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19101 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3ffcd64e5ce81ba5df01145f4311e41d509b5eb1 23-Oct-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

updated headers


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19099 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 18c8a41cc1a30b67347ebc8b9a55221ef8646f1f 23-Oct-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

renamed TPicture.cpp to PicturePlayer.cpp


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19096 a95241bf-73f2-0310-859d-f6bbb57e9c96