1/************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27#ifndef __com_sun_star_rendering_XIeeeDoubleReadOnlyBitmap_idl__ 28#define __com_sun_star_rendering_XIeeeDoubleReadOnlyBitmap_idl__ 29 30#ifndef __com_sun_star_lang_IllegalArgumentException_idl__ 31#include <com/sun/star/lang/IllegalArgumentException.idl> 32#endif 33#ifndef __com_sun_star_lang_IndexOutOfBoundsException_idl__ 34#include <com/sun/star/lang/IndexOutOfBoundsException.idl> 35#endif 36#ifndef __com_sun_star_rendering_FloatingPointBitmapLayout_idl__ 37#include <com/sun/star/rendering/FloatingPointBitmapLayout.idl> 38#endif 39#ifndef __com_sun_star_geometry_IntegerPoint2D_idl__ 40#include <com/sun/star/geometry/IntegerPoint2D.idl> 41#endif 42#ifndef __com_sun_star_geometry_IntegerRectangle2D_idl__ 43#include <com/sun/star/geometry/IntegerRectangle2D.idl> 44#endif 45#ifndef __com_sun_star_rendering_XBitmap_idl__ 46#include <com/sun/star/rendering/XBitmap.idl> 47#endif 48#ifndef __com_sun_star_rendering_VolatileContentDestroyedException_idl__ 49#include <com/sun/star/rendering/VolatileContentDestroyedException.idl> 50#endif 51 52 53module com { module sun { module star { module rendering { 54 55/** This is a specialized interface for bitmaps containing IEEE 56 doubles for their color components. In contrast to 57 <type>XIeeeDoubleBitmap</type>, this interface only permits 58 read-only access.<p> 59 60 Use this interface for e.g. bitmaps that are calculated 61 on-the-fly, or that are pure functional, and thus cannot be 62 modified.<p> 63 64 If you get passed an instance of 65 <type>XHalfFloatReadOnlyBitmap</type> that also supports the 66 <type>XVolatileBitmap</type> interface, things become a bit more 67 complicated. When reading data, one has to check for both 68 <type>VolatileContentDestroyedException</type> and mismatching 69 <type>FloatingPointBitmapLayout</type> return values. If either of them 70 occurs, the whole bitmap read operation should be repeated.<p> 71 */ 72interface XIeeeDoubleReadOnlyBitmap : XBitmap 73{ 74 /** Query the raw data of this bitmap.<p> 75 76 Query the raw data of this bitmap, in the format as defined by 77 getMemoryLayout(). With the given rectangle, a subset of the 78 whole bitmap can be queried. When querying subsets of the 79 bitmap, the same scanline padding takes place as when the 80 whole bitmap is requested.<p> 81 82 Note that the bitmap memory layout might change for volatile 83 bitmaps.<p> 84 85 @param bitmapLayout 86 The memory layout the returned data is in. 87 88 @param rect 89 A rectangle, within the bounds of the bitmap, to retrieve the 90 contens from. 91 92 @throws <type>VolatileContentDestroyedException</type> 93 if the bitmap is volatile, and the content has been destroyed by the system. 94 95 @throws <type>com::sun::star::lang::IndexOutOfBoundsException</type> 96 if parts of the given rectangle are outside the permissible 97 bitmap area. 98 */ 99 sequence<double> getData( [out] FloatingPointBitmapLayout bitmapLayout, [in] ::com::sun::star::geometry::IntegerRectangle2D rect ) 100 raises (com::sun::star::lang::IndexOutOfBoundsException, 101 VolatileContentDestroyedException); 102 103 //------------------------------------------------------------------------- 104 105 /** Get a single pixel of the bitmap, returning its color 106 value.<p> 107 108 Note that the bitmap memory layout might change for volatile 109 bitmaps.<p> 110 111 @param bitmapLayout 112 The memory layout the returned data is in. 113 114 @param pos 115 A position, within the bounds of the bitmap, to retrieve the 116 color from. 117 118 @throws <type>VolatileContentDestroyedException</type> 119 if the bitmap is volatile, and the content has been destroyed by the system. 120 121 @throws <type>com::sun::star::lang::IndexOutOfBoundsException</type> 122 if the given position is outside the permissible bitmap area. 123 */ 124 sequence<double> getPixel( [out] FloatingPointBitmapLayout bitmapLayout, [in] ::com::sun::star::geometry::IntegerPoint2D pos ) 125 raises (com::sun::star::lang::IndexOutOfBoundsException, 126 VolatileContentDestroyedException); 127 128 //------------------------------------------------------------------------- 129 130 /** Query the memory layout for this bitmap.<p> 131 132 Please note that for volatile bitmaps, the memory layout might 133 change between subsequent calls.<p> 134 */ 135 FloatingPointBitmapLayout getMemoryLayout(); 136}; 137 138}; }; }; }; 139 140#endif 141