summaryrefslogtreecommitdiff
path: root/drawinglayer/README
diff options
context:
space:
mode:
Diffstat (limited to 'drawinglayer/README')
-rw-r--r--drawinglayer/README85
1 files changed, 0 insertions, 85 deletions
diff --git a/drawinglayer/README b/drawinglayer/README
deleted file mode 100644
index b530ba6fedac..000000000000
--- a/drawinglayer/README
+++ /dev/null
@@ -1,85 +0,0 @@
-Drawing API that can specify what to draw via a kind of display list.
-
-Example of the DrawingLayer use is eg. in svx/source/xoutdev/xtabhtch.cxx:121.
-A stripped down version with extended comments:
-
- // Create a hatch primitive (here a rectangle that will be filled with
- // the appropriate hatching, but has no border).
- // This will not draw it yet; it's so far only constructed to add it to a
- // display list later.
- const drawinglayer::primitive2d::Primitive2DReference aHatchPrimitive(
- new drawinglayer::primitive2d::PolyPolygonHatchPrimitive2D(...));
-
- // Create a rectangle around the hatch, to give it a border.
- const drawinglayer::primitive2d::Primitive2DReference aBlackRectanglePrimitive(
- new drawinglayer::primitive2d::PolygonHairlinePrimitive2D(...));
-
- // Here we want to render to a virtual device (to later obtain the bitmap
- // out of that), so prepare it.
- VirtualDevice aVirtualDevice;
-
- // Create processor and draw primitives, to get it ready for rendering.
- std::unique_ptr<drawinglayer::processor2d::BaseProcessor2D> pProcessor2D(
- drawinglayer::processor2d::createPixelProcessor2DFromOutputDevice(...));
-
- if (pProcessor2D)
- {
- // Fill-in the display list.
- drawinglayer::primitive2d::Primitive2DSequence aSequence(2);
-
- aSequence[0] = aHatchPrimitive;
- aSequence[1] = aBlackRectanglePrimitive;
-
- // Render it to the virtual device.
- pProcessor2D->process(aSequence);
- pProcessor2D.reset();
- }
-
- // Obtain the bitmap that was rendered from the virtual device, to re-use
- // it in the widget.
- aRetval = aVirtualDevice.GetBitmap(Point(0, 0), aVirtualDevice.GetOutputSizePixel());
-
-== DrawingLayer glossary ==
-
-Primitives - classes that represent what should be drawn. It holds the data
-what to draw, but does not contain any kind of the rendering. Some of the
-primitives are 'Basic primitives', that are primitives that cannot be
-decomposed. The rest of the primitives can be decomposed to the basic
-primitives.
-
-Decomposition - a way how to break down the more complicated primitives into
-the basic primitives, and represent them via them; this logically makes the
-plain Primitive2DSequence display list a hierarchy.
-Eg. PolygonMarkerPrimitive2D can be decomposed to 2 hairlines
-PolyPolygonHairlinePrimitive2D's, each with different color.
-
-Processor - a class that goes through the hierarchy of the Primitives, and
-renders it some way. Various processors, like VclPixelProcessor2D (renders to
-the screen), VclMetafileProcessor2D (renders to the VCL metafile, eg. for
-printing), etc.
-
-== How to Implement a new Primitive ("something new to draw") ==
-
-* Create an ancestor of BasePrimitive2D
- (or of its ancestor if it fits the purpose better)
-
- * Assign it an ID [in drawinglayer_primitivetypes2d.hxx]
-
- * Implement its decomposition
- [virtual Primitive2DSequence create2DDecomposition(...)]
-
-* Extend the (various) processor(s)
- If you need more than relying on just the decomposition
-
-== Where is DrawingLayer used ==
-
-* SdrObject(s) (rectangles, Circles, predefined shapes etc.)
-
-* Selections
-
-* Various smaller cases to 'just draw something'
-
- * Draw to a virtual device, and use the resulting bitmap (like the example
- above)
-
-* Custom widgets (like the Header / Footer indicator button)