summaryrefslogtreecommitdiff
path: root/vcl/headless/svpvd.cxx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2017-02-07 16:17:02 +0000
committerCaolán McNamara <caolanm@redhat.com>2017-02-07 16:41:51 +0000
commit555e1ff4cc84682ea73f9976f8e3c6f1d0f22590 (patch)
treec6e071aaf02b08ec2db90407a3ede837959d4ce8 /vcl/headless/svpvd.cxx
parentf9d0f55b2eefc1107d238774a00f7062a1e0d5c8 (diff)
bubble the original gtk surface type through rendering
this may make scrolling a tad faster Change-Id: I0c2cc9df85932e25dbfed88727d3b83d299671c7
Diffstat (limited to 'vcl/headless/svpvd.cxx')
-rw-r--r--vcl/headless/svpvd.cxx21
1 files changed, 11 insertions, 10 deletions
diff --git a/vcl/headless/svpvd.cxx b/vcl/headless/svpvd.cxx
index ca28a5246b46..b5ab755a0d1b 100644
--- a/vcl/headless/svpvd.cxx
+++ b/vcl/headless/svpvd.cxx
@@ -38,7 +38,7 @@ SvpSalVirtualDevice::~SvpSalVirtualDevice()
SalGraphics* SvpSalVirtualDevice::AcquireGraphics()
{
SvpSalGraphics* pGraphics = new SvpSalGraphics();
- pGraphics->setSurface(m_pSurface);
+ pGraphics->setSurface(m_pSurface, m_aFrameSize);
m_aGraphics.push_back( pGraphics );
return pGraphics;
}
@@ -62,12 +62,14 @@ bool SvpSalVirtualDevice::SetSizeUsingBuffer( long nNewDX, long nNewDY,
if (nNewDY == 0)
nNewDY = 1;
- nNewDX *= m_fScale;
- nNewDY *= m_fScale;
-
- if (!m_pSurface || cairo_image_surface_get_width(m_pSurface) != nNewDX ||
- cairo_image_surface_get_height(m_pSurface) != nNewDY )
+ if (!m_pSurface || m_aFrameSize.getX() != nNewDX ||
+ m_aFrameSize.getY() != nNewDY )
{
+ m_aFrameSize = basegfx::B2IVector(nNewDX, nNewDY);
+
+ nNewDX *= m_fScale;
+ nNewDY *= m_fScale;
+
if (m_pSurface)
{
cairo_surface_destroy(m_pSurface);
@@ -96,20 +98,19 @@ bool SvpSalVirtualDevice::SetSizeUsingBuffer( long nNewDX, long nNewDY,
// update device in existing graphics
for( std::list< SvpSalGraphics* >::iterator it = m_aGraphics.begin();
it != m_aGraphics.end(); ++it )
- (*it)->setSurface(m_pSurface);
-
+ (*it)->setSurface(m_pSurface, m_aFrameSize);
}
return true;
}
long SvpSalVirtualDevice::GetWidth() const
{
- return m_pSurface ? cairo_image_surface_get_width(m_pSurface) : 0;
+ return m_pSurface ? m_aFrameSize.getX() : 0;
}
long SvpSalVirtualDevice::GetHeight() const
{
- return m_pSurface ? cairo_image_surface_get_height(m_pSurface) : 0;
+ return m_pSurface ? m_aFrameSize.getY() : 0;
}
#endif