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,\
$(eval $(call gb_Library_use_externals,vclplug_kde5,\
boost_headers \
cairo \
icuuc \
kde5 \
epoxy \
......
......@@ -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();
......
......@@ -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 ];
......
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