1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
19 #ifndef __com_sun_star_rendering_XIeeeDoubleBitmap_idl__
20 #define __com_sun_star_rendering_XIeeeDoubleBitmap_idl__
22 #include
<com
/sun
/star
/lang
/IllegalArgumentException.idl
>
23 #include
<com
/sun
/star
/lang
/IndexOutOfBoundsException.idl
>
24 #include
<com
/sun
/star
/rendering
/FloatingPointBitmapLayout.idl
>
25 #include
<com
/sun
/star
/geometry
/IntegerPoint2D.idl
>
26 #include
<com
/sun
/star
/geometry
/IntegerRectangle2D.idl
>
27 #include
<com
/sun
/star
/rendering
/XIeeeDoubleReadOnlyBitmap.idl
>
28 #include
<com
/sun
/star
/rendering
/VolatileContentDestroyedException.idl
>
31 module com
{ module sun
{ module star
{ module rendering
{
33 /** This is a specialized interface for bitmaps containing IEEE
34 doubles for their color components.<p>
36 interface XIeeeDoubleBitmap
: XIeeeDoubleReadOnlyBitmap
39 /** Set raw data of a bitmap.<p>
41 Set raw data of a bitmap, in the format as defined by
42 getMemoryLayout(). With the given rectangle, a subset of the
43 bitmap can be changed. When setting subsets of the bitmap, the
44 same scanline padding takes place as when the whole bitmap is
47 When setting data on volatile bitmaps, always call isValid()
48 before, and retrieve a new memory layout via
49 getMemoryLayout(). At least under Windows, the memory layout
50 can change for the same bitmap, if the user e.g. switches the
51 screen resolution. Thus, this method will throw an
52 IllegalArgumentException, if the memory layout changed between
53 a call to getMemoryLayout() and setData().<p>
59 Layout of the data to set. Must match this bitmap's current
63 Destination rectangle, within the bounds of the bitmap, to set
66 @throws com::sun::star::lang::IndexOutOfBoundsException
67 if parts of the given rectangle are outside the permissible
70 @throws com::sun::star::lang::IllegalArgumentException
71 if the given memory layout does not match this bitmap's
72 layout, or if the given data sequence has too few or too much
75 void setData
( [in] sequence
<double> data
, [in] FloatingPointBitmapLayout bitmapLayout
, [in] ::com
::sun
::star
::geometry
::IntegerRectangle2D rect
)
76 raises
(com
::sun
::star
::lang
::IllegalArgumentException
,
77 com
::sun
::star
::lang
::IndexOutOfBoundsException
);
80 /** Set a single pixel of the bitmap with the given color
83 When setting data on volatile bitmaps, always call isValid()
84 before, and retrieve a new memory layout via
85 getMemoryLayout(). At least under Windows, the memory layout
86 can change for the same bitmap, if the user e.g. switches the
87 screen resolution. Thus, this method will throw an
88 IllegalArgumentException, if the memory layout changed between
89 a call to getMemoryLayout() and setPixel().<p>
92 The color value(s) to set
95 Layout of the color elements to set. Must match this bitmap's
99 Pixel position with the bounds of the bitmap to set.
101 @throws com::sun::star::lang::IndexOutOfBoundsException
102 if the given point is outside the permissible bitmap area.
104 @throws com::sun::star::lang::IllegalArgumentException
105 if the given memory layout does not match this bitmap's
106 layout, or if the given data sequence has too few or too much
109 void setPixel
( [in] sequence
<double> color
, [in] FloatingPointBitmapLayout bitmapLayout
, [in] ::com
::sun
::star
::geometry
::IntegerPoint2D pos
)
110 raises
(com
::sun
::star
::lang
::IllegalArgumentException
,
111 com
::sun
::star
::lang
::IndexOutOfBoundsException
);
119 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */