Kaydet (Commit) 18732475 authored tarafından Katarina Behrens's avatar Katarina Behrens Kaydeden (comit) Thorsten Behrens

kde5: add cairo surface to KDE5SalFrames

Change-Id: I0778ecffe5dbc5fdfe24705d37511e197a4a1ce4
üst c375c585
...@@ -52,6 +52,7 @@ $(eval $(call gb_Library_use_libraries,vclplug_kde5,\ ...@@ -52,6 +52,7 @@ $(eval $(call gb_Library_use_libraries,vclplug_kde5,\
$(eval $(call gb_Library_use_externals,vclplug_kde5,\ $(eval $(call gb_Library_use_externals,vclplug_kde5,\
boost_headers \ boost_headers \
cairo \
icuuc \ icuuc \
kde5 \ kde5 \
epoxy \ epoxy \
......
...@@ -340,6 +340,7 @@ void KDE5SalFrame::ReleaseGraphics( SalGraphics *pGraphics ) ...@@ -340,6 +340,7 @@ void KDE5SalFrame::ReleaseGraphics( SalGraphics *pGraphics )
if( m_aGraphics[i].pGraphics.get() == pGraphics ) if( m_aGraphics[i].pGraphics.get() == pGraphics )
{ {
m_aGraphics[i].bInUse = false; m_aGraphics[i].bInUse = false;
cairo_surface_destroy( m_aGraphics[i].pSurface );
break; break;
} }
} }
...@@ -359,6 +360,7 @@ SalGraphics* KDE5SalFrame::AcquireGraphics() ...@@ -359,6 +360,7 @@ SalGraphics* KDE5SalFrame::AcquireGraphics()
{ {
if( GetWindow() ) if( GetWindow() )
{ {
basegfx::B2IVector aSize( 142, 142 );
for( int i = 0; i < nMaxGraphics; i++ ) for( int i = 0; i < nMaxGraphics; i++ )
{ {
if( ! m_aGraphics[i].bInUse ) if( ! m_aGraphics[i].bInUse )
...@@ -367,6 +369,10 @@ SalGraphics* KDE5SalFrame::AcquireGraphics() ...@@ -367,6 +369,10 @@ SalGraphics* KDE5SalFrame::AcquireGraphics()
if( ! m_aGraphics[i].pGraphics ) if( ! m_aGraphics[i].pGraphics )
{ {
m_aGraphics[i].pGraphics.reset( new KDE5SalGraphics( this, m_pWindow ) ); 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() ); //m_aGraphics[i].pGraphics->Init( this, GetWindow(), GetScreenNumber() );
} }
return m_aGraphics[i].pGraphics.get(); return m_aGraphics[i].pGraphics.get();
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#pragma once #pragma once
#include <memory> #include <memory>
#include <cairo.h>
#include <unx/saldisp.hxx> #include <unx/saldisp.hxx>
#include <unx/salframe.h> #include <unx/salframe.h>
...@@ -39,8 +40,9 @@ class KDE5SalFrame : public SalFrame ...@@ -39,8 +40,9 @@ class KDE5SalFrame : public SalFrame
{ {
std::unique_ptr<KDE5SalGraphics> pGraphics; std::unique_ptr<KDE5SalGraphics> pGraphics;
bool bInUse; bool bInUse;
cairo_surface_t* pSurface;
GraphicsHolder() : bInUse( false ) {} GraphicsHolder() : bInUse( false ), pSurface(nullptr) {}
}; };
GraphicsHolder m_aGraphics[ nMaxGraphics ]; GraphicsHolder m_aGraphics[ nMaxGraphics ];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment