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/.
10 #ifndef INCLUDED_VCL_INC_WIN_WINGDIIMPL_HXX
11 #define INCLUDED_VCL_INC_WIN_WINGDIIMPL_HXX
13 #include <win/salgdi.h>
14 #include <ControlCacheKey.hxx>
16 class ControlCacheKey
;
18 // Base class for some functionality that OpenGL/Skia/GDI backends must each implement.
19 class WinSalGraphicsImplBase
22 virtual ~WinSalGraphicsImplBase(){};
24 // If true is returned, the following functions are used for drawing controls.
25 virtual bool UseRenderNativeControl() const { return false; }
26 virtual bool TryRenderCachedNativeControl(const ControlCacheKey
& /*rControlCacheKey*/,
27 int /*nX*/, int /*nY*/)
31 virtual bool RenderAndCacheNativeControl(CompatibleDC
& /*rWhite*/, CompatibleDC
& /*rBlack*/,
32 int /*nX*/, int /*nY*/,
33 ControlCacheKey
& /*aControlCacheKey*/)
38 virtual void ClearDevFontCache(){};
40 virtual void Flush(){};
42 // Implementation for WinSalGraphics::DrawTextLayout().
43 // Returns true if handled, if false, then WinSalGraphics will handle it itself.
44 virtual bool DrawTextLayout(const GenericSalLayout
&) { return false; }
47 #endif // INCLUDED_VCL_INC_WIN_WINGDIIMPL_HXX
49 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */