summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthias Melcher <fltk@matthiasm.com>2016-03-02 00:54:37 +0000
committerMatthias Melcher <fltk@matthiasm.com>2016-03-02 00:54:37 +0000
commit53859c584f203b11b9a3a9cd5600e938421f2f36 (patch)
treefb27aaa0195f5aca5cdc436e43fbb0b81f8de3d8 /src
parentf14de4048eb36ce1aa07d837349dc9687f6f0a61 (diff)
Add support for SDL as a base library on OS X.
This commit adds the basic setup in CMake to allow SDL as a base library for FLTK on OS X (and probably for other platforms as well). The SDL library driver set is derived from yet another new driver set named 'Pico'. 'Pico' is a base class for a driver that will allow porting of FLTK with the tinyest amount of effort. This implementation of the SDL driver shall be documented very well to explain the porting process. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11262 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt45
-rw-r--r--src/Fl_Image_Surface.cxx2
-rw-r--r--src/Fl_x.cxx4
-rw-r--r--src/drivers/Pico/Fl_Pico_Copy_Surface.H1
-rw-r--r--src/drivers/Pico/Fl_Pico_Copy_Surface.cxx1
-rw-r--r--src/drivers/Pico/Fl_Pico_Graphics_Driver.H1
-rw-r--r--src/drivers/Pico/Fl_Pico_Graphics_Driver.cxx1
-rw-r--r--src/drivers/Pico/Fl_Pico_Screen_Driver.H1
-rw-r--r--src/drivers/Pico/Fl_Pico_Screen_Driver.cxx1
-rw-r--r--src/drivers/Pico/Fl_Pico_System_Driver.H1
-rw-r--r--src/drivers/Pico/Fl_Pico_System_Driver.cxx1
-rw-r--r--src/drivers/Pico/Fl_Pico_Window_Driver.H1
-rw-r--r--src/drivers/Pico/Fl_Pico_Window_Driver.cxx1
-rw-r--r--src/drivers/SDL/Fl_SDL_Copy_Surface.H1
-rw-r--r--src/drivers/SDL/Fl_SDL_Copy_Surface.cxx1
-rw-r--r--src/drivers/SDL/Fl_SDL_Graphics_Driver.H1
-rw-r--r--src/drivers/SDL/Fl_SDL_Graphics_Driver.cxx1
-rw-r--r--src/drivers/SDL/Fl_SDL_Screen_Driver.H1
-rw-r--r--src/drivers/SDL/Fl_SDL_Screen_Driver.cxx1
-rw-r--r--src/drivers/SDL/Fl_SDL_System_Driver.H1
-rw-r--r--src/drivers/SDL/Fl_SDL_System_Driver.cxx1
-rw-r--r--src/drivers/SDL/Fl_SDL_Window_Driver.H1
-rw-r--r--src/drivers/SDL/Fl_SDL_Window_Driver.cxx1
-rw-r--r--src/xutf8/utf8Utils.c2
-rw-r--r--src/xutf8/utf8Wrap.c2
25 files changed, 71 insertions, 4 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index c5f60b019..de548cf13 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -152,7 +152,7 @@ file(GLOB
"../FL/*.h"
)
-if (USE_X11 AND NOT OPTION_PRINT_SUPPORT)
+if ((USE_X11 OR USE_SDL) AND NOT OPTION_PRINT_SUPPORT)
set(PSFILES
)
else()
@@ -160,7 +160,7 @@ else()
drivers/PostScript/Fl_PostScript.cxx
drivers/PostScript/Fl_PostScript_image.cxx
)
-endif(USE_X11 AND NOT OPTION_PRINT_SUPPORT)
+endif((USE_X11 OR USE_SDL) AND NOT OPTION_PRINT_SUPPORT)
set(DRIVER_FILES)
@@ -199,6 +199,35 @@ if (USE_X11)
drivers/Xlib/Fl_Xlib_Copy_Surface.H
)
+elseif (USE_SDL)
+
+ # SDL2
+
+ set(DRIVER_FILES
+ drivers/Pico/Fl_Pico_System_Driver.cxx
+ drivers/Pico/Fl_Pico_Screen_Driver.cxx
+ drivers/Pico/Fl_Pico_Window_Driver.cxx
+ drivers/Pico/Fl_Pico_Graphics_Driver.cxx
+ drivers/Pico/Fl_Pico_Copy_Surface.cxx
+ drivers/SDL/Fl_SDL_System_Driver.cxx
+ drivers/SDL/Fl_SDL_Screen_Driver.cxx
+ drivers/SDL/Fl_SDL_Window_Driver.cxx
+ drivers/SDL/Fl_SDL_Graphics_Driver.cxx
+ drivers/SDL/Fl_SDL_Copy_Surface.cxx
+ )
+ set(DRIVER_HEADER_FILES
+ drivers/Pico/Fl_Pico_System_Driver.H
+ drivers/Pico/Fl_Pico_Screen_Driver.H
+ drivers/Pico/Fl_Pico_Window_Driver.H
+ drivers/Pico/Fl_Pico_Graphics_Driver.H
+ drivers/Pico/Fl_Pico_Copy_Surface.H
+ drivers/SDL/Fl_SDL_System_Driver.H
+ drivers/SDL/Fl_SDL_Screen_Driver.H
+ drivers/SDL/Fl_SDL_Window_Driver.H
+ drivers/SDL/Fl_SDL_Graphics_Driver.H
+ drivers/SDL/Fl_SDL_Copy_Surface.H
+ )
+
elseif (APPLE)
# Apple Quartz
@@ -340,7 +369,7 @@ set(CFILES
add_definitions(-DFL_LIBRARY)
-if(APPLE AND NOT OPTION_APPLE_X11)
+if(APPLE AND (NOT OPTION_APPLE_X11) AND (NOT OPTION_APPLE_SDL))
set(MMFILES
Fl_cocoa.mm
Fl_Quartz_Printer.mm
@@ -350,7 +379,7 @@ if(APPLE AND NOT OPTION_APPLE_X11)
else()
set(MMFILES
)
-endif(APPLE AND NOT OPTION_APPLE_X11)
+endif(APPLE AND (NOT OPTION_APPLE_X11) AND (NOT OPTION_APPLE_SDL))
#######################################################################
FL_ADD_LIBRARY(fltk STATIC "${CPPFILES};${PSFILES};${MMFILES};${CFILES};fl_call_main.c;${HEADER_FILES};${DRIVER_HEADER_FILES}")
@@ -367,6 +396,10 @@ if(USE_X11)
target_link_libraries(fltk ${X11_LIBRARIES})
endif(USE_X11)
+if (USE_SDL)
+ target_link_libraries(fltk ${SDL2_LIBRARIES})
+endif(USE_SDL)
+
if(WIN32)
target_link_libraries(fltk comctl32)
endif(WIN32)
@@ -446,6 +479,10 @@ if(USE_X11)
target_link_libraries(fltk_SHARED ${X11_LIBRARIES})
endif(USE_X11)
+if (USE_SDL)
+ target_link_libraries(fltk ${SDL2_LIBRARIES})
+endif(USE_SDL)
+
if(WIN32)
target_link_libraries(fltk_SHARED comctl32)
endif(WIN32)
diff --git a/src/Fl_Image_Surface.cxx b/src/Fl_Image_Surface.cxx
index 5e3b881f1..4831ac197 100644
--- a/src/Fl_Image_Surface.cxx
+++ b/src/Fl_Image_Surface.cxx
@@ -221,6 +221,8 @@ void Fl_Image_Surface::untranslate() {
((Fl_Translated_GDI_Graphics_Driver*)driver())->untranslate_all();
}
+#elif defined(USE_SDL)
+
#else
void Fl_Image_Surface::translate(int x, int y) {
diff --git a/src/Fl_x.cxx b/src/Fl_x.cxx
index cb87b9ee9..36c5cf9e1 100644
--- a/src/Fl_x.cxx
+++ b/src/Fl_x.cxx
@@ -16,6 +16,8 @@
// http://www.fltk.org/str.php
//
+#include "config.h"
+
// make this available on all platforms to make code maintainability easier
class Fl_Widget *fl_selection_requestor;
@@ -25,6 +27,8 @@ class Fl_Widget *fl_selection_requestor;
// PORTME: Fl_Screen_Driver
// PORTME: Fl_Window_Driver
//# include "Fl_mac.cxx" // now Fl_cocoa.mm
+#elif defined(USE_SDL)
+# pragma message "FL_SDL: implement the FLTK core in its own file"
#elif defined(FL_PORTING)
# pragma message "FL_PORTING: implement the FLTK core in its own file"
# include "Fl_porting.cxx"
diff --git a/src/drivers/Pico/Fl_Pico_Copy_Surface.H b/src/drivers/Pico/Fl_Pico_Copy_Surface.H
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/src/drivers/Pico/Fl_Pico_Copy_Surface.H
@@ -0,0 +1 @@
+
diff --git a/src/drivers/Pico/Fl_Pico_Copy_Surface.cxx b/src/drivers/Pico/Fl_Pico_Copy_Surface.cxx
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/src/drivers/Pico/Fl_Pico_Copy_Surface.cxx
@@ -0,0 +1 @@
+
diff --git a/src/drivers/Pico/Fl_Pico_Graphics_Driver.H b/src/drivers/Pico/Fl_Pico_Graphics_Driver.H
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/src/drivers/Pico/Fl_Pico_Graphics_Driver.H
@@ -0,0 +1 @@
+
diff --git a/src/drivers/Pico/Fl_Pico_Graphics_Driver.cxx b/src/drivers/Pico/Fl_Pico_Graphics_Driver.cxx
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/src/drivers/Pico/Fl_Pico_Graphics_Driver.cxx
@@ -0,0 +1 @@
+
diff --git a/src/drivers/Pico/Fl_Pico_Screen_Driver.H b/src/drivers/Pico/Fl_Pico_Screen_Driver.H
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/src/drivers/Pico/Fl_Pico_Screen_Driver.H
@@ -0,0 +1 @@
+
diff --git a/src/drivers/Pico/Fl_Pico_Screen_Driver.cxx b/src/drivers/Pico/Fl_Pico_Screen_Driver.cxx
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/src/drivers/Pico/Fl_Pico_Screen_Driver.cxx
@@ -0,0 +1 @@
+
diff --git a/src/drivers/Pico/Fl_Pico_System_Driver.H b/src/drivers/Pico/Fl_Pico_System_Driver.H
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/src/drivers/Pico/Fl_Pico_System_Driver.H
@@ -0,0 +1 @@
+
diff --git a/src/drivers/Pico/Fl_Pico_System_Driver.cxx b/src/drivers/Pico/Fl_Pico_System_Driver.cxx
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/src/drivers/Pico/Fl_Pico_System_Driver.cxx
@@ -0,0 +1 @@
+
diff --git a/src/drivers/Pico/Fl_Pico_Window_Driver.H b/src/drivers/Pico/Fl_Pico_Window_Driver.H
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/src/drivers/Pico/Fl_Pico_Window_Driver.H
@@ -0,0 +1 @@
+
diff --git a/src/drivers/Pico/Fl_Pico_Window_Driver.cxx b/src/drivers/Pico/Fl_Pico_Window_Driver.cxx
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/src/drivers/Pico/Fl_Pico_Window_Driver.cxx
@@ -0,0 +1 @@
+
diff --git a/src/drivers/SDL/Fl_SDL_Copy_Surface.H b/src/drivers/SDL/Fl_SDL_Copy_Surface.H
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/src/drivers/SDL/Fl_SDL_Copy_Surface.H
@@ -0,0 +1 @@
+
diff --git a/src/drivers/SDL/Fl_SDL_Copy_Surface.cxx b/src/drivers/SDL/Fl_SDL_Copy_Surface.cxx
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/src/drivers/SDL/Fl_SDL_Copy_Surface.cxx
@@ -0,0 +1 @@
+
diff --git a/src/drivers/SDL/Fl_SDL_Graphics_Driver.H b/src/drivers/SDL/Fl_SDL_Graphics_Driver.H
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/src/drivers/SDL/Fl_SDL_Graphics_Driver.H
@@ -0,0 +1 @@
+
diff --git a/src/drivers/SDL/Fl_SDL_Graphics_Driver.cxx b/src/drivers/SDL/Fl_SDL_Graphics_Driver.cxx
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/src/drivers/SDL/Fl_SDL_Graphics_Driver.cxx
@@ -0,0 +1 @@
+
diff --git a/src/drivers/SDL/Fl_SDL_Screen_Driver.H b/src/drivers/SDL/Fl_SDL_Screen_Driver.H
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/src/drivers/SDL/Fl_SDL_Screen_Driver.H
@@ -0,0 +1 @@
+
diff --git a/src/drivers/SDL/Fl_SDL_Screen_Driver.cxx b/src/drivers/SDL/Fl_SDL_Screen_Driver.cxx
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/src/drivers/SDL/Fl_SDL_Screen_Driver.cxx
@@ -0,0 +1 @@
+
diff --git a/src/drivers/SDL/Fl_SDL_System_Driver.H b/src/drivers/SDL/Fl_SDL_System_Driver.H
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/src/drivers/SDL/Fl_SDL_System_Driver.H
@@ -0,0 +1 @@
+
diff --git a/src/drivers/SDL/Fl_SDL_System_Driver.cxx b/src/drivers/SDL/Fl_SDL_System_Driver.cxx
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/src/drivers/SDL/Fl_SDL_System_Driver.cxx
@@ -0,0 +1 @@
+
diff --git a/src/drivers/SDL/Fl_SDL_Window_Driver.H b/src/drivers/SDL/Fl_SDL_Window_Driver.H
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/src/drivers/SDL/Fl_SDL_Window_Driver.H
@@ -0,0 +1 @@
+
diff --git a/src/drivers/SDL/Fl_SDL_Window_Driver.cxx b/src/drivers/SDL/Fl_SDL_Window_Driver.cxx
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/src/drivers/SDL/Fl_SDL_Window_Driver.cxx
@@ -0,0 +1 @@
+
diff --git a/src/xutf8/utf8Utils.c b/src/xutf8/utf8Utils.c
index 41343f459..9be6f8607 100644
--- a/src/xutf8/utf8Utils.c
+++ b/src/xutf8/utf8Utils.c
@@ -14,6 +14,8 @@
* http://www.fltk.org/str.php
*/
+#include <config.h>
+
#if defined(WIN32) || defined(__APPLE__) /* PORTME: Fl_Screen_Driver - platform unicode */
#elif defined(FL_PORTING)
# pragma message "FL_PORTING: utf8"
diff --git a/src/xutf8/utf8Wrap.c b/src/xutf8/utf8Wrap.c
index 27e048cfe..d7321b289 100644
--- a/src/xutf8/utf8Wrap.c
+++ b/src/xutf8/utf8Wrap.c
@@ -14,6 +14,8 @@
* http://www.fltk.org/str.php
*/
+#include <config.h>
+
#if defined(WIN32) || defined(__APPLE__) /* PORTME: Fl_Screen_Driver - platform unicode */
#elif defined(FL_PORTING)
# pragma message "FL_PORTING: utf8"