summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt2
-rw-r--r--src/Fl_Device.cxx41
-rw-r--r--src/drivers/GDI/Fl_GDI_Graphics_Driver.cxx42
-rw-r--r--src/drivers/Quartz/Fl_Quartz_Display_Device.cxx5
-rw-r--r--src/drivers/Quartz/Fl_Quartz_Graphics_Driver.cxx15
-rw-r--r--src/drivers/Xlib/Fl_Xlib_Graphics_Driver.cxx39
6 files changed, 97 insertions, 47 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 4225b5377..ad0572e3c 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -159,6 +159,7 @@ if (USE_X11)
# X11 (including APPLE with X11)
set(DRIVER_FILES
+ drivers/Xlib/Fl_Xlib_Graphics_Driver.cxx
drivers/Xlib/Fl_Xlib_Graphics_Driver_arci.cxx
drivers/Xlib/Fl_Xlib_Graphics_Driver_color.cxx
drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx
@@ -198,6 +199,7 @@ else ()
# Windows (GDI)
set(DRIVER_FILES
+ drivers/GDI/Fl_GDI_Graphics_Driver.cxx
drivers/GDI/Fl_GDI_Graphics_Driver_arci.cxx
drivers/GDI/Fl_GDI_Graphics_Driver_color.cxx
drivers/GDI/Fl_GDI_Graphics_Driver_font.cxx
diff --git a/src/Fl_Device.cxx b/src/Fl_Device.cxx
index 6701ed68f..efbd0712d 100644
--- a/src/Fl_Device.cxx
+++ b/src/Fl_Device.cxx
@@ -22,36 +22,12 @@
#include <FL/Fl_Image.H>
#include <FL/fl_draw.H>
-#ifdef FL_CFG_GFX_QUARTZ
-#include "drivers/Quartz/Fl_Quartz_Graphics_Driver.h"
-#endif
-
-#if defined(WIN32) || defined(__APPLE__)
-#elif defined(FL_PORTING)
-# pragma message "FL_PORTING: instantiate and implement various device drivers here"
-#else
-#endif
-
const char *Fl_Device::class_id = "Fl_Device";
const char *Fl_Surface_Device::class_id = "Fl_Surface_Device";
const char *Fl_Display_Device::class_id = "Fl_Display_Device";
const char *Fl_Graphics_Driver::class_id = "Fl_Graphics_Driver";
-#if defined(__APPLE__) || defined(FL_DOXYGEN)
-# ifndef FL_DOXYGEN
- bool Fl_Display_Device::high_res_window_ = false;
-# endif
-#endif
-#if defined(WIN32) || defined(FL_DOXYGEN)
-const char *Fl_GDI_Graphics_Driver::class_id = "Fl_GDI_Graphics_Driver";
-const char *Fl_GDI_Printer_Graphics_Driver::class_id = "Fl_GDI_Printer_Graphics_Driver";
-#endif
-#if !(defined(__APPLE__) || defined(WIN32))
-#if defined(FL_PORTING)
-# pragma message "FL_PORTING: instantiate the main graphics driver here"
-#else
-const char *Fl_Xlib_Graphics_Driver::class_id = "Fl_Xlib_Graphics_Driver";
-#endif
-#endif
+
+bool Fl_Display_Device::high_res_window_ = false;
/** \brief Make this surface the current drawing surface.
@@ -103,18 +79,7 @@ Fl_Display_Device::Fl_Display_Device(Fl_Graphics_Driver *graphics_driver) : Fl_S
/** Returns the platform display device. */
Fl_Display_Device *Fl_Display_Device::display_device() {
- static Fl_Display_Device *display = new Fl_Display_Device(new
-#if defined(__APPLE__)
- Fl_Quartz_Graphics_Driver
-#elif defined(WIN32)
- Fl_GDI_Graphics_Driver
-#elif defined(FL_PORTING)
-# pragma message "FL_PORTING: instantiate your display driver here"
- Fl_XXX_Graphics_Driver
-#else
- Fl_Xlib_Graphics_Driver
-#endif
- );
+ static Fl_Display_Device *display = new Fl_Display_Device(Fl_Graphics_Driver::newMainGraphicsDriver());
return display;
};
diff --git a/src/drivers/GDI/Fl_GDI_Graphics_Driver.cxx b/src/drivers/GDI/Fl_GDI_Graphics_Driver.cxx
new file mode 100644
index 000000000..6e782b2b5
--- /dev/null
+++ b/src/drivers/GDI/Fl_GDI_Graphics_Driver.cxx
@@ -0,0 +1,42 @@
+//
+// "$Id$"
+//
+// Rectangle drawing routines for the Fast Light Tool Kit (FLTK).
+//
+// Copyright 1998-2016 by Bill Spitzak and others.
+//
+// This library is free software. Distribution and use rights are outlined in
+// the file "COPYING" which should have been included with this file. If this
+// file is missing or damaged, see the license at:
+//
+// http://www.fltk.org/COPYING.php
+//
+// Please report all bugs and problems on the following page:
+//
+// http://www.fltk.org/str.php
+//
+
+
+#include <config.h>
+#include "../../config_lib.h"
+#include "Fl_GDI_Graphics_Driver.h"
+
+
+const char *Fl_GDI_Graphics_Driver::class_id = "Fl_GDI_Graphics_Driver";
+
+// FIXME: move to printer graphics driver
+const char *Fl_GDI_Printer_Graphics_Driver::class_id = "Fl_GDI_Printer_Graphics_Driver";
+
+/*
+ * By linking this module, the following static method will instatiate the
+ * MSWindows GDI Graphics driver as the main display driver.
+ */
+Fl_Graphics_Driver *Fl_Graphics_Driver::newMainGraphicsDriver()
+{
+ return new Fl_GDI_Graphics_Driver();
+}
+
+
+//
+// End of "$Id$".
+//
diff --git a/src/drivers/Quartz/Fl_Quartz_Display_Device.cxx b/src/drivers/Quartz/Fl_Quartz_Display_Device.cxx
index df0eaba5d..d397cd005 100644
--- a/src/drivers/Quartz/Fl_Quartz_Display_Device.cxx
+++ b/src/drivers/Quartz/Fl_Quartz_Display_Device.cxx
@@ -38,11 +38,6 @@ const char *Fl_Device::class_id = "Fl_Device";
const char *Fl_Surface_Device::class_id = "Fl_Surface_Device";
const char *Fl_Display_Device::class_id = "Fl_Display_Device";
const char *Fl_Graphics_Driver::class_id = "Fl_Graphics_Driver";
-#if defined(__APPLE__) || defined(FL_DOXYGEN)
-# ifndef FL_DOXYGEN
- bool Fl_Display_Device::high_res_window_ = false;
-# endif
-#endif
#if defined(WIN32) || defined(FL_DOXYGEN)
const char *Fl_GDI_Graphics_Driver::class_id = "Fl_GDI_Graphics_Driver";
const char *Fl_GDI_Printer_Graphics_Driver::class_id = "Fl_GDI_Printer_Graphics_Driver";
diff --git a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.cxx b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.cxx
index 3e0f8e319..f2d68eaa1 100644
--- a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.cxx
+++ b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.cxx
@@ -18,13 +18,22 @@
#include "../../config_lib.h"
-#ifdef FL_CFG_GFX_QUARTZ
-
#include "Fl_Quartz_Graphics_Driver.h"
const char *Fl_Quartz_Graphics_Driver::class_id = "Fl_Quartz_Graphics_Driver";
+
+/*
+ * By linking this module, the following static method will instatiate the
+ * OS X Quartz Graphics driver as the main display driver.
+ */
+Fl_Graphics_Driver *Fl_Graphics_Driver::newMainGraphicsDriver()
+{
+ return new Fl_Quartz_Graphics_Driver();
+}
+
+
Fl_Offscreen Fl_Quartz_Graphics_Driver::create_offscreen_with_alpha(int w, int h) {
void *data = calloc(w*h,4);
CGColorSpaceRef lut = CGColorSpaceCreateDeviceRGB();
@@ -34,8 +43,6 @@ Fl_Offscreen Fl_Quartz_Graphics_Driver::create_offscreen_with_alpha(int w, int h
}
-#endif // FL_CFG_GFX_QUARTZ
-
//
// End of "$Id$".
//
diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.cxx b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.cxx
new file mode 100644
index 000000000..0385413f1
--- /dev/null
+++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.cxx
@@ -0,0 +1,39 @@
+//
+// "$Id$"
+//
+// Rectangle drawing routines for the Fast Light Tool Kit (FLTK).
+//
+// Copyright 1998-2012 by Bill Spitzak and others.
+//
+// This library is free software. Distribution and use rights are outlined in
+// the file "COPYING" which should have been included with this file. If this
+// file is missing or damaged, see the license at:
+//
+// http://www.fltk.org/COPYING.php
+//
+// Please report all bugs and problems on the following page:
+//
+// http://www.fltk.org/str.php
+//
+
+
+#include <config.h>
+#include "../../config_lib.h"
+#include "Fl_Xlib_Graphics_Driver.h"
+
+
+const char *Fl_Xlib_Graphics_Driver::class_id = "Fl_Xlib_Graphics_Driver";
+
+
+/*
+ * By linking this module, the following static method will instatiate the
+ * X11 Xlib Graphics driver as the main display driver.
+ */
+Fl_Graphics_Driver *Fl_Graphics_Driver::newMainGraphicsDriver()
+{
+ return new Fl_Xlib_Graphics_Driver();
+}
+
+//
+// End of "$Id$".
+//