From 6f769fb8aaab1f899b3ca4551f6a8df2953cd938 Mon Sep 17 00:00:00 2001 From: Vladimir Glazounov Date: Tue, 19 Aug 2008 22:56:46 +0000 Subject: INTEGRATION: CWS aw033 (1.1.2); FILE ADDED 2008/08/19 16:43:44 cl 1.1.2.5: fixed license files 2008/08/12 13:35:19 aw 1.1.2.4: #i39532# changed from to trl_zeroMemory usage 2008/05/27 14:08:44 aw 1.1.2.3: #i39532# changes DEV300 m12 resync corrections 2006/05/16 14:09:24 aw 1.1.2.2: handish adaptions after resync 2006/05/12 11:29:50 aw 1.1.2.1: code for primitive support --- basegfx/inc/basegfx/raster/bpixelraster.hxx | 120 ++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 basegfx/inc/basegfx/raster/bpixelraster.hxx diff --git a/basegfx/inc/basegfx/raster/bpixelraster.hxx b/basegfx/inc/basegfx/raster/bpixelraster.hxx new file mode 100644 index 000000000000..25d924d304ea --- /dev/null +++ b/basegfx/inc/basegfx/raster/bpixelraster.hxx @@ -0,0 +1,120 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: bpixelraster.hxx,v $ + * + * $Revision: 1.2 $ + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _BGFX_RASTER_BPIXELRASTER_HXX +#define _BGFX_RASTER_BPIXELRASTER_HXX + +#include +#include +#include +#include + +////////////////////////////////////////////////////////////////////////////// +// predeclarations + +////////////////////////////////////////////////////////////////////////////// + +namespace basegfx +{ + class BPixelRaster + { + private: + // do not allow copy constructor and assignment operator + BPixelRaster(const BPixelRaster&); + BPixelRaster& operator=(const BPixelRaster&); + + protected: + sal_uInt32 mnWidth; + sal_uInt32 mnHeight; + sal_uInt32 mnCount; + BPixel* mpContent; + + public: + // reset + void reset() + { + rtl_zeroMemory(mpContent, sizeof(BPixel) * mnCount); + } + + // constructor/destructor + BPixelRaster(sal_uInt32 nWidth, sal_uInt32 nHeight) + : mnWidth(nWidth), + mnHeight(nHeight), + mnCount(nWidth * nHeight), + mpContent(new BPixel[mnCount]) + { + reset(); + } + + ~BPixelRaster() + { + delete [] mpContent; + } + + // coordinate calcs between X/Y and span + sal_uInt32 getIndexFromXY(sal_uInt32 nX, sal_uInt32 nY) const { return (nX + (nY * mnWidth)); } + sal_uInt32 getXFromIndex(sal_uInt32 nIndex) const { return (nIndex % mnWidth); } + sal_uInt32 getYFromIndex(sal_uInt32 nIndex) const { return (nIndex / mnWidth); } + + // data access read + sal_uInt32 getWidth() const { return mnWidth; } + sal_uInt32 getHeight() const { return mnHeight; } + sal_uInt32 getCount() const { return mnCount; } + + // data access read only + const BPixel& getBPixel(sal_uInt32 nIndex) const + { +#ifdef DBG_UTIL + if(nIndex >= mnCount) + { + OSL_ENSURE(false, "getBPixel: Access out of range (!)"); + return BPixel::getEmptyBPixel(); + } +#endif + return mpContent[nIndex]; + } + + // data access read/write + BPixel& getBPixel(sal_uInt32 nIndex) + { +#ifdef DBG_UTIL + if(nIndex >= mnCount) + { + OSL_ENSURE(false, "getBPixel: Access out of range (!)"); + return mpContent[0L]; + } +#endif + return mpContent[nIndex]; + } + }; +} // end of namespace basegfx + +#endif /* _BGFX_RASTER_BPIXELRASTER_HXX */ -- cgit v1.2.3