summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2022-08-30 07:58:16 +0200
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2022-08-30 07:58:16 +0200
commit95c851fda10d5305082619dc977f63aa5df0929b (patch)
treebcae487be80a33839f01ef388890764e09e04060
parent510f71151325da461af7bc49a3c42b25598ee99f (diff)
Set Fl_Graphics_Driver::set_color(Fl_Color, unsigned) used by macOS, Wayland and display-cairo.
-rw-r--r--src/Fl_Graphics_Driver.cxx6
-rw-r--r--src/drivers/Quartz/Fl_Quartz_Graphics_Driver.H1
-rw-r--r--src/drivers/Quartz/Fl_Quartz_Graphics_Driver_color.cxx7
-rw-r--r--src/drivers/Wayland/Fl_Wayland_Graphics_Driver.H3
-rw-r--r--src/drivers/Wayland/Fl_Wayland_Graphics_Driver.cxx8
5 files changed, 6 insertions, 19 deletions
diff --git a/src/Fl_Graphics_Driver.cxx b/src/Fl_Graphics_Driver.cxx
index 76575d1df..5ba7853e0 100644
--- a/src/Fl_Graphics_Driver.cxx
+++ b/src/Fl_Graphics_Driver.cxx
@@ -38,6 +38,8 @@ const Fl_Graphics_Driver::matrix Fl_Graphics_Driver::m0 = {1, 0, 0, 1, 0, 0};
/** Used by the Windows platform to print Fl_Pixmap objects. */
unsigned Fl_Graphics_Driver::need_pixmap_bg_color = 0;
+extern unsigned fl_cmap[256]; // defined in fl_color.cxx
+
/** Constructor */
Fl_Graphics_Driver::Fl_Graphics_Driver()
{
@@ -135,7 +137,9 @@ void Fl_Graphics_Driver::global_gc()
/** see Fl::set_color(Fl_Color, unsigned) */
void Fl_Graphics_Driver::set_color(Fl_Color i, unsigned c)
{
- // nothing to do, reimplement in driver if needed
+ if (fl_cmap[i] != c) {
+ fl_cmap[i] = c;
+ }
}
diff --git a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.H b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.H
index b073d633a..945ba4a78 100644
--- a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.H
+++ b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.H
@@ -116,7 +116,6 @@ protected:
void pie(int x, int y, int w, int h, double a1, double a2);
void line_style(int style, int width=0, char* dashes=0);
void color(Fl_Color c);
- void set_color(Fl_Color i, unsigned int c);
Fl_Color color() { return color_; }
void color(uchar r, uchar g, uchar b);
void draw(const char *str, int n, int x, int y);
diff --git a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_color.cxx b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_color.cxx
index 8d826e8fb..a4cb37d73 100644
--- a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_color.cxx
+++ b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_color.cxx
@@ -63,10 +63,3 @@ void Fl_Quartz_Graphics_Driver::color(uchar r, uchar g, uchar b) {
CGContextSetRGBFillColor(gc_, fr, fg, fb, 1.0f);
CGContextSetRGBStrokeColor(gc_, fr, fg, fb, 1.0f);
}
-
-// FIXME: this function should not be here! It's not part of the driver.
-void Fl_Quartz_Graphics_Driver::set_color(Fl_Color i, unsigned c) {
- if (fl_cmap[i] != c) {
- fl_cmap[i] = c;
- }
-}
diff --git a/src/drivers/Wayland/Fl_Wayland_Graphics_Driver.H b/src/drivers/Wayland/Fl_Wayland_Graphics_Driver.H
index cb8d12859..9b2edba2a 100644
--- a/src/drivers/Wayland/Fl_Wayland_Graphics_Driver.H
+++ b/src/drivers/Wayland/Fl_Wayland_Graphics_Driver.H
@@ -75,8 +75,7 @@ public:
Fl_Wayland_Graphics_Driver();
static const uint32_t wld_format;
void set_buffer(struct fl_wld_buffer *buffer, float scale = 0);
- void set_color(Fl_Color i, unsigned c);
- void copy_offscreen(int x, int y, int w, int h, Fl_Offscreen osrc, int srcx, int srcy);
+ virtual void copy_offscreen(int x, int y, int w, int h, Fl_Offscreen osrc, int srcx, int srcy);
static struct fl_wld_buffer *create_shm_buffer(int width, int height);
static void buffer_release(struct wld_window *window);
static void buffer_commit(struct wld_window *window, const struct wl_callback_listener*);
diff --git a/src/drivers/Wayland/Fl_Wayland_Graphics_Driver.cxx b/src/drivers/Wayland/Fl_Wayland_Graphics_Driver.cxx
index 986d25ddf..031c44e40 100644
--- a/src/drivers/Wayland/Fl_Wayland_Graphics_Driver.cxx
+++ b/src/drivers/Wayland/Fl_Wayland_Graphics_Driver.cxx
@@ -28,7 +28,6 @@
#include <errno.h>
#include <string.h> // for strerror()
-extern unsigned fl_cmap[256]; // defined in fl_color.cxx
extern "C" {
int os_create_anonymous_file(off_t); // in libdecor
@@ -142,13 +141,6 @@ void Fl_Wayland_Graphics_Driver::set_buffer(struct fl_wld_buffer *buffer, float
}
-void Fl_Wayland_Graphics_Driver::set_color(Fl_Color i, unsigned c) {
- if (fl_cmap[i] != c) {
- fl_cmap[i] = c;
- }
-}
-
-
void Fl_Wayland_Graphics_Driver::copy_offscreen(int x, int y, int w, int h, Fl_Offscreen src, int srcx, int srcy) {
// draw portion srcx,srcy,w,h of osrc to position x,y (top-left) of the graphics driver's surface
struct fl_wld_buffer *osrc = (struct fl_wld_buffer *)src;