1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef INCLUDED_CANVAS_ISURFACE_HXX
21 #define INCLUDED_CANVAS_ISURFACE_HXX
23 #include <sal/types.h>
25 #include <boost/shared_ptr.hpp>
41 virtual ~ISurface() {}
43 /** Select texture behind this interface to be the current one
46 virtual bool selectTexture() = 0;
48 /** Tells whether the surface is valid or not
50 virtual bool isValid() = 0;
52 /** Update surface content from given IColorBuffer
54 This method updates the given subarea of the surface from
55 the given color buffer bits.
58 Position in the surface, where the subset update should
59 have its left, top edge
62 Size and position of the rectangular subset update in the
66 Source bits to use for the update
68 @return true, if the update was successful
70 virtual bool update( const ::basegfx::B2IPoint
& rDestPos
,
71 const ::basegfx::B2IRange
& rSourceRect
,
72 IColorBuffer
& rSource
) = 0;
74 virtual ::basegfx::B2IVector
getSize() = 0;
77 typedef ::boost::shared_ptr
< ISurface
> ISurfaceSharedPtr
;
80 #endif /* INCLUDED_CANVAS_ISURFACE_HXX */
82 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */