1*25ea7f45SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*25ea7f45SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*25ea7f45SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*25ea7f45SAndrew Rist * distributed with this work for additional information 6*25ea7f45SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*25ea7f45SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*25ea7f45SAndrew Rist * "License"); you may not use this file except in compliance 9*25ea7f45SAndrew Rist * with the License. You may obtain a copy of the License at 10*25ea7f45SAndrew Rist * 11*25ea7f45SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*25ea7f45SAndrew Rist * 13*25ea7f45SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*25ea7f45SAndrew Rist * software distributed under the License is distributed on an 15*25ea7f45SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*25ea7f45SAndrew Rist * KIND, either express or implied. See the License for the 17*25ea7f45SAndrew Rist * specific language governing permissions and limitations 18*25ea7f45SAndrew Rist * under the License. 19*25ea7f45SAndrew Rist * 20*25ea7f45SAndrew Rist *************************************************************/ 21*25ea7f45SAndrew Rist 22*25ea7f45SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 25cdf0e10cSrcweir #include "precompiled_canvas.hxx" 26cdf0e10cSrcweir 27cdf0e10cSrcweir #include <canvas/debug.hxx> 28cdf0e10cSrcweir #include <tools/diagnose_ex.h> 29cdf0e10cSrcweir 30cdf0e10cSrcweir #include <rtl/logfile.hxx> 31cdf0e10cSrcweir #include <rtl/math.hxx> 32cdf0e10cSrcweir 33cdf0e10cSrcweir #include <com/sun/star/util/Endianness.hpp> 34cdf0e10cSrcweir #include <com/sun/star/rendering/TexturingMode.hpp> 35cdf0e10cSrcweir #include <com/sun/star/rendering/CompositeOperation.hpp> 36cdf0e10cSrcweir #include <com/sun/star/rendering/RepaintResult.hpp> 37cdf0e10cSrcweir #include <com/sun/star/rendering/PathCapType.hpp> 38cdf0e10cSrcweir #include <com/sun/star/rendering/PathJoinType.hpp> 39cdf0e10cSrcweir 40cdf0e10cSrcweir #include <basegfx/matrix/b2dhommatrix.hxx> 41cdf0e10cSrcweir #include <basegfx/point/b2dpoint.hxx> 42cdf0e10cSrcweir #include <basegfx/tools/canvastools.hxx> 43cdf0e10cSrcweir 44cdf0e10cSrcweir #include <comphelper/sequence.hxx> 45cdf0e10cSrcweir #include <canvas/canvastools.hxx> 46cdf0e10cSrcweir 47cdf0e10cSrcweir #include "null_spritecanvas.hxx" 48cdf0e10cSrcweir #include "null_canvasfont.hxx" 49cdf0e10cSrcweir #include "null_textlayout.hxx" 50cdf0e10cSrcweir #include "null_canvashelper.hxx" 51cdf0e10cSrcweir 52cdf0e10cSrcweir #include <algorithm> 53cdf0e10cSrcweir 54cdf0e10cSrcweir 55cdf0e10cSrcweir using namespace ::com::sun::star; 56cdf0e10cSrcweir 57cdf0e10cSrcweir namespace nullcanvas 58cdf0e10cSrcweir { CanvasHelper()59cdf0e10cSrcweir CanvasHelper::CanvasHelper() : 60cdf0e10cSrcweir mpDevice( NULL ), 61cdf0e10cSrcweir maSize(), 62cdf0e10cSrcweir mbHaveAlpha() 63cdf0e10cSrcweir { 64cdf0e10cSrcweir } 65cdf0e10cSrcweir disposing()66cdf0e10cSrcweir void CanvasHelper::disposing() 67cdf0e10cSrcweir { 68cdf0e10cSrcweir mpDevice = NULL; 69cdf0e10cSrcweir } 70cdf0e10cSrcweir init(const::basegfx::B2ISize & rSize,SpriteCanvas & rDevice,bool bHasAlpha)71cdf0e10cSrcweir void CanvasHelper::init( const ::basegfx::B2ISize& rSize, 72cdf0e10cSrcweir SpriteCanvas& rDevice, 73cdf0e10cSrcweir bool bHasAlpha ) 74cdf0e10cSrcweir { 75cdf0e10cSrcweir mpDevice = &rDevice; 76cdf0e10cSrcweir maSize = rSize; 77cdf0e10cSrcweir mbHaveAlpha = bHasAlpha; 78cdf0e10cSrcweir } 79cdf0e10cSrcweir clear()80cdf0e10cSrcweir void CanvasHelper::clear() 81cdf0e10cSrcweir { 82cdf0e10cSrcweir } 83cdf0e10cSrcweir drawPoint(const rendering::XCanvas *,const geometry::RealPoint2D &,const rendering::ViewState &,const rendering::RenderState &)84cdf0e10cSrcweir void CanvasHelper::drawPoint( const rendering::XCanvas* /*pCanvas*/, 85cdf0e10cSrcweir const geometry::RealPoint2D& /*aPoint*/, 86cdf0e10cSrcweir const rendering::ViewState& /*viewState*/, 87cdf0e10cSrcweir const rendering::RenderState& /*renderState*/ ) 88cdf0e10cSrcweir { 89cdf0e10cSrcweir } 90cdf0e10cSrcweir drawLine(const rendering::XCanvas *,const geometry::RealPoint2D &,const geometry::RealPoint2D &,const rendering::ViewState &,const rendering::RenderState &)91cdf0e10cSrcweir void CanvasHelper::drawLine( const rendering::XCanvas* /*pCanvas*/, 92cdf0e10cSrcweir const geometry::RealPoint2D& /*aPoint1*/, 93cdf0e10cSrcweir const geometry::RealPoint2D& /*aPoint2*/, 94cdf0e10cSrcweir const rendering::ViewState& /*viewState*/, 95cdf0e10cSrcweir const rendering::RenderState& /*renderState*/ ) 96cdf0e10cSrcweir { 97cdf0e10cSrcweir } 98cdf0e10cSrcweir drawBezier(const rendering::XCanvas *,const geometry::RealBezierSegment2D &,const geometry::RealPoint2D &,const rendering::ViewState &,const rendering::RenderState &)99cdf0e10cSrcweir void CanvasHelper::drawBezier( const rendering::XCanvas* /*pCanvas*/, 100cdf0e10cSrcweir const geometry::RealBezierSegment2D& /*aBezierSegment*/, 101cdf0e10cSrcweir const geometry::RealPoint2D& /*aEndPoint*/, 102cdf0e10cSrcweir const rendering::ViewState& /*viewState*/, 103cdf0e10cSrcweir const rendering::RenderState& /*renderState*/ ) 104cdf0e10cSrcweir { 105cdf0e10cSrcweir } 106cdf0e10cSrcweir drawPolyPolygon(const rendering::XCanvas *,const uno::Reference<rendering::XPolyPolygon2D> &,const rendering::ViewState &,const rendering::RenderState &)107cdf0e10cSrcweir uno::Reference< rendering::XCachedPrimitive > CanvasHelper::drawPolyPolygon( const rendering::XCanvas* /*pCanvas*/, 108cdf0e10cSrcweir const uno::Reference< rendering::XPolyPolygon2D >& /*xPolyPolygon*/, 109cdf0e10cSrcweir const rendering::ViewState& /*viewState*/, 110cdf0e10cSrcweir const rendering::RenderState& /*renderState*/ ) 111cdf0e10cSrcweir { 112cdf0e10cSrcweir // TODO(P1): Provide caching here. 113cdf0e10cSrcweir return uno::Reference< rendering::XCachedPrimitive >(NULL); 114cdf0e10cSrcweir } 115cdf0e10cSrcweir strokePolyPolygon(const rendering::XCanvas *,const uno::Reference<rendering::XPolyPolygon2D> &,const rendering::ViewState &,const rendering::RenderState &,const rendering::StrokeAttributes &)116cdf0e10cSrcweir uno::Reference< rendering::XCachedPrimitive > CanvasHelper::strokePolyPolygon( const rendering::XCanvas* /*pCanvas*/, 117cdf0e10cSrcweir const uno::Reference< rendering::XPolyPolygon2D >& /*xPolyPolygon*/, 118cdf0e10cSrcweir const rendering::ViewState& /*viewState*/, 119cdf0e10cSrcweir const rendering::RenderState& /*renderState*/, 120cdf0e10cSrcweir const rendering::StrokeAttributes& /*strokeAttributes*/ ) 121cdf0e10cSrcweir { 122cdf0e10cSrcweir // TODO(P1): Provide caching here. 123cdf0e10cSrcweir return uno::Reference< rendering::XCachedPrimitive >(NULL); 124cdf0e10cSrcweir } 125cdf0e10cSrcweir strokeTexturedPolyPolygon(const rendering::XCanvas *,const uno::Reference<rendering::XPolyPolygon2D> &,const rendering::ViewState &,const rendering::RenderState &,const uno::Sequence<rendering::Texture> &,const rendering::StrokeAttributes &)126cdf0e10cSrcweir uno::Reference< rendering::XCachedPrimitive > CanvasHelper::strokeTexturedPolyPolygon( const rendering::XCanvas* /*pCanvas*/, 127cdf0e10cSrcweir const uno::Reference< rendering::XPolyPolygon2D >& /*xPolyPolygon*/, 128cdf0e10cSrcweir const rendering::ViewState& /*viewState*/, 129cdf0e10cSrcweir const rendering::RenderState& /*renderState*/, 130cdf0e10cSrcweir const uno::Sequence< rendering::Texture >& /*textures*/, 131cdf0e10cSrcweir const rendering::StrokeAttributes& /*strokeAttributes*/ ) 132cdf0e10cSrcweir { 133cdf0e10cSrcweir // TODO 134cdf0e10cSrcweir return uno::Reference< rendering::XCachedPrimitive >(NULL); 135cdf0e10cSrcweir } 136cdf0e10cSrcweir strokeTextureMappedPolyPolygon(const rendering::XCanvas *,const uno::Reference<rendering::XPolyPolygon2D> &,const rendering::ViewState &,const rendering::RenderState &,const uno::Sequence<rendering::Texture> &,const uno::Reference<geometry::XMapping2D> &,const rendering::StrokeAttributes &)137cdf0e10cSrcweir uno::Reference< rendering::XCachedPrimitive > CanvasHelper::strokeTextureMappedPolyPolygon( const rendering::XCanvas* /*pCanvas*/, 138cdf0e10cSrcweir const uno::Reference< rendering::XPolyPolygon2D >& /*xPolyPolygon*/, 139cdf0e10cSrcweir const rendering::ViewState& /*viewState*/, 140cdf0e10cSrcweir const rendering::RenderState& /*renderState*/, 141cdf0e10cSrcweir const uno::Sequence< rendering::Texture >& /*textures*/, 142cdf0e10cSrcweir const uno::Reference< geometry::XMapping2D >& /*xMapping*/, 143cdf0e10cSrcweir const rendering::StrokeAttributes& /*strokeAttributes*/ ) 144cdf0e10cSrcweir { 145cdf0e10cSrcweir // TODO 146cdf0e10cSrcweir return uno::Reference< rendering::XCachedPrimitive >(NULL); 147cdf0e10cSrcweir } 148cdf0e10cSrcweir queryStrokeShapes(const rendering::XCanvas *,const uno::Reference<rendering::XPolyPolygon2D> &,const rendering::ViewState &,const rendering::RenderState &,const rendering::StrokeAttributes &)149cdf0e10cSrcweir uno::Reference< rendering::XPolyPolygon2D > CanvasHelper::queryStrokeShapes( const rendering::XCanvas* /*pCanvas*/, 150cdf0e10cSrcweir const uno::Reference< rendering::XPolyPolygon2D >& /*xPolyPolygon*/, 151cdf0e10cSrcweir const rendering::ViewState& /*viewState*/, 152cdf0e10cSrcweir const rendering::RenderState& /*renderState*/, 153cdf0e10cSrcweir const rendering::StrokeAttributes& /*strokeAttributes*/ ) 154cdf0e10cSrcweir { 155cdf0e10cSrcweir // TODO 156cdf0e10cSrcweir return uno::Reference< rendering::XPolyPolygon2D >(NULL); 157cdf0e10cSrcweir } 158cdf0e10cSrcweir fillPolyPolygon(const rendering::XCanvas *,const uno::Reference<rendering::XPolyPolygon2D> &,const rendering::ViewState &,const rendering::RenderState &)159cdf0e10cSrcweir uno::Reference< rendering::XCachedPrimitive > CanvasHelper::fillPolyPolygon( const rendering::XCanvas* /*pCanvas*/, 160cdf0e10cSrcweir const uno::Reference< rendering::XPolyPolygon2D >& /*xPolyPolygon*/, 161cdf0e10cSrcweir const rendering::ViewState& /*viewState*/, 162cdf0e10cSrcweir const rendering::RenderState& /*renderState*/ ) 163cdf0e10cSrcweir { 164cdf0e10cSrcweir // TODO(P1): Provide caching here. 165cdf0e10cSrcweir return uno::Reference< rendering::XCachedPrimitive >(NULL); 166cdf0e10cSrcweir } 167cdf0e10cSrcweir fillTexturedPolyPolygon(const rendering::XCanvas *,const uno::Reference<rendering::XPolyPolygon2D> &,const rendering::ViewState &,const rendering::RenderState &,const uno::Sequence<rendering::Texture> &)168cdf0e10cSrcweir uno::Reference< rendering::XCachedPrimitive > CanvasHelper::fillTexturedPolyPolygon( const rendering::XCanvas* /*pCanvas*/, 169cdf0e10cSrcweir const uno::Reference< rendering::XPolyPolygon2D >& /*xPolyPolygon*/, 170cdf0e10cSrcweir const rendering::ViewState& /*viewState*/, 171cdf0e10cSrcweir const rendering::RenderState& /*renderState*/, 172cdf0e10cSrcweir const uno::Sequence< rendering::Texture >& /*textures*/ ) 173cdf0e10cSrcweir { 174cdf0e10cSrcweir // TODO(P1): Provide caching here. 175cdf0e10cSrcweir return uno::Reference< rendering::XCachedPrimitive >(NULL); 176cdf0e10cSrcweir } 177cdf0e10cSrcweir fillTextureMappedPolyPolygon(const rendering::XCanvas *,const uno::Reference<rendering::XPolyPolygon2D> &,const rendering::ViewState &,const rendering::RenderState &,const uno::Sequence<rendering::Texture> &,const uno::Reference<geometry::XMapping2D> &)178cdf0e10cSrcweir uno::Reference< rendering::XCachedPrimitive > CanvasHelper::fillTextureMappedPolyPolygon( const rendering::XCanvas* /*pCanvas*/, 179cdf0e10cSrcweir const uno::Reference< rendering::XPolyPolygon2D >& /*xPolyPolygon*/, 180cdf0e10cSrcweir const rendering::ViewState& /*viewState*/, 181cdf0e10cSrcweir const rendering::RenderState& /*renderState*/, 182cdf0e10cSrcweir const uno::Sequence< rendering::Texture >& /*textures*/, 183cdf0e10cSrcweir const uno::Reference< geometry::XMapping2D >& /*xMapping*/ ) 184cdf0e10cSrcweir { 185cdf0e10cSrcweir // TODO 186cdf0e10cSrcweir return uno::Reference< rendering::XCachedPrimitive >(NULL); 187cdf0e10cSrcweir } 188cdf0e10cSrcweir createFont(const rendering::XCanvas *,const rendering::FontRequest & fontRequest,const uno::Sequence<beans::PropertyValue> & extraFontProperties,const geometry::Matrix2D & fontMatrix)189cdf0e10cSrcweir uno::Reference< rendering::XCanvasFont > CanvasHelper::createFont( const rendering::XCanvas* /*pCanvas*/, 190cdf0e10cSrcweir const rendering::FontRequest& fontRequest, 191cdf0e10cSrcweir const uno::Sequence< beans::PropertyValue >& extraFontProperties, 192cdf0e10cSrcweir const geometry::Matrix2D& fontMatrix ) 193cdf0e10cSrcweir { 194cdf0e10cSrcweir return uno::Reference< rendering::XCanvasFont >( 195cdf0e10cSrcweir new CanvasFont(fontRequest, extraFontProperties, fontMatrix ) ); 196cdf0e10cSrcweir } 197cdf0e10cSrcweir queryAvailableFonts(const rendering::XCanvas *,const rendering::FontInfo &,const uno::Sequence<beans::PropertyValue> &)198cdf0e10cSrcweir uno::Sequence< rendering::FontInfo > CanvasHelper::queryAvailableFonts( const rendering::XCanvas* /*pCanvas*/, 199cdf0e10cSrcweir const rendering::FontInfo& /*aFilter*/, 200cdf0e10cSrcweir const uno::Sequence< beans::PropertyValue >& /*aFontProperties*/ ) 201cdf0e10cSrcweir { 202cdf0e10cSrcweir // TODO 203cdf0e10cSrcweir return uno::Sequence< rendering::FontInfo >(); 204cdf0e10cSrcweir } 205cdf0e10cSrcweir drawText(const rendering::XCanvas *,const rendering::StringContext &,const uno::Reference<rendering::XCanvasFont> &,const rendering::ViewState &,const rendering::RenderState &,sal_Int8)206cdf0e10cSrcweir uno::Reference< rendering::XCachedPrimitive > CanvasHelper::drawText( const rendering::XCanvas* /*pCanvas*/, 207cdf0e10cSrcweir const rendering::StringContext& /*text*/, 208cdf0e10cSrcweir const uno::Reference< rendering::XCanvasFont >& /*xFont*/, 209cdf0e10cSrcweir const rendering::ViewState& /*viewState*/, 210cdf0e10cSrcweir const rendering::RenderState& /*renderState*/, 211cdf0e10cSrcweir sal_Int8 /*textDirection*/ ) 212cdf0e10cSrcweir { 213cdf0e10cSrcweir return uno::Reference< rendering::XCachedPrimitive >(NULL); 214cdf0e10cSrcweir } 215cdf0e10cSrcweir drawTextLayout(const rendering::XCanvas *,const uno::Reference<rendering::XTextLayout> & xLayoutetText,const rendering::ViewState & viewState,const rendering::RenderState & renderState)216cdf0e10cSrcweir uno::Reference< rendering::XCachedPrimitive > CanvasHelper::drawTextLayout( const rendering::XCanvas* /*pCanvas*/, 217cdf0e10cSrcweir const uno::Reference< rendering::XTextLayout >& xLayoutetText, 218cdf0e10cSrcweir const rendering::ViewState& viewState, 219cdf0e10cSrcweir const rendering::RenderState& renderState ) 220cdf0e10cSrcweir { 221cdf0e10cSrcweir ENSURE_OR_THROW( xLayoutetText.is(), 222cdf0e10cSrcweir "CanvasHelper::drawTextLayout: layout is NULL"); 223cdf0e10cSrcweir 224cdf0e10cSrcweir TextLayout* pTextLayout = 225cdf0e10cSrcweir dynamic_cast< TextLayout* >( xLayoutetText.get() ); 226cdf0e10cSrcweir 227cdf0e10cSrcweir ENSURE_OR_THROW( pTextLayout, 228cdf0e10cSrcweir "CanvasHelper::drawTextLayout(): TextLayout not compatible with this canvas" ); 229cdf0e10cSrcweir 230cdf0e10cSrcweir pTextLayout->draw( viewState, 231cdf0e10cSrcweir renderState, 232cdf0e10cSrcweir mpDevice ); 233cdf0e10cSrcweir 234cdf0e10cSrcweir return uno::Reference< rendering::XCachedPrimitive >(NULL); 235cdf0e10cSrcweir } 236cdf0e10cSrcweir drawBitmap(const rendering::XCanvas *,const uno::Reference<rendering::XBitmap> &,const rendering::ViewState &,const rendering::RenderState &)237cdf0e10cSrcweir uno::Reference< rendering::XCachedPrimitive > CanvasHelper::drawBitmap( const rendering::XCanvas* /*pCanvas*/, 238cdf0e10cSrcweir const uno::Reference< rendering::XBitmap >& /*xBitmap*/, 239cdf0e10cSrcweir const rendering::ViewState& /*viewState*/, 240cdf0e10cSrcweir const rendering::RenderState& /*renderState*/ ) 241cdf0e10cSrcweir { 242cdf0e10cSrcweir // TODO(P1): Provide caching here. 243cdf0e10cSrcweir return uno::Reference< rendering::XCachedPrimitive >(NULL); 244cdf0e10cSrcweir } 245cdf0e10cSrcweir drawBitmapModulated(const rendering::XCanvas *,const uno::Reference<rendering::XBitmap> &,const rendering::ViewState &,const rendering::RenderState &)246cdf0e10cSrcweir uno::Reference< rendering::XCachedPrimitive > CanvasHelper::drawBitmapModulated( const rendering::XCanvas* /*pCanvas*/, 247cdf0e10cSrcweir const uno::Reference< rendering::XBitmap >& /*xBitmap*/, 248cdf0e10cSrcweir const rendering::ViewState& /*viewState*/, 249cdf0e10cSrcweir const rendering::RenderState& /*renderState*/ ) 250cdf0e10cSrcweir { 251cdf0e10cSrcweir // TODO(P1): Provide caching here. 252cdf0e10cSrcweir return uno::Reference< rendering::XCachedPrimitive >(NULL); 253cdf0e10cSrcweir } 254cdf0e10cSrcweir getDevice()255cdf0e10cSrcweir uno::Reference< rendering::XGraphicDevice > CanvasHelper::getDevice() 256cdf0e10cSrcweir { 257cdf0e10cSrcweir return uno::Reference< rendering::XGraphicDevice >(mpDevice); 258cdf0e10cSrcweir } 259cdf0e10cSrcweir copyRect(const rendering::XCanvas *,const uno::Reference<rendering::XBitmapCanvas> &,const geometry::RealRectangle2D &,const rendering::ViewState &,const rendering::RenderState &,const geometry::RealRectangle2D &,const rendering::ViewState &,const rendering::RenderState &)260cdf0e10cSrcweir void CanvasHelper::copyRect( const rendering::XCanvas* /*pCanvas*/, 261cdf0e10cSrcweir const uno::Reference< rendering::XBitmapCanvas >& /*sourceCanvas*/, 262cdf0e10cSrcweir const geometry::RealRectangle2D& /*sourceRect*/, 263cdf0e10cSrcweir const rendering::ViewState& /*sourceViewState*/, 264cdf0e10cSrcweir const rendering::RenderState& /*sourceRenderState*/, 265cdf0e10cSrcweir const geometry::RealRectangle2D& /*destRect*/, 266cdf0e10cSrcweir const rendering::ViewState& /*destViewState*/, 267cdf0e10cSrcweir const rendering::RenderState& /*destRenderState*/ ) 268cdf0e10cSrcweir { 269cdf0e10cSrcweir // TODO(F2): copyRect NYI 270cdf0e10cSrcweir } 271cdf0e10cSrcweir getSize()272cdf0e10cSrcweir geometry::IntegerSize2D CanvasHelper::getSize() 273cdf0e10cSrcweir { 274cdf0e10cSrcweir if( !mpDevice ) 275cdf0e10cSrcweir geometry::IntegerSize2D(1, 1); // we're disposed 276cdf0e10cSrcweir 277cdf0e10cSrcweir return ::basegfx::unotools::integerSize2DFromB2ISize( maSize ); 278cdf0e10cSrcweir } 279cdf0e10cSrcweir getScaledBitmap(const geometry::RealSize2D &,sal_Bool)280cdf0e10cSrcweir uno::Reference< rendering::XBitmap > CanvasHelper::getScaledBitmap( const geometry::RealSize2D& /*newSize*/, 281cdf0e10cSrcweir sal_Bool /*beFast*/ ) 282cdf0e10cSrcweir { 283cdf0e10cSrcweir // TODO(F1): 284cdf0e10cSrcweir return uno::Reference< rendering::XBitmap >(); 285cdf0e10cSrcweir } 286cdf0e10cSrcweir getData(rendering::IntegerBitmapLayout &,const geometry::IntegerRectangle2D &)287cdf0e10cSrcweir uno::Sequence< sal_Int8 > CanvasHelper::getData( rendering::IntegerBitmapLayout& /*bitmapLayout*/, 288cdf0e10cSrcweir const geometry::IntegerRectangle2D& /*rect*/ ) 289cdf0e10cSrcweir { 290cdf0e10cSrcweir // TODO 291cdf0e10cSrcweir return uno::Sequence< sal_Int8 >(); 292cdf0e10cSrcweir } 293cdf0e10cSrcweir setData(const uno::Sequence<sal_Int8> &,const rendering::IntegerBitmapLayout &,const geometry::IntegerRectangle2D &)294cdf0e10cSrcweir void CanvasHelper::setData( const uno::Sequence< sal_Int8 >& /*data*/, 295cdf0e10cSrcweir const rendering::IntegerBitmapLayout& /*bitmapLayout*/, 296cdf0e10cSrcweir const geometry::IntegerRectangle2D& /*rect*/ ) 297cdf0e10cSrcweir { 298cdf0e10cSrcweir } 299cdf0e10cSrcweir setPixel(const uno::Sequence<sal_Int8> &,const rendering::IntegerBitmapLayout &,const geometry::IntegerPoint2D &)300cdf0e10cSrcweir void CanvasHelper::setPixel( const uno::Sequence< sal_Int8 >& /*color*/, 301cdf0e10cSrcweir const rendering::IntegerBitmapLayout& /*bitmapLayout*/, 302cdf0e10cSrcweir const geometry::IntegerPoint2D& /*pos*/ ) 303cdf0e10cSrcweir { 304cdf0e10cSrcweir } 305cdf0e10cSrcweir getPixel(rendering::IntegerBitmapLayout &,const geometry::IntegerPoint2D &)306cdf0e10cSrcweir uno::Sequence< sal_Int8 > CanvasHelper::getPixel( rendering::IntegerBitmapLayout& /*bitmapLayout*/, 307cdf0e10cSrcweir const geometry::IntegerPoint2D& /*pos*/ ) 308cdf0e10cSrcweir { 309cdf0e10cSrcweir return uno::Sequence< sal_Int8 >(); 310cdf0e10cSrcweir } 311cdf0e10cSrcweir getPalette()312cdf0e10cSrcweir uno::Reference< rendering::XBitmapPalette > CanvasHelper::getPalette() 313cdf0e10cSrcweir { 314cdf0e10cSrcweir // TODO(F1): Palette bitmaps NYI 315cdf0e10cSrcweir return uno::Reference< rendering::XBitmapPalette >(); 316cdf0e10cSrcweir } 317cdf0e10cSrcweir getMemoryLayout()318cdf0e10cSrcweir rendering::IntegerBitmapLayout CanvasHelper::getMemoryLayout() 319cdf0e10cSrcweir { 320cdf0e10cSrcweir return ::canvas::tools::getStdMemoryLayout(getSize()); 321cdf0e10cSrcweir } 322cdf0e10cSrcweir flush() const323cdf0e10cSrcweir void CanvasHelper::flush() const 324cdf0e10cSrcweir { 325cdf0e10cSrcweir } 326cdf0e10cSrcweir hasAlpha() const327cdf0e10cSrcweir bool CanvasHelper::hasAlpha() const 328cdf0e10cSrcweir { 329cdf0e10cSrcweir return mbHaveAlpha; 330cdf0e10cSrcweir } 331cdf0e10cSrcweir 332cdf0e10cSrcweir } 333