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 .
34 virtual ~ISurface() {}
36 /** Select texture behind this interface to be the current one
39 virtual bool selectTexture() = 0;
41 /** Tells whether the surface is valid or not
43 virtual bool isValid() = 0;
45 /** Update surface content from given IColorBuffer
47 This method updates the given subarea of the surface from
48 the given color buffer bits.
51 Position in the surface, where the subset update should
52 have its left, top edge
55 Size and position of the rectangular subset update in the
59 Source bits to use for the update
61 @return true, if the update was successful
63 virtual bool update( const ::basegfx::B2IPoint
& rDestPos
,
64 const ::basegfx::B2IRange
& rSourceRect
,
65 IColorBuffer
& rSource
) = 0;
69 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */