diff options
author | Katarina Behrens <Katarina.Behrens@cib.de> | 2017-09-29 17:26:26 +0200 |
---|---|---|
committer | Thorsten Behrens <Thorsten.Behrens@CIB.de> | 2017-10-25 03:23:17 +0200 |
commit | 187324751d27dcc96c5e2cc17ad9bc38bc7d8480 (patch) | |
tree | 699d0b5fb413b1c2cc0a206bef6fa4ad76bf82bb /vcl/unx | |
parent | c375c585142ba7636e9a21c0249365f75224ecc1 (diff) |
kde5: add cairo surface to KDE5SalFrames
Change-Id: I0778ecffe5dbc5fdfe24705d37511e197a4a1ce4
Diffstat (limited to 'vcl/unx')
-rw-r--r-- | vcl/unx/kde5/KDE5SalFrame.cxx | 6 | ||||
-rw-r--r-- | vcl/unx/kde5/KDE5SalFrame.hxx | 4 |
2 files changed, 9 insertions, 1 deletions
diff --git a/vcl/unx/kde5/KDE5SalFrame.cxx b/vcl/unx/kde5/KDE5SalFrame.cxx index 1cdc503ff4f8..1e405ef629d1 100644 --- a/vcl/unx/kde5/KDE5SalFrame.cxx +++ b/vcl/unx/kde5/KDE5SalFrame.cxx @@ -340,6 +340,7 @@ void KDE5SalFrame::ReleaseGraphics( SalGraphics *pGraphics ) if( m_aGraphics[i].pGraphics.get() == pGraphics ) { m_aGraphics[i].bInUse = false; + cairo_surface_destroy( m_aGraphics[i].pSurface ); break; } } @@ -359,6 +360,7 @@ SalGraphics* KDE5SalFrame::AcquireGraphics() { if( GetWindow() ) { + basegfx::B2IVector aSize( 142, 142 ); for( int i = 0; i < nMaxGraphics; i++ ) { if( ! m_aGraphics[i].bInUse ) @@ -367,6 +369,10 @@ SalGraphics* KDE5SalFrame::AcquireGraphics() if( ! m_aGraphics[i].pGraphics ) { m_aGraphics[i].pGraphics.reset( new KDE5SalGraphics( this, m_pWindow ) ); + + //FIXME: those parameters are completely arbitrary, IDK what the right ones should be yet + m_aGraphics[i].pSurface = cairo_image_surface_create( CAIRO_FORMAT_ARGB32, aSize.getX(), aSize.getY() ); + m_aGraphics[i].pGraphics->setSurface( m_aGraphics[i].pSurface, aSize ); //m_aGraphics[i].pGraphics->Init( this, GetWindow(), GetScreenNumber() ); } return m_aGraphics[i].pGraphics.get(); diff --git a/vcl/unx/kde5/KDE5SalFrame.hxx b/vcl/unx/kde5/KDE5SalFrame.hxx index 7d0fa51d2eb6..ab98ee933c2a 100644 --- a/vcl/unx/kde5/KDE5SalFrame.hxx +++ b/vcl/unx/kde5/KDE5SalFrame.hxx @@ -20,6 +20,7 @@ #pragma once #include <memory> +#include <cairo.h> #include <unx/saldisp.hxx> #include <unx/salframe.h> @@ -39,8 +40,9 @@ class KDE5SalFrame : public SalFrame { std::unique_ptr<KDE5SalGraphics> pGraphics; bool bInUse; + cairo_surface_t* pSurface; - GraphicsHolder() : bInUse( false ) {} + GraphicsHolder() : bInUse( false ), pSurface(nullptr) {} }; GraphicsHolder m_aGraphics[ nMaxGraphics ]; |