diff options
author | Caolán McNamara <caolanm@redhat.com> | 2017-02-07 16:17:02 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2017-02-07 16:41:51 +0000 |
commit | 555e1ff4cc84682ea73f9976f8e3c6f1d0f22590 (patch) | |
tree | c6e071aaf02b08ec2db90407a3ede837959d4ce8 /vcl/inc | |
parent | f9d0f55b2eefc1107d238774a00f7062a1e0d5c8 (diff) |
bubble the original gtk surface type through rendering
this may make scrolling a tad faster
Change-Id: I0c2cc9df85932e25dbfed88727d3b83d299671c7
Diffstat (limited to 'vcl/inc')
-rw-r--r-- | vcl/inc/headless/svpgdi.hxx | 5 | ||||
-rw-r--r-- | vcl/inc/headless/svpvd.hxx | 1 | ||||
-rw-r--r-- | vcl/inc/unx/gtk/gtkframe.hxx | 2 |
3 files changed, 7 insertions, 1 deletions
diff --git a/vcl/inc/headless/svpgdi.hxx b/vcl/inc/headless/svpgdi.hxx index 808347401d2c..5673706b7eb6 100644 --- a/vcl/inc/headless/svpgdi.hxx +++ b/vcl/inc/headless/svpgdi.hxx @@ -80,6 +80,7 @@ struct VCL_DLLPUBLIC DamageHandler class VCL_DLLPUBLIC SvpSalGraphics : public SalGraphics { cairo_surface_t* m_pSurface; + basegfx::B2IVector m_aFrameSize; double m_fScale; SalColor m_aLineColor; SalColor m_aFillColor; @@ -87,7 +88,7 @@ class VCL_DLLPUBLIC SvpSalGraphics : public SalGraphics public: static GlyphCache& getPlatformGlyphCache(); - void setSurface(cairo_surface_t* pSurface); + void setSurface(cairo_surface_t* pSurface, const basegfx::B2IVector& rSize); static cairo_user_data_key_t* getDamageKey(); private: @@ -115,6 +116,8 @@ protected: const SalBitmap* pAlphaBitmap) override; virtual bool drawAlphaRect( long nX, long nY, long nWidth, long nHeight, sal_uInt8 nTransparency ) override; + cairo_t* createTmpCompatibleCairoContext() const; + public: SvpSalGraphics(); virtual ~SvpSalGraphics() override; diff --git a/vcl/inc/headless/svpvd.hxx b/vcl/inc/headless/svpvd.hxx index 882f36d6fc37..7ac156305abd 100644 --- a/vcl/inc/headless/svpvd.hxx +++ b/vcl/inc/headless/svpvd.hxx @@ -31,6 +31,7 @@ class VCL_DLLPUBLIC SvpSalVirtualDevice : public SalVirtualDevice { DeviceFormat m_eFormat; cairo_surface_t* m_pSurface; + basegfx::B2IVector m_aFrameSize; double m_fScale; std::list< SvpSalGraphics* > m_aGraphics; diff --git a/vcl/inc/unx/gtk/gtkframe.hxx b/vcl/inc/unx/gtk/gtkframe.hxx index a0c86b3cb085..51977c25acbe 100644 --- a/vcl/inc/unx/gtk/gtkframe.hxx +++ b/vcl/inc/unx/gtk/gtkframe.hxx @@ -246,6 +246,7 @@ class GtkSalFrame : public SalFrame #endif #if GTK_CHECK_VERSION(3,0,0) static gboolean signalDraw( GtkWidget*, cairo_t *cr, gpointer ); + static void signalRealize(GtkWidget*, gpointer frame); static void sizeAllocated(GtkWidget*, GdkRectangle *pAllocation, gpointer frame); static gboolean signalTooltipQuery(GtkWidget*, gint x, gint y, gboolean keyboard_mode, GtkTooltip *tooltip, @@ -346,6 +347,7 @@ class GtkSalFrame : public SalFrame public: #if GTK_CHECK_VERSION(3,0,0) cairo_surface_t* m_pSurface; + basegfx::B2IVector m_aFrameSize; DamageHandler m_aDamageHandler; int m_nGrabLevel; bool m_bSalObjectSetPosSize; |