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_XIeeeFloatReadOnlyBitmap_idl__ 28#define __com_sun_star_rendering_XIeeeFloatReadOnlyBitmap_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/** Specialized interface for bitmaps containing IEEE floats as their 56 color components. In contrast to <type>XIeeeFloatBitmap</type>, 57 this interface only permits read-only access.<p> 58 59 Use this interface for e.g. bitmaps that are calculated 60 on-the-fly, or that are pure functional, and thus cannot be 61 modified.<p> 62 63 If you get passed an instance of 64 <type>XHalfFloatReadOnlyBitmap</type> that also supports the 65 <type>XVolatileBitmap</type> interface, things become a bit more 66 complicated. When reading data, one has to check for both 67 <type>VolatileContentDestroyedException</type> and mismatching 68 <type>FloatingPointBitmapLayout</type> return values. If either of them 69 occurs, the whole bitmap read operation should be repeated.<p> 70 */ 71interface XIeeeFloatReadOnlyBitmap : XBitmap 72{ 73 /** Query the raw data of this bitmap.<p> 74 75 Query the raw data of this bitmap, in the format as defined by 76 getMemoryLayout(). With the given rectangle, a subset of the 77 whole bitmap can be queried. When querying subsets of the 78 bitmap, the same scanline padding takes place as when the 79 whole bitmap is requested.<p> 80 81 Note that the bitmap memory layout might change for volatile 82 bitmaps.<p> 83 84 @param bitmapLayout 85 The memory layout the returned data is in. 86 87 @param rect 88 A rectangle, within the bounds of the bitmap, to retrieve the 89 contens from. 90 91 @throws <type>VolatileContentDestroyedException</type> 92 if the bitmap is volatile, and the content has been destroyed by the system. 93 94 @throws <type>com::sun::star::lang::IndexOutOfBoundsException</type> 95 if parts of the given rectangle are outside the permissible 96 bitmap area. 97 */ 98 sequence<float> getData( [out] FloatingPointBitmapLayout bitmapLayout, [in] ::com::sun::star::geometry::IntegerRectangle2D rect ) 99 raises (com::sun::star::lang::IndexOutOfBoundsException, 100 VolatileContentDestroyedException); 101 102 //------------------------------------------------------------------------- 103 104 /** Get a single pixel of the bitmap, returning its color 105 value.<p> 106 107 Note that the bitmap memory layout might change for volatile 108 bitmaps.<p> 109 110 @param bitmapLayout 111 The memory layout the returned data is in. 112 113 @param pos 114 A position, within the bounds of the bitmap, to retrieve the 115 color from. 116 117 @throws <type>VolatileContentDestroyedException</type> 118 if the bitmap is volatile, and the content has been destroyed by the system. 119 120 @throws <type>com::sun::star::lang::IndexOutOfBoundsException</type> 121 if the given position is outside the permissible bitmap area. 122 */ 123 sequence<float> getPixel( [out] FloatingPointBitmapLayout bitmapLayout, [in] ::com::sun::star::geometry::IntegerPoint2D pos ) 124 raises (com::sun::star::lang::IndexOutOfBoundsException, 125 VolatileContentDestroyedException); 126 127 //------------------------------------------------------------------------- 128 129 /** Query the memory layout for this bitmap.<p> 130 131 Please note that for volatile bitmaps, the memory layout might 132 change between subsequent calls.<p> 133 */ 134 FloatingPointBitmapLayout getMemoryLayout(); 135}; 136 137}; }; }; }; 138 139#endif 140