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 28 #ifndef CGM_BITMAP_HXX_ 29 #define CGM_BITMAP_HXX_ 30 31 #include "cgm.hxx" 32 #include <vcl/bmpacc.hxx> 33 34 class CGM; 35 36 class CGMBitmapDescriptor 37 { 38 public: 39 sal_uInt8* mpBuf; 40 Bitmap* mpBitmap; 41 BitmapWriteAccess* mpAcc; 42 sal_Bool mbStatus; 43 sal_Bool mbVMirror; 44 sal_Bool mbHMirror; 45 sal_uInt32 mnDstBitsPerPixel; 46 sal_uInt32 mnScanSize; // bytes per line 47 FloatPoint mnP, mnQ, mnR; 48 49 FloatPoint mnOrigin; 50 double mndx, mndy; 51 double mnOrientation; 52 53 sal_uInt32 mnX, mnY; 54 long mnLocalColorPrecision; 55 sal_uInt32 mnCompressionMode; 56 CGMBitmapDescriptor() : 57 mpBuf ( NULL ), 58 mpBitmap ( NULL ), 59 mpAcc ( NULL ), 60 mbStatus ( sal_False ), 61 mbVMirror ( sal_False ), 62 mbHMirror ( sal_False ) { }; 63 ~CGMBitmapDescriptor() 64 { 65 if ( mpAcc ) 66 mpBitmap->ReleaseAccess( mpAcc ); 67 if ( mpBitmap ) 68 delete mpBitmap; 69 }; 70 }; 71 72 class CGMBitmap 73 { 74 CGM* mpCGM; 75 CGMBitmapDescriptor* pCGMBitmapDescriptor; 76 sal_Bool ImplGetDimensions( CGMBitmapDescriptor& ); 77 void ImplSetCurrentPalette( CGMBitmapDescriptor& ); 78 void ImplGetBitmap( CGMBitmapDescriptor& ); 79 void ImplInsert( CGMBitmapDescriptor& rSource, CGMBitmapDescriptor& rDest ); 80 public: 81 CGMBitmap( CGM& rCGM ); 82 ~CGMBitmap(); 83 CGMBitmapDescriptor* GetBitmap(); 84 CGMBitmap* GetNext(); 85 }; 86 #endif 87 88