FLTK logo

[master] 6194b73 - Add a few missing virtual members to Fl_Cairo_Graphics_Driver.

FLTK matrix user chat room
(using Element browser app)   FLTK gitter user chat room   GitHub FLTK Project   FLTK News RSS Feed  
  FLTK Apps      FLTK Library      Forums      Links     Login 
 All Forums  |  Back to fltk.commit  ]
 
Previous Message ]Next Message ]

[master] 6194b73 - Add a few missing virtual members to Fl_Cairo_Graphics_Driver. "ManoloFLTK" Aug 18, 2022  
 
commit 6194b736eb07400233687757c3fb572706614840
Author:     ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>
AuthorDate: Thu Aug 18 16:22:28 2022 +0200
Commit:     ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>
CommitDate: Thu Aug 18 16:22:28 2022 +0200

    Add a few missing virtual members to Fl_Cairo_Graphics_Driver.

 src/drivers/Cairo/Fl_Cairo_Graphics_Driver.H   |  5 ++++
 src/drivers/Cairo/Fl_Cairo_Graphics_Driver.cxx | 34 ++++++++++++++++++++++++++
 2 files changed, 39 insertions(+)

diff --git src/drivers/Cairo/Fl_Cairo_Graphics_Driver.H src/drivers/Cairo/Fl_Cairo_Graphics_Driver.H
index 547f63f..84c2f1a 100644
--- src/drivers/Cairo/Fl_Cairo_Graphics_Driver.H
+++ src/drivers/Cairo/Fl_Cairo_Graphics_Driver.H
@@ -188,6 +188,11 @@ public:
   virtual void XDestroyRegion(Fl_Region r);
   virtual void add_rectangle_to_region(Fl_Region r, int X, int Y, int W, int H);
   virtual void cache_size(Fl_Image *img, int &width, int &height);
+  virtual char can_do_alpha_blending();
+  virtual float override_scale();
+  virtual void restore_scale(float);
+  virtual void antialias(int state);
+  virtual int antialias();
 };
 
 #endif // FL_CAIRO_GRAPHICS_DRIVER_H
diff --git src/drivers/Cairo/Fl_Cairo_Graphics_Driver.cxx src/drivers/Cairo/Fl_Cairo_Graphics_Driver.cxx
index 72a21c4..ea651cf 100644
--- src/drivers/Cairo/Fl_Cairo_Graphics_Driver.cxx
+++ src/drivers/Cairo/Fl_Cairo_Graphics_Driver.cxx
@@ -22,6 +22,7 @@
 #if USE_PANGO
 
 #include "Fl_Cairo_Graphics_Driver.H"
+#include "../../Fl_Screen_Driver.H"
 #include <FL/platform.H>
 #include <FL/fl_draw.H>
 #include <cairo/cairo.h>
@@ -1306,4 +1307,37 @@ void Fl_Cairo_Graphics_Driver::cache_size(Fl_Image *unused, int &width, int &hei
   height *= matrix.xx;
 }
 
+
+char Fl_Cairo_Graphics_Driver::can_do_alpha_blending() {
+  return 1;
+}
+
+
+float Fl_Cairo_Graphics_Driver::override_scale() {
+  float s = scale();
+  if (s != 1.f && Fl_Display_Device::display_device()->is_current()) {
+    Fl::screen_driver()->scale(0, 1.f);
+    cairo_scale(cairo_, 1/s, 1/s);
+  }
+  return s;
+}
+
+
+void Fl_Cairo_Graphics_Driver::restore_scale(float s) {
+  if (s != 1.f && Fl_Display_Device::display_device()->is_current()) {
+    Fl::screen_driver()->scale(0, s);
+    cairo_scale(cairo_, s, s);
+  }
+}
+
+
+void Fl_Cairo_Graphics_Driver::antialias(int state) {
+  cairo_set_antialias(cairo_, state ? CAIRO_ANTIALIAS_DEFAULT : CAIRO_ANTIALIAS_NONE);
+}
+
+
+int Fl_Cairo_Graphics_Driver::antialias() {
+  return (cairo_get_antialias(cairo_) != CAIRO_ANTIALIAS_NONE);
+}
+
 #endif // USE_PANGO
Direct Link to Message ]
 
     
Previous Message ]Next Message ]
 
 

Comments are owned by the poster. All other content is copyright 1998-2024 by Bill Spitzak and others. This project is hosted by The FLTK Team. Please report site problems to 'erco@seriss.com'.