update dev300-m58
[ooovba.git] / offapi / com / sun / star / rendering / XCanvas.idl
blobbd5c4f53a6604828df79a0ec9ad698d08f96ebd9
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: XCanvas.idl,v $
10 * $Revision: 1.8 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
30 #ifndef __com_sun_star_rendering_XCanvas_idl__
31 #define __com_sun_star_rendering_XCanvas_idl__
33 #ifndef __com_sun_star_uno_XInterface_idl__
34 #include <com/sun/star/uno/XInterface.idl>
35 #endif
36 #ifndef __com_sun_star_lang_IllegalArgumentException_idl__
37 #include <com/sun/star/lang/IllegalArgumentException.idl>
38 #endif
39 #ifndef __com_sun_star_geometry_RealPoint2D_idl__
40 #include <com/sun/star/geometry/RealPoint2D.idl>
41 #endif
42 #ifndef __com_sun_star_geometry_RealBezierSegment2D_idl__
43 #include <com/sun/star/geometry/RealBezierSegment2D.idl>
44 #endif
45 #ifndef __com_sun_star_geometry_RealRectangle2D_idl__
46 #include <com/sun/star/geometry/RealRectangle2D.idl>
47 #endif
48 #ifndef __com_sun_star_geometry_Matrix2D_idl__
49 #include <com/sun/star/geometry/Matrix2D.idl>
50 #endif
51 #ifndef __com_sun_star_rendering_ViewState_idl__
52 #include <com/sun/star/rendering/ViewState.idl>
53 #endif
54 #ifndef __com_sun_star_rendering_RenderState_idl__
55 #include <com/sun/star/rendering/RenderState.idl>
56 #endif
57 #ifndef __com_sun_star_rendering_FontRequest_idl__
58 #include <com/sun/star/rendering/FontRequest.idl>
59 #endif
60 #ifndef __com_sun_star_rendering_FontInfo_idl__
61 #include <com/sun/star/rendering/FontInfo.idl>
62 #endif
63 #ifndef __com_sun_star_rendering_Texture_idl__
64 #include <com/sun/star/rendering/Texture.idl>
65 #endif
66 #ifndef __com_sun_star_rendering_StringContext_idl__
67 #include <com/sun/star/rendering/StringContext.idl>
68 #endif
69 #ifndef __com_sun_star_rendering_StrokeAttributes_idl__
70 #include <com/sun/star/rendering/StrokeAttributes.idl>
71 #endif
72 #ifndef __com_sun_star_rendering_VolatileContentDestroyedException_idl__
73 #include <com/sun/star/rendering/VolatileContentDestroyedException.idl>
74 #endif
76 #ifndef __com_sun_star_beans_PropertyValue_idl__
77 #include <com/sun/star/beans/PropertyValue.idl>
78 #endif
81 module com { module sun { module star { module geometry {
82 interface XMapping2D;
83 }; }; }; };
85 module com { module sun { module star { module rendering {
87 interface XCanvasFont;
88 interface XPolyPolygon2D;
89 interface XCachedPrimitive;
90 interface XBitmap;
91 interface XGraphicDevice;
92 interface XTextLayout;
94 /** Central interface for rendering.<p>
96 This is the central interface for graphical output production, and
97 the place where all draw methods are located.<p>
99 Some notes are in order to explain the concepts used here. The
100 <type>XCanvas</type> interface is free of client-modifiable state,
101 i.e. it can be used safely and without external synchronization in
102 a multi-threaded environment. On the other hand, this implies that
103 for nearly every canvas operation, external state is
104 required. This is provided by <type>ViewState</type> and
105 <type>RenderState</type> in a unified fashion, supplemented by a
106 few extra state parameters for some methods (e.g. textured
107 polygons or text rendering).<p>
109 When used careless, this scheme can be inefficient to some extend,
110 because internally, view, render and other states have to be
111 combined before rendering. This is especially expensive for
112 complex clip polygons, i.e. when both <type>ViewState</type> and
113 <type>RenderState</type> have a complex clip polygon set, which
114 have to be intersected before rendering. It is therefore
115 recommended to combine <type>ViewState</type> and
116 <type>RenderState</type> already at the client side, when objects
117 are organized in a hierarchical way: the classic example are
118 grouped draw shapes, whose parent group object imposes a
119 common clipping and a common transformation on its siblings. The
120 group object would therefore merge the <type>ViewState</type> and
121 the <type>RenderState</type> it is called with into a new
122 <type>ViewState</type>, and call its siblings with a
123 <type>RenderState</type> containing only the local offset (and no
124 extra clipping).<p>
126 Furtheron, this stateless nature provides easy ways for
127 caching. Every non-trivial operation on <type>XCanvas</type> can
128 return a cache object, which, when called to redraw, renders the
129 primitive usually much more quickly than the original method. Note
130 that such caching is a lot more complicated, should the actual
131 rendering a method yields depend on internal state (which is the
132 case e.g. for the
133 <type
134 scope="::com::sun::star::drawing">::com::sun::star::drawing::XGraphics</type>
135 interface). Please note, though, that deciding whether to return
136 an <type>XCachedPrimitive</type> is completely up to the
137 implementation - don't rely on the methods returning something
138 (this is because there might be cases when returning such a cache
139 object will actually be a pessimization, since it involves memory
140 allocation and comparisons).<p>
142 Things that need more than a small, fixed amount of data are
143 encapsulated in own interfaces, e.g. polygons and bitmaps. You
144 can, in principle, roll your own implementations of these
145 interfaces, wrap it around your internal representation of
146 polygons and bitmaps, and render them. It might just not be overly
147 fast, because the <type>XCanvas</type> would need to convert for
148 each render call. It is therefore recommended to create such
149 objects via the <type>XGraphicDevice</type> factory (to be
150 retrieved from every canvas object via the
151 <member>getDevice()</member> call) - they will then internally
152 optimize to the underlying graphics subsystem.<p>
154 @since OOo 2.0.0
156 interface XCanvas : ::com::sun::star::uno::XInterface
158 /** Clear the whole canvas area.<p>
160 This method clears the whole canvas area to the device default
161 color (e.g. white for a printer, transparent for an
162 <type>XCustomSprite</type>).
164 void clear();
166 /** Draw a point in device resolution on the device.
168 @param aPoint
169 The point to draw.
171 @param aViewState
172 The viewstate to be used when drawing this point.
174 @param aRenderState
175 The renderstate to be used when drawing this point.
177 @throws <type>com::sun::star::lang::IllegalArgumentException</type>
178 if one of the view and renderstate parameters are outside the
179 specified range.
181 void drawPoint( [in] ::com::sun::star::geometry::RealPoint2D aPoint, [in] ViewState aViewState, [in] RenderState aRenderState )
182 raises (com::sun::star::lang::IllegalArgumentException);
184 //-------------------------------------------------------------------------
186 /** Draw a line in device resolution width (i.e. one device pixel
187 wide).
189 @param aStartPoint
190 The start point of the line to draw.
192 @param aEndPoint
193 The end point of the line to draw.
195 @param aViewState
196 The viewstate to be used when drawing this line.
198 @param aRenderState
199 The renderstate to be used when drawing this line.
201 @throws <type>com::sun::star::lang::IllegalArgumentException</type>
202 if one of the view and renderstate parameters are outside the
203 specified range.
205 void drawLine( [in] ::com::sun::star::geometry::RealPoint2D aStartPoint, [in] ::com::sun::star::geometry::RealPoint2D aEndPoint, [in] ViewState aViewState, [in] RenderState aRenderState )
206 raises (com::sun::star::lang::IllegalArgumentException);
208 //-------------------------------------------------------------------------
210 /** Draw a cubic bezier curve in device resolution width (i.e. one
211 device pixel wide).
213 @param aBezierSegment
214 The start and the two control points of the bezier curve.
216 @param aEndPoint
217 The end point of the bezier curve.
219 @param aViewState
220 The viewstate to be used when drawing this curve.
222 @param aRenderState
223 The renderstate to be used when drawing this curve.
225 @throws <type>com::sun::star::lang::IllegalArgumentException</type>
226 if one of the view and renderstate parameters are outside the
227 specified range.
229 void drawBezier( [in] ::com::sun::star::geometry::RealBezierSegment2D aBezierSegment, [in] ::com::sun::star::geometry::RealPoint2D aEndPoint, [in] ViewState aViewState, [in] RenderState aRenderState )
230 raises (com::sun::star::lang::IllegalArgumentException);
232 //-------------------------------------------------------------------------
234 /** Draw a poly-polygon in device resolution line width (i.e. the
235 lines are one device pixel wide).
237 @param xPolyPolygon
238 The poly-polygon to draw.
240 @param aViewState
241 The viewstate to be used when drawing this polygon.
243 @param aRenderState
244 The renderstate to be used when drawing this polygon.
246 @return a handle to the cached rendering output.
248 @throws <type>com::sun::star::lang::IllegalArgumentException</type>
249 if one of the view and renderstate parameters are outside the
250 specified range.
252 XCachedPrimitive drawPolyPolygon( [in] XPolyPolygon2D xPolyPolygon, [in] ViewState aViewState, [in] RenderState aRenderState )
253 raises (com::sun::star::lang::IllegalArgumentException);
255 //-------------------------------------------------------------------------
257 /** Stroke each polygon of the provided poly-polygon with the
258 specified stroke attributes.<p>
260 This method considers the stroking of all polygons as an
261 atomic operation in relation to the <type>RenderState</type>'s
262 <type>CompositeOperationy</type> operation. That means,
263 overlapping strokes from distinct polygons will look exactly
264 as overlapping segments of the same polygon, even with
265 transparency.<p>
267 @param xPolyPolygon
268 The poly-polygon to render.
270 @param aViewState
271 The viewstate to be used when stroking this polygon.
273 @param aRenderState
274 The renderstate to be used when stroking this polygon.
276 @param aStrokeAttributes
277 Further attributes used to parameterize the stroking.
279 @return a handle to the cached rendering output.
281 @throws <type>com::sun::star::lang::IllegalArgumentException</type>
282 if one of the view and renderstate parameters are outside the
283 specified range.
285 XCachedPrimitive strokePolyPolygon( [in] XPolyPolygon2D xPolyPolygon, [in] ViewState aViewState, [in] RenderState aRenderState, [in] StrokeAttributes aStrokeAttributes )
286 raises (com::sun::star::lang::IllegalArgumentException);
288 //-------------------------------------------------------------------------
290 /** Stroke each polygon of the provided poly-polygon with the
291 specified stroke attributes, fill the stroked outline
292 with the specified texture graphics.<p>
294 This method considers the stroking of all polygons as an
295 atomic operation in relation to the <type>RenderState</type>'s
296 <type>CompositeOp</type> operation. That means, overlapping
297 strokes from distinct polygons will look exactly as
298 overlapping segments of the same polygon, even with
299 transparency.<p>
301 @param xPolyPolygon
302 The poly-polygon to render.
304 @param aViewState
305 The viewstate to be used when strokes this polygon.
307 @param aRenderState
308 The renderstate to be used when stroking this polygon.
310 @param aTextures
311 A sequence of texture definitions, with which to fill the
312 stroked area.
314 @param aStrokeAttributes
315 Further attributes used to parameterize the stroking.
317 @return a handle to the cached rendering output.
319 @throws <type>com::sun::star::lang::IllegalArgumentException</type>
320 if one of the view and renderstate parameters are outside the
321 specified range.
323 @throws <type>VolatileContentDestroyedException</type>
324 if a texture bitmap was volatile, and the content was
325 destroyed before the rendering could take place.
327 XCachedPrimitive strokeTexturedPolyPolygon( [in] XPolyPolygon2D xPolyPolygon, [in] ViewState aViewState, [in] RenderState aRenderState, [in] sequence<Texture> aTextures, [in] StrokeAttributes aStrokeAttributes )
328 raises (com::sun::star::lang::IllegalArgumentException,
329 VolatileContentDestroyedException);
331 //-------------------------------------------------------------------------
333 /** Stroke each polygon of the provided poly-polygon with the
334 specified stroke attributes, fill the stroked outline
335 with the specified texture graphics, map the texture to the
336 outline via the specified texture mapping.<p>
338 This method considers the stroking of all polygons as an
339 atomic operation in relation to the <type>RenderState</type>'s
340 <type>CompositeOp</type> operation. That means, overlapping
341 strokes from distinct polygons will look exactly as
342 overlapping segments of the same polygon, even with
343 transparency.
345 @param xPolyPolygon
346 The poly-polygon to render.
348 @param aViewState
349 The viewstate to be used when stroking this polygon.
351 @param aRenderState
352 The renderstate to be used when stroking this polygon.
354 @param aTextures
355 A sequence of texture definitions, with which to fill the
356 stroked area.
358 @param xMapping
359 A bilinear mapping function which defines the warping of the
360 textures on the output area.
362 @param aStrokeAttributes
363 Further attributes used to parameterize the stroking.
365 @return a handle to the cached rendering output.
367 @throws <type>com::sun::star::lang::IllegalArgumentException</type>
368 if one of the view and renderstate parameters are outside the
369 specified range.
371 @throws <type>VolatileContentDestroyedException</type>
372 if a texture bitmap was volatile, and the content was
373 destroyed before the rendering could take place.
375 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 )
376 raises (com::sun::star::lang::IllegalArgumentException,
377 VolatileContentDestroyedException);
379 //-------------------------------------------------------------------------
381 // [TODO: Method misplaced at this interface?]
383 /** Query the polygonal representation of the stroke outlines, as
384 it would be generated by the strokePolyPolygon methods.<p>
386 This method can be used to e.g. set a clipping which covers the same
387 area as a stroke.<p>
389 @param xPolyPolygon
390 The poly-polygon to render.
392 @param aViewState
393 The viewstate to be used when generating the outline.
395 @param aRenderState
396 The renderstate to be used when generating the outline.
398 @param aStrokeAttributes
399 Further attributes used to parameterize the stroking.
401 @return a poly-polygon describing the outline of the stroked
402 area.
404 @throws <type>com::sun::star::lang::IllegalArgumentException</type>
405 if one of the view and renderstate parameters are outside the
406 specified range.
408 XPolyPolygon2D queryStrokeShapes( [in] XPolyPolygon2D xPolyPolygon, [in] ViewState aViewState, [in] RenderState aRenderState, [in] StrokeAttributes aStrokeAttributes )
409 raises (com::sun::star::lang::IllegalArgumentException);
411 //-------------------------------------------------------------------------
413 /** Fill the given poly-polygon.<p>
415 This method fills the given poly-polygon according to the
416 <type>RenderState</type>'s color and the poly-polygon's fill
417 rule.<p>
419 @param xPolyPolygon
420 The poly-polygon to render.
422 @param aViewState
423 The viewstate to be used when filling this polygon.
425 @param aRenderState
426 The renderstate to be used when filling this polygon.
428 @return a handle to the cached rendering output.
430 @throws <type>com::sun::star::lang::IllegalArgumentException</type>
431 if one of the view and renderstate parameters are outside the
432 specified range.
434 XCachedPrimitive fillPolyPolygon( [in] XPolyPolygon2D xPolyPolygon, [in] ViewState aViewState, [in] RenderState aRenderState )
435 raises (com::sun::star::lang::IllegalArgumentException);
437 //-------------------------------------------------------------------------
439 /** Fill the given poly-polygon with a texture.<p>
441 This method fills the given poly-polygon according to the
442 <type>RenderState</type>'s color, the given textures and
443 poly-polygon's fill rule.<p>
445 @param xPolyPolygon
446 The poly-polygon to render.
448 @param aViewState
449 The viewstate to be used when filling this polygon.
451 @param aRenderState
452 The renderstate to be used when filling this polygon.
454 @param aTextures
455 A sequence of texture definitions, with which to fill the
456 polygonal area.
458 @return a handle to the cached rendering output.
460 @throws <type>com::sun::star::lang::IllegalArgumentException</type>
461 if one of the view and renderstate parameters are outside the
462 specified range.
464 @throws <type>VolatileContentDestroyedException</type>
465 if a texture bitmap was volatile, and the content was
466 destroyed before the rendering could take place.
468 XCachedPrimitive fillTexturedPolyPolygon( [in] XPolyPolygon2D xPolyPolygon, [in] ViewState aViewState, [in] RenderState aRenderState, [in] sequence<Texture> xTextures )
469 raises (com::sun::star::lang::IllegalArgumentException,
470 VolatileContentDestroyedException);
472 //-------------------------------------------------------------------------
474 /** Fill the given poly-polygon with a mapped texture.<p>
476 This method fills the given poly-polygon according to the
477 <type>RenderState</type>'s color, the given textures and
478 poly-polygon's fill rule. The texture is mapped to the
479 poly-polygon's interior via the given texture mapping.<p>
481 @param xPolyPolygon
482 The poly-polygon to render.
484 @param aViewState
485 The viewstate to be used when filling this polygon.
487 @param aRenderState
488 The renderstate to be used when filling this polygon.
490 @param aTextures
491 A sequence of texture definitions, with which to fill the
492 polygonal area.
494 @param xMapping
495 A bilinear mapping function which defines the warping of the
496 textures on the output area.
498 @return a handle to the cached rendering output.
500 @throws <type>com::sun::star::lang::IllegalArgumentException</type>
501 if one of the view and renderstate parameters are outside the
502 specified range.
504 @throws <type>VolatileContentDestroyedException</type>
505 if a texture bitmap was volatile, and the content was
506 destroyed before the rendering could take place.
508 XCachedPrimitive fillTextureMappedPolyPolygon( [in] XPolyPolygon2D xPolyPolygon, [in] ViewState aViewState, [in] RenderState aRenderState, [in] sequence<Texture> xTextures, [in] ::com::sun::star::geometry::XMapping2D xMapping )
509 raises (com::sun::star::lang::IllegalArgumentException,
510 VolatileContentDestroyedException);
512 //-------------------------------------------------------------------------
514 /** Create a suitable font for the specified font description.
516 @param aFontRequest
518 @param aExtraFontProperties
519 Additional font properties to be applied when selecting this
520 font. Normally, you should not need this parameter. Currently,
521 the following properties are recognized:
522 <ul>
524 <il>Kerning: a <type>double</type> between 0 and 1, where
525 0 completely disables kerning. Whether kerning is on or
526 off by default is font-dependent.</il>
528 <il>IsEmphasisMarks: a <type>boolean</type>, where <TRUE/>
529 enables automatic placements of emphasis marks, e.g. for
530 Hebrew. The default value, if this property is not
531 specified, is <FALSE/>.</il>
533 <il>ExpandedSpacing: a <type>double</type> value which is added
534 between all cell distances for this font. The default value for
535 this property is zero. Use negative values for condensed output,
536 and positive values for expanded output.</il>
538 <il>OptionalLayoutFeatures: a sequence of <type
539 scope=::com::sun::star::beans>PropertyValue</type> listing
540 font-specific optional layout features, like glyph
541 variants.</il>
543 </ul>
545 @param aFontMatrix
546 Font-specific transformation matrix, which affects both the
547 glyphs as well as the advancement.
549 @returns the requested font, or an invalid reference, if the
550 request failed.
552 @throws <type>com::sun::star::lang::IllegalArgumentException</type>
553 if one of the parameters is not within the allowed range.
555 XCanvasFont createFont( [in] FontRequest aFontRequest, [in] sequence< ::com::sun::star::beans::PropertyValue > aExtraFontProperties, [in] ::com::sun::star::geometry::Matrix2D aFontMatrix )
556 raises (com::sun::star::lang::IllegalArgumentException);
558 //-------------------------------------------------------------------------
560 /** Query font information, specific to this canvas.<p>
562 @param aFilter
563 Filter parameter to reduce the list of returned fonts. Every
564 member of <type>FontInfo</type> that is not the empty string
565 or the "don't care" value restricts the list of returned fonts
566 to contain only those that have the specified attribute.
568 @param xFontProperties
569 This interface can provide additional font properties to
570 filter the list of available fonts against.
572 @returns the list of fonts matching the filter set.
574 @throws <type>com::sun::star::lang::IllegalArgumentException</type>
575 if one of the font properties are invalid or not recognized,
576 or if one of the <type>FontInfo</type> members is not within
577 the permitted range.
579 sequence< FontInfo > queryAvailableFonts( [in] FontInfo aFilter, [in] sequence< ::com::sun::star::beans::PropertyValue > aFontProperties )
580 raises (com::sun::star::lang::IllegalArgumentException);
582 //-------------------------------------------------------------------------
584 /** Draw the text given by the substring of the specified string
585 with the given font.<p>
587 The local origin of this output operation is either the left
588 end of the text baseline, for textDirection equal
589 LEFT_TO_RIGHT, or the right end of the baseline, for
590 textDirection equal to RIGHT_TO_LEFT, respectively.<p>
592 @param aText
593 The text to output.
595 @param xFont
596 The font retrieved from this canvas to be used when drawing
597 the text.
599 @param aViewState
600 The viewstate to be used when drawing this text.
602 @param aRenderState
603 The renderstate to be used when drawing this text.
605 @param nTextDirection
606 A value from the <type>TextDirection</type> collection,
607 denoting the main writing direction for this string. The main
608 writing direction determines the origin of the text output,
609 i.e. the left edge for left-to-right and the right edge for
610 right-to-left text.
612 @return a handle to the cached rendering output.
614 @throws <type>com::sun::star::lang::IllegalArgumentException</type>
615 if one of the view and renderstate parameters are outside the
616 specified range.
618 XCachedPrimitive drawText( [in] StringContext aText, [in] XCanvasFont xFont, [in] ViewState aViewState, [in] RenderState aRenderState, [in] byte nTextDirection )
619 raises (com::sun::star::lang::IllegalArgumentException);
621 //-------------------------------------------------------------------------
623 /** Draw the formatted text given by the text layout.<p>
625 The glyphs as represented by the text layout are always output
626 with the reference position being the leftmost edge of the
627 layout object's baseline. If the layout contains more than one
628 baseline, the baseline of the first strong character in
629 logical order is used here (strong in this context means that
630 the character can be unambiguously assigned to a unicode
631 script).<p>
633 @param xLayoutetText
634 An interface to the readily layouted text, obtained from a
635 <type>XCanvasFont</type> created at this canvas. The text
636 layout already carries intrinsic font information.
638 @param aViewState
639 The viewstate to be used when drawing this text.
641 @param aRenderState
642 The renderstate to be used when drawing this text.
644 @return a handle to the cached rendering output.
646 @throws <type>com::sun::star::lang::IllegalArgumentException</type>
647 if one of the view and renderstate parameters are outside the
648 specified range.
650 XCachedPrimitive drawTextLayout( [in] XTextLayout xLayoutetText, [in] ViewState aViewState, [in] RenderState aRenderState )
651 raises (com::sun::star::lang::IllegalArgumentException);
653 //-------------------------------------------------------------------------
655 /** Render the given bitmap.<p>
657 This method renders the bitmap, at a position and shape as
658 specified by the combined view and render transformations. For
659 fast render speed, the bitmap should be created by the
660 corresponding <type>XGraphicDevice</type>'s
661 <member>XGraphicDevice::createCompatibleBitmap()</member>
662 method.<p>
664 @param xBitmap
665 The bitmap to render.
667 @param aViewState
668 The viewstate to be used when drawing this text.
670 @param aRenderState
671 The renderstate to be used when drawing this text.
673 @return a handle to the cached rendering output.
675 @throws <type>com::sun::star::lang::IllegalArgumentException</type>
676 if one of the view and renderstate parameters are outside the
677 specified range.
679 @throws <type>VolatileContentDestroyedException</type>
680 if a texture bitmap was volatile, and the content was
681 destroyed before the rendering could take place.
683 XCachedPrimitive drawBitmap( [in] XBitmap xBitmap, [in] ViewState aViewState, [in] RenderState aRenderState )
684 raises (com::sun::star::lang::IllegalArgumentException,
685 VolatileContentDestroyedException);
687 /** Render the given bitmap, with a global color modulation.<p>
689 This method renders the bitmap, at a position and shape as
690 specified by the combined view and render transformations. For
691 fast render speed, the bitmap should be created by the
692 corresponding <type>XGraphicDevice</type>'s
693 <member>XGraphicDevice::createCompatibleBitmap()</member>
694 method. The bitmap's color channel values are multiplied with
695 the device color values as specified in the render state.<p>
697 @param xBitmap
698 The bitmap to render.
700 @param aViewState
701 The viewstate to be used when drawing this text.
703 @param aRenderState
704 The renderstate to be used when drawing this text. The device
705 color entry in the renderstate is multiplied with every pixel
706 color value, and only the result is rendered into the
707 canvas. If, for example, the bitmap should be rendered with
708 increased global transparency, set all device color channels
709 to 1.0, except for the alpha channel, which should be set to
710 the desired transparency.
712 @return a handle to the cached rendering output.
714 @throws <type>com::sun::star::lang::IllegalArgumentException</type>
715 if one of the view and renderstate parameters are outside the
716 specified range.
718 @throws <type>VolatileContentDestroyedException</type>
719 if a texture bitmap was volatile, and the content was
720 destroyed before the rendering could take place.
722 XCachedPrimitive drawBitmapModulated( [in] XBitmap xBitmap, [in] ViewState aViewState, [in] RenderState aRenderState )
723 raises (com::sun::star::lang::IllegalArgumentException,
724 VolatileContentDestroyedException);
726 //-------------------------------------------------------------------------
728 /** Request the associated graphic device for this canvas.<p>
730 A graphic device provides methods specific to the underlying
731 output device capabilities, which are common for all canvases
732 rendering to such a device. This includes device resolution,
733 color space, or bitmap formats.
735 @return the associated <type>XGraphicDevice</type>.
737 XGraphicDevice getDevice();
740 //=============================================================================
742 /// Service providing an <type>XCanvas</type> interface
743 service Canvas: XCanvas;
745 }; }; }; };
747 #endif