Branch libreoffice-5-0-4
[LibreOffice.git] / vcl / inc / opengl / x11 / gdiimpl.hxx
blob19804a8aff17980ae7a197606b8c896e78848ab0
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
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/.
8 */
10 #ifndef INCLUDED_VCL_INC_OPENGL_X11_GDIIMPL_HXX
11 #define INCLUDED_VCL_INC_OPENGL_X11_GDIIMPL_HXX
13 #include <vcl/dllapi.h>
15 #include "unx/salgdi.h"
16 #include "unx/x11/x11gdiimpl.h"
17 #include "openglgdiimpl.hxx"
19 struct TextureCombo;
21 class VCL_PLUGIN_PUBLIC X11OpenGLSalGraphicsImpl : public OpenGLSalGraphicsImpl, public X11GraphicsImpl
23 private:
24 X11SalGraphics& mrParent;
26 public:
27 X11OpenGLSalGraphicsImpl( X11SalGraphics& rParent );
28 virtual ~X11OpenGLSalGraphicsImpl();
30 protected:
31 virtual rtl::Reference<OpenGLContext> CreateWinContext() SAL_OVERRIDE;
32 virtual bool UseContext( const rtl::Reference<OpenGLContext> &pContext ) SAL_OVERRIDE;
34 bool RenderPixmap(X11Pixmap* pPixmap, X11Pixmap* pMask, int nX, int nY, TextureCombo& rCombo);
36 public:
37 // implementation of X11GraphicsImpl
39 virtual void copyBits( const SalTwoRect& rPosAry, SalGraphics* pSrcGraphics ) SAL_OVERRIDE;
41 virtual void Init() SAL_OVERRIDE;
43 bool FillPixmapFromScreen( X11Pixmap* pPixmap, int nX, int nY ) SAL_OVERRIDE;
44 bool RenderPixmapToScreen(X11Pixmap* pPixmap, X11Pixmap* pMask, int nX, int nY) SAL_OVERRIDE;
46 bool RenderAndCacheNativeControl(X11Pixmap* pPixmap, X11Pixmap* pMask, int nX, int nY,
47 ControlCacheKey& aControlCacheKey) SAL_OVERRIDE;
48 bool TryRenderCachedNativeControl(ControlCacheKey& rControlCacheKey,
49 int nX, int nY) SAL_OVERRIDE;
52 #endif // INCLUDED_VCL_INC_OPENGL_X11_GDIIMPL_HXX
54 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */