diff options
| author | Matthias Melcher <fltk@matthiasm.com> | 2016-03-02 00:54:37 +0000 |
|---|---|---|
| committer | Matthias Melcher <fltk@matthiasm.com> | 2016-03-02 00:54:37 +0000 |
| commit | 53859c584f203b11b9a3a9cd5600e938421f2f36 (patch) | |
| tree | fb27aaa0195f5aca5cdc436e43fbb0b81f8de3d8 /src | |
| parent | f14de4048eb36ce1aa07d837349dc9687f6f0a61 (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')
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" |
