summaryrefslogtreecommitdiff
path: root/offapi/com/sun/star/rendering/XCanvas.idl
diff options
context:
space:
mode:
Diffstat (limited to 'offapi/com/sun/star/rendering/XCanvas.idl')
-rw-r--r--offapi/com/sun/star/rendering/XCanvas.idl744
1 files changed, 744 insertions, 0 deletions
diff --git a/offapi/com/sun/star/rendering/XCanvas.idl b/offapi/com/sun/star/rendering/XCanvas.idl
new file mode 100644
index 000000000000..e88de735ce7c
--- /dev/null
+++ b/offapi/com/sun/star/rendering/XCanvas.idl
@@ -0,0 +1,744 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_rendering_XCanvas_idl__
+#define __com_sun_star_rendering_XCanvas_idl__
+
+#ifndef __com_sun_star_uno_XInterface_idl__
+#include <com/sun/star/uno/XInterface.idl>
+#endif
+#ifndef __com_sun_star_lang_IllegalArgumentException_idl__
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#endif
+#ifndef __com_sun_star_geometry_RealPoint2D_idl__
+#include <com/sun/star/geometry/RealPoint2D.idl>
+#endif
+#ifndef __com_sun_star_geometry_RealBezierSegment2D_idl__
+#include <com/sun/star/geometry/RealBezierSegment2D.idl>
+#endif
+#ifndef __com_sun_star_geometry_RealRectangle2D_idl__
+#include <com/sun/star/geometry/RealRectangle2D.idl>
+#endif
+#ifndef __com_sun_star_geometry_Matrix2D_idl__
+#include <com/sun/star/geometry/Matrix2D.idl>
+#endif
+#ifndef __com_sun_star_rendering_ViewState_idl__
+#include <com/sun/star/rendering/ViewState.idl>
+#endif
+#ifndef __com_sun_star_rendering_RenderState_idl__
+#include <com/sun/star/rendering/RenderState.idl>
+#endif
+#ifndef __com_sun_star_rendering_FontRequest_idl__
+#include <com/sun/star/rendering/FontRequest.idl>
+#endif
+#ifndef __com_sun_star_rendering_FontInfo_idl__
+#include <com/sun/star/rendering/FontInfo.idl>
+#endif
+#ifndef __com_sun_star_rendering_Texture_idl__
+#include <com/sun/star/rendering/Texture.idl>
+#endif
+#ifndef __com_sun_star_rendering_StringContext_idl__
+#include <com/sun/star/rendering/StringContext.idl>
+#endif
+#ifndef __com_sun_star_rendering_StrokeAttributes_idl__
+#include <com/sun/star/rendering/StrokeAttributes.idl>
+#endif
+#ifndef __com_sun_star_rendering_VolatileContentDestroyedException_idl__
+#include <com/sun/star/rendering/VolatileContentDestroyedException.idl>
+#endif
+
+#ifndef __com_sun_star_beans_PropertyValue_idl__
+#include <com/sun/star/beans/PropertyValue.idl>
+#endif
+
+
+module com { module sun { module star { module geometry {
+ interface XMapping2D;
+}; }; }; };
+
+module com { module sun { module star { module rendering {
+
+interface XCanvasFont;
+interface XPolyPolygon2D;
+interface XCachedPrimitive;
+interface XBitmap;
+interface XGraphicDevice;
+interface XTextLayout;
+
+/** Central interface for rendering.<p>
+
+ This is the central interface for graphical output production, and
+ the place where all draw methods are located.<p>
+
+ Some notes are in order to explain the concepts used here. The
+ <type>XCanvas</type> interface is free of client-modifiable state,
+ i.e. it can be used safely and without external synchronization in
+ a multi-threaded environment. On the other hand, this implies that
+ for nearly every canvas operation, external state is
+ required. This is provided by <type>ViewState</type> and
+ <type>RenderState</type> in a unified fashion, supplemented by a
+ few extra state parameters for some methods (e.g. textured
+ polygons or text rendering).<p>
+
+ When used careless, this scheme can be inefficient to some extend,
+ because internally, view, render and other states have to be
+ combined before rendering. This is especially expensive for
+ complex clip polygons, i.e. when both <type>ViewState</type> and
+ <type>RenderState</type> have a complex clip polygon set, which
+ have to be intersected before rendering. It is therefore
+ recommended to combine <type>ViewState</type> and
+ <type>RenderState</type> already at the client side, when objects
+ are organized in a hierarchical way: the classic example are
+ grouped draw shapes, whose parent group object imposes a
+ common clipping and a common transformation on its siblings. The
+ group object would therefore merge the <type>ViewState</type> and
+ the <type>RenderState</type> it is called with into a new
+ <type>ViewState</type>, and call its siblings with a
+ <type>RenderState</type> containing only the local offset (and no
+ extra clipping).<p>
+
+ Furtheron, this stateless nature provides easy ways for
+ caching. Every non-trivial operation on <type>XCanvas</type> can
+ return a cache object, which, when called to redraw, renders the
+ primitive usually much more quickly than the original method. Note
+ that such caching is a lot more complicated, should the actual
+ rendering a method yields depend on internal state (which is the
+ case e.g. for the
+ <type
+ scope="::com::sun::star::drawing">::com::sun::star::drawing::XGraphics</type>
+ interface). Please note, though, that deciding whether to return
+ an <type>XCachedPrimitive</type> is completely up to the
+ implementation - don't rely on the methods returning something
+ (this is because there might be cases when returning such a cache
+ object will actually be a pessimization, since it involves memory
+ allocation and comparisons).<p>
+
+ Things that need more than a small, fixed amount of data are
+ encapsulated in own interfaces, e.g. polygons and bitmaps. You
+ can, in principle, roll your own implementations of these
+ interfaces, wrap it around your internal representation of
+ polygons and bitmaps, and render them. It might just not be overly
+ fast, because the <type>XCanvas</type> would need to convert for
+ each render call. It is therefore recommended to create such
+ objects via the <type>XGraphicDevice</type> factory (to be
+ retrieved from every canvas object via the
+ <member>getDevice()</member> call) - they will then internally
+ optimize to the underlying graphics subsystem.<p>
+
+ @since OOo 2.0.0
+ */
+interface XCanvas : ::com::sun::star::uno::XInterface
+{
+ /** Clear the whole canvas area.<p>
+
+ This method clears the whole canvas area to the device default
+ color (e.g. white for a printer, transparent for an
+ <type>XCustomSprite</type>).
+ */
+ void clear();
+
+ /** Draw a point in device resolution on the device.
+
+ @param aPoint
+ The point to draw.
+
+ @param aViewState
+ The viewstate to be used when drawing this point.
+
+ @param aRenderState
+ The renderstate to be used when drawing this point.
+
+ @throws <type>com::sun::star::lang::IllegalArgumentException</type>
+ if one of the view and renderstate parameters are outside the
+ specified range.
+ */
+ void drawPoint( [in] ::com::sun::star::geometry::RealPoint2D aPoint, [in] ViewState aViewState, [in] RenderState aRenderState )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+ //-------------------------------------------------------------------------
+
+ /** Draw a line in device resolution width (i.e. one device pixel
+ wide).
+
+ @param aStartPoint
+ The start point of the line to draw.
+
+ @param aEndPoint
+ The end point of the line to draw.
+
+ @param aViewState
+ The viewstate to be used when drawing this line.
+
+ @param aRenderState
+ The renderstate to be used when drawing this line.
+
+ @throws <type>com::sun::star::lang::IllegalArgumentException</type>
+ if one of the view and renderstate parameters are outside the
+ specified range.
+ */
+ void drawLine( [in] ::com::sun::star::geometry::RealPoint2D aStartPoint, [in] ::com::sun::star::geometry::RealPoint2D aEndPoint, [in] ViewState aViewState, [in] RenderState aRenderState )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+ //-------------------------------------------------------------------------
+
+ /** Draw a cubic bezier curve in device resolution width (i.e. one
+ device pixel wide).
+
+ @param aBezierSegment
+ The start and the two control points of the bezier curve.
+
+ @param aEndPoint
+ The end point of the bezier curve.
+
+ @param aViewState
+ The viewstate to be used when drawing this curve.
+
+ @param aRenderState
+ The renderstate to be used when drawing this curve.
+
+ @throws <type>com::sun::star::lang::IllegalArgumentException</type>
+ if one of the view and renderstate parameters are outside the
+ specified range.
+ */
+ void drawBezier( [in] ::com::sun::star::geometry::RealBezierSegment2D aBezierSegment, [in] ::com::sun::star::geometry::RealPoint2D aEndPoint, [in] ViewState aViewState, [in] RenderState aRenderState )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+ //-------------------------------------------------------------------------
+
+ /** Draw a poly-polygon in device resolution line width (i.e. the
+ lines are one device pixel wide).
+
+ @param xPolyPolygon
+ The poly-polygon to draw.
+
+ @param aViewState
+ The viewstate to be used when drawing this polygon.
+
+ @param aRenderState
+ The renderstate to be used when drawing this polygon.
+
+ @return a handle to the cached rendering output.
+
+ @throws <type>com::sun::star::lang::IllegalArgumentException</type>
+ if one of the view and renderstate parameters are outside the
+ specified range.
+ */
+ XCachedPrimitive drawPolyPolygon( [in] XPolyPolygon2D xPolyPolygon, [in] ViewState aViewState, [in] RenderState aRenderState )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+ //-------------------------------------------------------------------------
+
+ /** Stroke each polygon of the provided poly-polygon with the
+ specified stroke attributes.<p>
+
+ This method considers the stroking of all polygons as an
+ atomic operation in relation to the <type>RenderState</type>'s
+ <type>CompositeOperationy</type> operation. That means,
+ overlapping strokes from distinct polygons will look exactly
+ as overlapping segments of the same polygon, even with
+ transparency.<p>
+
+ @param xPolyPolygon
+ The poly-polygon to render.
+
+ @param aViewState
+ The viewstate to be used when stroking this polygon.
+
+ @param aRenderState
+ The renderstate to be used when stroking this polygon.
+
+ @param aStrokeAttributes
+ Further attributes used to parameterize the stroking.
+
+ @return a handle to the cached rendering output.
+
+ @throws <type>com::sun::star::lang::IllegalArgumentException</type>
+ if one of the view and renderstate parameters are outside the
+ specified range.
+ */
+ XCachedPrimitive strokePolyPolygon( [in] XPolyPolygon2D xPolyPolygon, [in] ViewState aViewState, [in] RenderState aRenderState, [in] StrokeAttributes aStrokeAttributes )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+ //-------------------------------------------------------------------------
+
+ /** Stroke each polygon of the provided poly-polygon with the
+ specified stroke attributes, fill the stroked outline
+ with the specified texture graphics.<p>
+
+ This method considers the stroking of all polygons as an
+ atomic operation in relation to the <type>RenderState</type>'s
+ <type>CompositeOp</type> operation. That means, overlapping
+ strokes from distinct polygons will look exactly as
+ overlapping segments of the same polygon, even with
+ transparency.<p>
+
+ @param xPolyPolygon
+ The poly-polygon to render.
+
+ @param aViewState
+ The viewstate to be used when strokes this polygon.
+
+ @param aRenderState
+ The renderstate to be used when stroking this polygon.
+
+ @param aTextures
+ A sequence of texture definitions, with which to fill the
+ stroked area.
+
+ @param aStrokeAttributes
+ Further attributes used to parameterize the stroking.
+
+ @return a handle to the cached rendering output.
+
+ @throws <type>com::sun::star::lang::IllegalArgumentException</type>
+ if one of the view and renderstate parameters are outside the
+ specified range.
+
+ @throws <type>VolatileContentDestroyedException</type>
+ if a texture bitmap was volatile, and the content was
+ destroyed before the rendering could take place.
+ */
+ XCachedPrimitive strokeTexturedPolyPolygon( [in] XPolyPolygon2D xPolyPolygon, [in] ViewState aViewState, [in] RenderState aRenderState, [in] sequence<Texture> aTextures, [in] StrokeAttributes aStrokeAttributes )
+ raises (com::sun::star::lang::IllegalArgumentException,
+ VolatileContentDestroyedException);
+
+ //-------------------------------------------------------------------------
+
+ /** Stroke each polygon of the provided poly-polygon with the
+ specified stroke attributes, fill the stroked outline
+ with the specified texture graphics, map the texture to the
+ outline via the specified texture mapping.<p>
+
+ This method considers the stroking of all polygons as an
+ atomic operation in relation to the <type>RenderState</type>'s
+ <type>CompositeOp</type> operation. That means, overlapping
+ strokes from distinct polygons will look exactly as
+ overlapping segments of the same polygon, even with
+ transparency.
+
+ @param xPolyPolygon
+ The poly-polygon to render.
+
+ @param aViewState
+ The viewstate to be used when stroking this polygon.
+
+ @param aRenderState
+ The renderstate to be used when stroking this polygon.
+
+ @param aTextures
+ A sequence of texture definitions, with which to fill the
+ stroked area.
+
+ @param xMapping
+ A bilinear mapping function which defines the warping of the
+ textures on the output area.
+
+ @param aStrokeAttributes
+ Further attributes used to parameterize the stroking.
+
+ @return a handle to the cached rendering output.
+
+ @throws <type>com::sun::star::lang::IllegalArgumentException</type>
+ if one of the view and renderstate parameters are outside the
+ specified range.
+
+ @throws <type>VolatileContentDestroyedException</type>
+ if a texture bitmap was volatile, and the content was
+ destroyed before the rendering could take place.
+ */
+ XCachedPrimitive strokeTextureMappedPolyPolygon( [in] XPolyPolygon2D xPolyPolygon, [in] ViewState aViewState, [in] RenderState aRenderState, [in] sequence<Texture> aTextures, [in] ::com::sun::star::geometry::XMapping2D xMapping, [in] StrokeAttributes aStrokeAttributes )
+ raises (com::sun::star::lang::IllegalArgumentException,
+ VolatileContentDestroyedException);
+
+ //-------------------------------------------------------------------------
+
+ // [TODO: Method misplaced at this interface?]
+
+ /** Query the polygonal representation of the stroke outlines, as
+ it would be generated by the strokePolyPolygon methods.<p>
+
+ This method can be used to e.g. set a clipping which covers the same
+ area as a stroke.<p>
+
+ @param xPolyPolygon
+ The poly-polygon to render.
+
+ @param aViewState
+ The viewstate to be used when generating the outline.
+
+ @param aRenderState
+ The renderstate to be used when generating the outline.
+
+ @param aStrokeAttributes
+ Further attributes used to parameterize the stroking.
+
+ @return a poly-polygon describing the outline of the stroked
+ area.
+
+ @throws <type>com::sun::star::lang::IllegalArgumentException</type>
+ if one of the view and renderstate parameters are outside the
+ specified range.
+ */
+ XPolyPolygon2D queryStrokeShapes( [in] XPolyPolygon2D xPolyPolygon, [in] ViewState aViewState, [in] RenderState aRenderState, [in] StrokeAttributes aStrokeAttributes )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+ //-------------------------------------------------------------------------
+
+ /** Fill the given poly-polygon.<p>
+
+ This method fills the given poly-polygon according to the
+ <type>RenderState</type>'s color and the poly-polygon's fill
+ rule.<p>
+
+ @param xPolyPolygon
+ The poly-polygon to render.
+
+ @param aViewState
+ The viewstate to be used when filling this polygon.
+
+ @param aRenderState
+ The renderstate to be used when filling this polygon.
+
+ @return a handle to the cached rendering output.
+
+ @throws <type>com::sun::star::lang::IllegalArgumentException</type>
+ if one of the view and renderstate parameters are outside the
+ specified range.
+ */
+ XCachedPrimitive fillPolyPolygon( [in] XPolyPolygon2D xPolyPolygon, [in] ViewState aViewState, [in] RenderState aRenderState )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+ //-------------------------------------------------------------------------
+
+ /** Fill the given poly-polygon with a texture.<p>
+
+ This method fills the given poly-polygon according to the
+ <type>RenderState</type>'s color, the given textures and
+ poly-polygon's fill rule.<p>
+
+ @param xPolyPolygon
+ The poly-polygon to render.
+
+ @param aViewState
+ The viewstate to be used when filling this polygon.
+
+ @param aRenderState
+ The renderstate to be used when filling this polygon.
+
+ @param aTextures
+ A sequence of texture definitions, with which to fill the
+ polygonal area.
+
+ @return a handle to the cached rendering output.
+
+ @throws <type>com::sun::star::lang::IllegalArgumentException</type>
+ if one of the view and renderstate parameters are outside the
+ specified range.
+
+ @throws <type>VolatileContentDestroyedException</type>
+ if a texture bitmap was volatile, and the content was
+ destroyed before the rendering could take place.
+ */
+ XCachedPrimitive fillTexturedPolyPolygon( [in] XPolyPolygon2D xPolyPolygon, [in] ViewState aViewState, [in] RenderState aRenderState, [in] sequence<Texture> xTextures )
+ raises (com::sun::star::lang::IllegalArgumentException,
+ VolatileContentDestroyedException);
+
+ //-------------------------------------------------------------------------
+
+ /** Fill the given poly-polygon with a mapped texture.<p>
+
+ This method fills the given poly-polygon according to the
+ <type>RenderState</type>'s color, the given textures and
+ poly-polygon's fill rule. The texture is mapped to the
+ poly-polygon's interior via the given texture mapping.<p>
+
+ @param xPolyPolygon
+ The poly-polygon to render.
+
+ @param aViewState
+ The viewstate to be used when filling this polygon.
+
+ @param aRenderState
+ The renderstate to be used when filling this polygon.
+
+ @param aTextures
+ A sequence of texture definitions, with which to fill the
+ polygonal area.
+
+ @param xMapping
+ A bilinear mapping function which defines the warping of the
+ textures on the output area.
+
+ @return a handle to the cached rendering output.
+
+ @throws <type>com::sun::star::lang::IllegalArgumentException</type>
+ if one of the view and renderstate parameters are outside the
+ specified range.
+
+ @throws <type>VolatileContentDestroyedException</type>
+ if a texture bitmap was volatile, and the content was
+ destroyed before the rendering could take place.
+ */
+ XCachedPrimitive fillTextureMappedPolyPolygon( [in] XPolyPolygon2D xPolyPolygon, [in] ViewState aViewState, [in] RenderState aRenderState, [in] sequence<Texture> xTextures, [in] ::com::sun::star::geometry::XMapping2D xMapping )
+ raises (com::sun::star::lang::IllegalArgumentException,
+ VolatileContentDestroyedException);
+
+ //-------------------------------------------------------------------------
+
+ /** Create a suitable font for the specified font description.
+
+ @param aFontRequest
+
+ @param aExtraFontProperties
+ Additional font properties to be applied when selecting this
+ font. Normally, you should not need this parameter. Currently,
+ the following properties are recognized:
+ <ul>
+
+ <il>Kerning: a <type>double</type> between 0 and 1, where
+ 0 completely disables kerning. Whether kerning is on or
+ off by default is font-dependent.</il>
+
+ <il>IsEmphasisMarks: a <type>boolean</type>, where <TRUE/>
+ enables automatic placements of emphasis marks, e.g. for
+ Hebrew. The default value, if this property is not
+ specified, is <FALSE/>.</il>
+
+ <il>ExpandedSpacing: a <type>double</type> value which is added
+ between all cell distances for this font. The default value for
+ this property is zero. Use negative values for condensed output,
+ and positive values for expanded output.</il>
+
+ <il>OptionalLayoutFeatures: a sequence of <type
+ scope=::com::sun::star::beans>PropertyValue</type> listing
+ font-specific optional layout features, like glyph
+ variants.</il>
+
+ </ul>
+
+ @param aFontMatrix
+ Font-specific transformation matrix, which affects both the
+ glyphs as well as the advancement.
+
+ @returns the requested font, or an invalid reference, if the
+ request failed.
+
+ @throws <type>com::sun::star::lang::IllegalArgumentException</type>
+ if one of the parameters is not within the allowed range.
+ */
+ XCanvasFont createFont( [in] FontRequest aFontRequest, [in] sequence< ::com::sun::star::beans::PropertyValue > aExtraFontProperties, [in] ::com::sun::star::geometry::Matrix2D aFontMatrix )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+ //-------------------------------------------------------------------------
+
+ /** Query font information, specific to this canvas.<p>
+
+ @param aFilter
+ Filter parameter to reduce the list of returned fonts. Every
+ member of <type>FontInfo</type> that is not the empty string
+ or the "don't care" value restricts the list of returned fonts
+ to contain only those that have the specified attribute.
+
+ @param xFontProperties
+ This interface can provide additional font properties to
+ filter the list of available fonts against.
+
+ @returns the list of fonts matching the filter set.
+
+ @throws <type>com::sun::star::lang::IllegalArgumentException</type>
+ if one of the font properties are invalid or not recognized,
+ or if one of the <type>FontInfo</type> members is not within
+ the permitted range.
+ */
+ sequence< FontInfo > queryAvailableFonts( [in] FontInfo aFilter, [in] sequence< ::com::sun::star::beans::PropertyValue > aFontProperties )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+ //-------------------------------------------------------------------------
+
+ /** Draw the text given by the substring of the specified string
+ with the given font.<p>
+
+ The local origin of this output operation is either the left
+ end of the text baseline, for textDirection equal
+ LEFT_TO_RIGHT, or the right end of the baseline, for
+ textDirection equal to RIGHT_TO_LEFT, respectively.<p>
+
+ @param aText
+ The text to output.
+
+ @param xFont
+ The font retrieved from this canvas to be used when drawing
+ the text.
+
+ @param aViewState
+ The viewstate to be used when drawing this text.
+
+ @param aRenderState
+ The renderstate to be used when drawing this text.
+
+ @param nTextDirection
+ A value from the <type>TextDirection</type> collection,
+ denoting the main writing direction for this string. The main
+ writing direction determines the origin of the text output,
+ i.e. the left edge for left-to-right and the right edge for
+ right-to-left text.
+
+ @return a handle to the cached rendering output.
+
+ @throws <type>com::sun::star::lang::IllegalArgumentException</type>
+ if one of the view and renderstate parameters are outside the
+ specified range.
+ */
+ XCachedPrimitive drawText( [in] StringContext aText, [in] XCanvasFont xFont, [in] ViewState aViewState, [in] RenderState aRenderState, [in] byte nTextDirection )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+ //-------------------------------------------------------------------------
+
+ /** Draw the formatted text given by the text layout.<p>
+
+ The glyphs as represented by the text layout are always output
+ with the reference position being the leftmost edge of the
+ layout object's baseline. If the layout contains more than one
+ baseline, the baseline of the first strong character in
+ logical order is used here (strong in this context means that
+ the character can be unambiguously assigned to a unicode
+ script).<p>
+
+ @param xLayoutetText
+ An interface to the readily layouted text, obtained from a
+ <type>XCanvasFont</type> created at this canvas. The text
+ layout already carries intrinsic font information.
+
+ @param aViewState
+ The viewstate to be used when drawing this text.
+
+ @param aRenderState
+ The renderstate to be used when drawing this text.
+
+ @return a handle to the cached rendering output.
+
+ @throws <type>com::sun::star::lang::IllegalArgumentException</type>
+ if one of the view and renderstate parameters are outside the
+ specified range.
+ */
+ XCachedPrimitive drawTextLayout( [in] XTextLayout xLayoutetText, [in] ViewState aViewState, [in] RenderState aRenderState )
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+ //-------------------------------------------------------------------------
+
+ /** Render the given bitmap.<p>
+
+ This method renders the bitmap, at a position and shape as
+ specified by the combined view and render transformations. For
+ fast render speed, the bitmap should be created by the
+ corresponding <type>XGraphicDevice</type>'s
+ <member>XGraphicDevice::createCompatibleBitmap()</member>
+ method.<p>
+
+ @param xBitmap
+ The bitmap to render.
+
+ @param aViewState
+ The viewstate to be used when drawing this text.
+
+ @param aRenderState
+ The renderstate to be used when drawing this text.
+
+ @return a handle to the cached rendering output.
+
+ @throws <type>com::sun::star::lang::IllegalArgumentException</type>
+ if one of the view and renderstate parameters are outside the
+ specified range.
+
+ @throws <type>VolatileContentDestroyedException</type>
+ if a texture bitmap was volatile, and the content was
+ destroyed before the rendering could take place.
+ */
+ XCachedPrimitive drawBitmap( [in] XBitmap xBitmap, [in] ViewState aViewState, [in] RenderState aRenderState )
+ raises (com::sun::star::lang::IllegalArgumentException,
+ VolatileContentDestroyedException);
+
+ /** Render the given bitmap, with a global color modulation.<p>
+
+ This method renders the bitmap, at a position and shape as
+ specified by the combined view and render transformations. For
+ fast render speed, the bitmap should be created by the
+ corresponding <type>XGraphicDevice</type>'s
+ <member>XGraphicDevice::createCompatibleBitmap()</member>
+ method. The bitmap's color channel values are multiplied with
+ the device color values as specified in the render state.<p>
+
+ @param xBitmap
+ The bitmap to render.
+
+ @param aViewState
+ The viewstate to be used when drawing this text.
+
+ @param aRenderState
+ The renderstate to be used when drawing this text. The device
+ color entry in the renderstate is multiplied with every pixel
+ color value, and only the result is rendered into the
+ canvas. If, for example, the bitmap should be rendered with
+ increased global transparency, set all device color channels
+ to 1.0, except for the alpha channel, which should be set to
+ the desired transparency.
+
+ @return a handle to the cached rendering output.
+
+ @throws <type>com::sun::star::lang::IllegalArgumentException</type>
+ if one of the view and renderstate parameters are outside the
+ specified range.
+
+ @throws <type>VolatileContentDestroyedException</type>
+ if a texture bitmap was volatile, and the content was
+ destroyed before the rendering could take place.
+ */
+ XCachedPrimitive drawBitmapModulated( [in] XBitmap xBitmap, [in] ViewState aViewState, [in] RenderState aRenderState )
+ raises (com::sun::star::lang::IllegalArgumentException,
+ VolatileContentDestroyedException);
+
+ //-------------------------------------------------------------------------
+
+ /** Request the associated graphic device for this canvas.<p>
+
+ A graphic device provides methods specific to the underlying
+ output device capabilities, which are common for all canvases
+ rendering to such a device. This includes device resolution,
+ color space, or bitmap formats.
+
+ @return the associated <type>XGraphicDevice</type>.
+ */
+ XGraphicDevice getDevice();
+};
+
+//=============================================================================
+
+/// Service providing an <type>XCanvas</type> interface
+service Canvas: XCanvas;
+
+}; }; }; };
+
+#endif