diff options
| author | Matthias Melcher <fltk@matthiasm.com> | 2016-03-11 00:19:27 +0000 |
|---|---|---|
| committer | Matthias Melcher <fltk@matthiasm.com> | 2016-03-11 00:19:27 +0000 |
| commit | ac1932eaa7630d8dbe07846f027986f77afa6b5a (patch) | |
| tree | 51b9fbc9ca622eb18ef65570337e67a702dd27c9 /src | |
| parent | 31fcd84ca990ded6b96f0e3a82adc3f38d0cdb2c (diff) | |
(incomplete) Add files required to compile for Android via Pico driver.
Don't get your hopes up just yet: this code does compile, but it doesn't fully link yet. If you like to test this, install the Android SDK and NDK, set the usual environment variables, then change into the "Android" direktory and run "mk". It will currently fail at the linker stage.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11343 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src')
13 files changed, 597 insertions, 0 deletions
diff --git a/src/Fl_x.cxx b/src/Fl_x.cxx index 82af113b7..f2092296b 100644 --- a/src/Fl_x.cxx +++ b/src/Fl_x.cxx @@ -29,6 +29,8 @@ class Fl_Widget *fl_selection_requestor; //# 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(ANDROID) +# pragma message "ANDROID: 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/PicoAndroid/Fl_PicoAndroid_Copy_Surface.H b/src/drivers/PicoAndroid/Fl_PicoAndroid_Copy_Surface.H new file mode 100644 index 000000000..ea31c3771 --- /dev/null +++ b/src/drivers/PicoAndroid/Fl_PicoAndroid_Copy_Surface.H @@ -0,0 +1,15 @@ + +class Fl_Copy_Surface::Helper : public Fl_Widget_Surface { // class model + friend class Fl_Copy_Surface; +private: + int width; + int height; + Helper(int w, int h) : Fl_Widget_Surface(NULL), width(w), height(h) {} // to implement + ~Helper() {} // to implement + void set_current(){} // to implement + void translate(int x, int y) {} // to implement + void untranslate() {} // to implement + int w() {return width;} + int h() {return height;} + int printable_rect(int *w, int *h) {*w = width; *h = height; return 0;} +}; diff --git a/src/drivers/PicoAndroid/Fl_PicoAndroid_Copy_Surface.cxx b/src/drivers/PicoAndroid/Fl_PicoAndroid_Copy_Surface.cxx new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/src/drivers/PicoAndroid/Fl_PicoAndroid_Copy_Surface.cxx @@ -0,0 +1 @@ + diff --git a/src/drivers/PicoAndroid/Fl_PicoAndroid_Graphics_Driver.H b/src/drivers/PicoAndroid/Fl_PicoAndroid_Graphics_Driver.H new file mode 100644 index 000000000..583fc72fa --- /dev/null +++ b/src/drivers/PicoAndroid/Fl_PicoAndroid_Graphics_Driver.H @@ -0,0 +1,125 @@ + +// +// "$Id: Fl_PicoAndroid_Graphics_Driver.H 11017 2016-01-20 21:40:12Z matt $" +// +// Definition of the Pico Android graphics driver +// for the Fast Light Tool Kit (FLTK). +// +// Copyright 2010-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 +// + +/** + \file Fl_PicoAndroid_Graphics_Driver.H + \brief Definition of Pico minimal graphics driver. + */ + +#ifndef FL_PICOANDROID_GRAPHICS_DRIVER_H +#define FL_PICOANDROID_GRAPHICS_DRIVER_H + +#include "../Pico/Fl_Pico_Graphics_Driver.H" + + +/** + \brief The Pico minimal SDL graphics class. + * + This class is implemented as a base class for minimal core SDL drivers. + */ +class Fl_PicoAndroid_Graphics_Driver : public Fl_Pico_Graphics_Driver { +protected: + // CGContextRef gc_; +public: + // virtual int has_feature(driver_feature mask) { return mask & NATIVE; } + // virtual void gc(void *ctxt) {if (ctxt != gc_) global_gc(); gc_ = (CGContextRef)ctxt; } + // virtual void *gc() {return gc_;} + // char can_do_alpha_blending(); + // + // // --- bitmap stuff + // Fl_Bitmask create_bitmask(int w, int h, const uchar *array); + // void delete_bitmask(Fl_Bitmask bm); + // void draw(Fl_Pixmap *pxm, int XP, int YP, int WP, int HP, int cx, int cy); + // void draw(Fl_Bitmap *pxm, int XP, int YP, int WP, int HP, int cx, int cy); + // void draw(Fl_RGB_Image *img, int XP, int YP, int WP, int HP, int cx, int cy); + // int draw_scaled(Fl_Image *img, int XP, int YP, int WP, int HP); + // void draw_image(const uchar* buf, int X,int Y,int W,int H, int D=3, int L=0); + // void draw_image(Fl_Draw_Image_Cb cb, void* data, int X,int Y,int W,int H, int D=3); + // void draw_image_mono(const uchar* buf, int X,int Y,int W,int H, int D=1, int L=0); + // void draw_image_mono(Fl_Draw_Image_Cb cb, void* data, int X,int Y,int W,int H, int D=1); + // fl_uintptr_t cache(Fl_Pixmap *img, int w, int h, const char *const*array); + // fl_uintptr_t cache(Fl_Bitmap *img, int w, int h, const uchar *array); + // void uncache(Fl_RGB_Image *img, fl_uintptr_t &id_, fl_uintptr_t &mask_); + // void copy_offscreen(int x, int y, int w, int h, Fl_Offscreen pixmap, int srcx, int srcy); + // void draw_CGImage(CGImageRef cgimg, int x, int y, int w, int h, int srcx, int srcy, int sw, int sh); + //protected: + // // --- implementation is in src/fl_rect.cxx which includes src/cfg_gfx/quartz_rect.cxx + void point(int x, int y); + // void rect(int x, int y, int w, int h); + void rectf(int x, int y, int w, int h); + void line(int x, int y, int x1, int y1); + // void line(int x, int y, int x1, int y1, int x2, int y2); + // void xyline(int x, int y, int x1); + // void xyline(int x, int y, int x1, int y2); + // void xyline(int x, int y, int x1, int y2, int x3); + // void yxline(int x, int y, int y1); + // void yxline(int x, int y, int y1, int x2); + // void yxline(int x, int y, int y1, int x2, int y3); + // void loop(int x0, int y0, int x1, int y1, int x2, int y2); + // void loop(int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3); + // void polygon(int x0, int y0, int x1, int y1, int x2, int y2); + // void polygon(int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3); + // // --- clipping + // void push_clip(int x, int y, int w, int h); + // int clip_box(int x, int y, int w, int h, int &X, int &Y, int &W, int &H); + // int not_clipped(int x, int y, int w, int h); + // void push_no_clip(); + // void pop_clip(); + // void restore_clip(); + // // --- implementation is in src/fl_vertex.cxx which includes src/cfg_gfx/xxx_rect.cxx + // void begin_complex_polygon(); + // void transformed_vertex(double xf, double yf); + // void vertex(double x, double y); + // void end_points(); + // void end_line(); + // void end_loop(); + // void end_polygon(); + // void end_complex_polygon(); + // void gap(); + // void circle(double x, double y, double r); + // // --- implementation is in src/fl_arc.cxx which includes src/cfg_gfx/xxx_arc.cxx if needed + // // using void Fl_Graphics_Driver::arc(double x, double y, double r, double start, double end); + // // --- implementation is in src/fl_arci.cxx which includes src/cfg_gfx/xxx_arci.cxx + // void arc(int x, int y, int w, int h, double a1, double a2); + // void pie(int x, int y, int w, int h, double a1, double a2); + // // --- implementation is in src/fl_line_style.cxx which includes src/cfg_gfx/xxx_line_style.cxx + // void line_style(int style, int width=0, char* dashes=0); + // // --- implementation is in src/fl_color.cxx which includes src/cfg_gfx/xxx_color.cxx + // void color(Fl_Color c); + // Fl_Color color() { return color_; } + // void color(uchar r, uchar g, uchar b); + // // --- implementation is in src/fl_font.cxx which includes src/cfg_gfx/xxx_font.cxx + // void draw(const char *str, int n, int x, int y); + // void draw(const char *str, int n, float x, float y); + // void draw(int angle, const char *str, int n, int x, int y); + // void rtl_draw(const char *str, int n, int x, int y); + // void font(Fl_Font face, Fl_Fontsize fsize); + // double width(const char *str, int n); + // double width(unsigned int c); + // void text_extents(const char*, int n, int& dx, int& dy, int& w, int& h); + // int height(); + // int descent(); +}; + +#endif // FL_PICOANDROID_GRAPHICS_DRIVER_H + +// +// End of "$Id: Fl_PicoAndroid_Graphics_Driver.H 11017 2016-01-20 21:40:12Z matt $". +// diff --git a/src/drivers/PicoAndroid/Fl_PicoAndroid_Graphics_Driver.cxx b/src/drivers/PicoAndroid/Fl_PicoAndroid_Graphics_Driver.cxx new file mode 100644 index 000000000..81fa3efab --- /dev/null +++ b/src/drivers/PicoAndroid/Fl_PicoAndroid_Graphics_Driver.cxx @@ -0,0 +1,69 @@ +// +// "$Id: Fl_PicoAndroid_Graphics_Driver.cxx 11241 2016-02-27 13:52:27Z manolo $" +// +// 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_lib.h" +#include "Fl_PicoAndroid_Graphics_Driver.h" + +#include <FL/Fl.H> +//#define __APPLE__ +//#include <SDL2/SDL.h> +//#undef __APPLE__ + +/* + * By linking this module, the following static method will instatiate the + * PicoSDL Graphics driver as the main display driver. + */ +Fl_Graphics_Driver *Fl_Graphics_Driver::newMainGraphicsDriver() +{ + return new Fl_PicoAndroid_Graphics_Driver(); +} + + +void Fl_PicoAndroid_Graphics_Driver::rectf(int x, int y, int w, int h) +{ +// uchar r, g, b; +// Fl::get_color(Fl_Graphics_Driver::color(), r, g, b); +// SDL_SetRenderDrawColor((SDL_Renderer*)fl_window, r, g, b, SDL_ALPHA_OPAQUE); +// SDL_Rect rect = {x, y, w, h}; +// SDL_RenderFillRect((SDL_Renderer*)fl_window, &rect); +} + + +void Fl_PicoAndroid_Graphics_Driver::line(int x, int y, int x1, int y1) +{ +// uchar r, g, b; +// Fl::get_color(Fl_Graphics_Driver::color(), r, g, b); +// SDL_SetRenderDrawColor((SDL_Renderer*)fl_window, r, g, b, SDL_ALPHA_OPAQUE); +// SDL_RenderDrawLine((SDL_Renderer*)fl_window, x, y, x1, y1); +} + + +void Fl_PicoAndroid_Graphics_Driver::point(int x, int y) +{ +// uchar r, g, b; +// Fl::get_color(Fl_Graphics_Driver::color(), r, g, b); +// SDL_SetRenderDrawColor((SDL_Renderer*)fl_window, r, g, b, SDL_ALPHA_OPAQUE); +// SDL_RenderDrawPoint((SDL_Renderer*)fl_window, x, y); +} + + + +// +// End of "$Id: Fl_PicoAndroid_Graphics_Driver.cxx 11241 2016-02-27 13:52:27Z manolo $". +// diff --git a/src/drivers/PicoAndroid/Fl_PicoAndroid_Image_Surface.H b/src/drivers/PicoAndroid/Fl_PicoAndroid_Image_Surface.H new file mode 100644 index 000000000..05202afdd --- /dev/null +++ b/src/drivers/PicoAndroid/Fl_PicoAndroid_Image_Surface.H @@ -0,0 +1,15 @@ +class Fl_Image_Surface::Helper : public Fl_Widget_Surface { // class model + friend class Fl_Image_Surface; +public: + Fl_Offscreen offscreen; + int width; + int height; + Helper(int w, int h, int high_res) : Fl_Widget_Surface(NULL), width(w), height(h) {} // to implement + ~Helper() {} // to implement + void set_current(){} // to implement + void translate(int x, int y) {} // to implement + void untranslate() {} // to implement + Fl_RGB_Image *image() {} // to implement + void end_current() {} // to implement + int printable_rect(int *w, int *h) {*w = width; *h = height; return 0;} +}; diff --git a/src/drivers/PicoAndroid/Fl_PicoAndroid_Image_Surface.cxx b/src/drivers/PicoAndroid/Fl_PicoAndroid_Image_Surface.cxx new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/src/drivers/PicoAndroid/Fl_PicoAndroid_Image_Surface.cxx @@ -0,0 +1 @@ + diff --git a/src/drivers/PicoAndroid/Fl_PicoAndroid_Screen_Driver.H b/src/drivers/PicoAndroid/Fl_PicoAndroid_Screen_Driver.H new file mode 100644 index 000000000..f0e0efdd0 --- /dev/null +++ b/src/drivers/PicoAndroid/Fl_PicoAndroid_Screen_Driver.H @@ -0,0 +1,44 @@ +// +// "$Id: Fl_PicoAndroid_Screen_Driver.H 11017 2016-01-20 21:40:12Z matt $" +// +// Definition of Android Screen interface based on Pico +// for the Fast Light Tool Kit (FLTK). +// +// Copyright 2010-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 +// + +/** + \file Fl_PicoAndroid_Screen_Driver.H + \brief Definition of SDL Screen interface based on Pico. + */ + +#ifndef FL_PICOANDROID_SCREEN_DRIVER_H +#define FL_PICOANDROID_SCREEN_DRIVER_H + +#include "../Pico/Fl_Pico_Screen_Driver.H" + + +class FL_EXPORT Fl_PicoAndroid_Screen_Driver : public Fl_Pico_Screen_Driver +{ +public: + Fl_PicoAndroid_Screen_Driver(); + virtual ~Fl_PicoAndroid_Screen_Driver(); + virtual double wait(double time_to_wait); +}; + + +#endif // FL_PICOANDROID_SCREEN_DRIVER_H + +// +// End of "$Id: Fl_PicoAndroid_Screen_Driver.H 11017 2016-01-20 21:40:12Z matt $". +// diff --git a/src/drivers/PicoAndroid/Fl_PicoAndroid_Screen_Driver.cxx b/src/drivers/PicoAndroid/Fl_PicoAndroid_Screen_Driver.cxx new file mode 100644 index 000000000..cbe0c9ed7 --- /dev/null +++ b/src/drivers/PicoAndroid/Fl_PicoAndroid_Screen_Driver.cxx @@ -0,0 +1,181 @@ +// +// "$Id: Fl_PicoAndroid_Screen_Driver.cxx 11253 2016-03-01 00:54:21Z matt $" +// +// Definition of Android Screen interface based on Pico +// +// 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_lib.h" +#include "Fl_PicoAndroid_Screen_Driver.H" + +#include <FL/Fl_Window_Driver.H> + +//#define __APPLE__ +//#include <SDL2/SDL.h> +//#undef __APPLE__ + + +Fl_Screen_Driver* Fl_Screen_Driver::newScreenDriver() +{ + return new Fl_PicoAndroid_Screen_Driver(); +} + + +Fl_PicoAndroid_Screen_Driver::Fl_PicoAndroid_Screen_Driver() +{ +} + +Fl_PicoAndroid_Screen_Driver::~Fl_PicoAndroid_Screen_Driver() +{ +} + + +double Fl_PicoAndroid_Screen_Driver::wait(double time_to_wait) +{ + Fl::flush(); +// SDL_Event e; +// if (SDL_PollEvent(&e)) { +// switch (e.type) { +// case SDL_QUIT: +// exit(0); +// case SDL_WINDOWEVENT_EXPOSED: +// case SDL_WINDOWEVENT_SHOWN: +// { // not happening! +// //event->window.windowID +// Fl_Window *window = Fl::first_window(); +// if ( !window ) break;; +// Fl_X *i = Fl_X::i(Fl::first_window()); +// i->wait_for_expose = 0; +// +// if ( i->region ) { +// XDestroyRegion(i->region); +// i->region = 0; +// } +// window->clear_damage(FL_DAMAGE_ALL); +// i->flush(); +// window->clear_damage(); +// Fl_X::first->wait_for_expose = 0; +// } +// break; +// +// } +// } + return 0.0; +} + + + +#include <FL/x.H> +#include <FL/Fl.H> +#include <FL/Fl_Image_Surface.H> +#include <FL/Fl_Double_Window.H> +#include <FL/Fl_Graphics_Driver.H> + +/* + * The following code should not be here! + * All this must be refactored into the driver system! + */ + +/* + + The following symbols are not found if we naively compile the core modules and + no specific platform implementations. This list is a hint at all the functions + and methods that probably need to be refactored into the driver system. + + Undefined symbols for architecture x86_64: + */ + +void fl_set_spot(int, int, int, int, int, int, Fl_Window*) { } +void fl_reset_spot() { } +const char *fl_filename_name(char const*) { return 0; } +void fl_clipboard_notify_change() { } + +//Fl_Screen_Driver *Fl_Screen_Driver::newScreenDriver() { return 0; } +//Fl_Graphics_Driver *Fl_Graphics_Driver::newMainGraphicsDriver() { return 0; } +void Fl_Graphics_Driver::global_gc() { } +int Fl::dnd() { return 0; } +void Fl::copy(char const*, int, int, char const*) { } +void Fl::paste(Fl_Widget&, int, char const*) { } +void Fl::get_mouse(int&, int&) { } +void Fl::set_color(unsigned int, unsigned int) { } +int Fl_X::set_cursor(Fl_Cursor) { return 0; } +int Fl_X::set_cursor(Fl_RGB_Image const*, int, int) { return 0; } +void Fl_X::set_default_icons(Fl_RGB_Image const**, int) { } + +void Fl_X::flush() +{ + w->driver()->flush(); +} + +void Fl_X::set_icons() { } +void Fl_Window::size_range_() { } +void Fl_Window::fullscreen_x() { } + +void Fl_Window::make_current() +{ + fl_window = i->xid; + current_ = this; +} + +void Fl_Window::fullscreen_off_x(int, int, int, int) { } + +Window fl_xid(const Fl_Window* w) +{ + Fl_X *temp = Fl_X::i(w); + return temp ? temp->xid : 0; +} + +void Fl_Window::show() { + if (!shown()) { + Fl_X::make(this); + } +} + +Fl_X* Fl_X::make(Fl_Window *w) +{ + return w->driver()->makeWindow(); +} + +void Fl_Window::label(char const*, char const*) { } +void Fl_Window::resize(int, int, int, int) { } +Fl_Window *Fl_Window::current_; +char fl_show_iconic; +Window fl_window; +//void Fl_Image_Surface::translate(int x, int y) { } +//void Fl_Image_Surface::untranslate() { } + +void Fl::add_fd(int, void (*)(int, void*), void*) +{ +} + +void Fl::remove_fd(int) +{ +} + +int Fl_Window::decorated_h() +{ + return h(); +} + +int Fl_Window::decorated_w() +{ + return w(); +} + + +// +// End of "$Id: Fl_PicoAndroid_Screen_Driver.cxx 11253 2016-03-01 00:54:21Z matt $". +// + diff --git a/src/drivers/PicoAndroid/Fl_PicoAndroid_System_Driver.H b/src/drivers/PicoAndroid/Fl_PicoAndroid_System_Driver.H new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/src/drivers/PicoAndroid/Fl_PicoAndroid_System_Driver.H @@ -0,0 +1 @@ + diff --git a/src/drivers/PicoAndroid/Fl_PicoAndroid_System_Driver.cxx b/src/drivers/PicoAndroid/Fl_PicoAndroid_System_Driver.cxx new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/src/drivers/PicoAndroid/Fl_PicoAndroid_System_Driver.cxx @@ -0,0 +1 @@ + diff --git a/src/drivers/PicoAndroid/Fl_PicoAndroid_Window_Driver.H b/src/drivers/PicoAndroid/Fl_PicoAndroid_Window_Driver.H new file mode 100644 index 000000000..250280a12 --- /dev/null +++ b/src/drivers/PicoAndroid/Fl_PicoAndroid_Window_Driver.H @@ -0,0 +1,51 @@ +// +// "$Id: Fl_PicoAndroid_Window_Driver.H 11017 2016-01-20 21:40:12Z matt $" +// +// Definition of Android Window interface +// for the Fast Light Tool Kit (FLTK). +// +// Copyright 2010-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 +// + +/** + \file Fl_PicoAndroid_Window_Driver.H + \brief Definition of SDL Window interface. + */ + +#ifndef FL_PICOANDROID_WINDOW_DRIVER_H +#define FL_PICOANDROID_WINDOW_DRIVER_H + +#include "../Pico/Fl_Pico_Window_Driver.H" + +//#define __APPLE__ +//#include <SDL2/SDL.h> +//#undef __APPLE__ + + +class FL_EXPORT Fl_PicoAndroid_Window_Driver : public Fl_Pico_Window_Driver +{ +// SDL_Window *pNativeWindow; +public: + Fl_PicoAndroid_Window_Driver(Fl_Window *win); + virtual ~Fl_PicoAndroid_Window_Driver(); + + virtual Fl_X *makeWindow(); + virtual void flush(); +}; + + +#endif // FL_PICOSDL_WINDOW_DRIVER_H + +// +// End of "$Id: Fl_PicoSDL_Window_Driver.H 11017 2016-01-20 21:40:12Z matt $". +// diff --git a/src/drivers/PicoAndroid/Fl_PicoAndroid_Window_Driver.cxx b/src/drivers/PicoAndroid/Fl_PicoAndroid_Window_Driver.cxx new file mode 100644 index 000000000..fc0afc339 --- /dev/null +++ b/src/drivers/PicoAndroid/Fl_PicoAndroid_Window_Driver.cxx @@ -0,0 +1,91 @@ +// +// "$Id: Fl_PicoAndroid_Window_Driver.cxx 11253 2016-03-01 00:54:21Z matt $" +// +// Definition of Android Window interface based on SDL +// +// 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_lib.h" +#include "Fl_PicoAndroid_Window_Driver.H" +#include <FL/Fl.H> + + +Fl_Window_Driver *Fl_Window_Driver::newWindowDriver(Fl_Window *win) +{ + return new Fl_PicoAndroid_Window_Driver(win); +} + + +Fl_PicoAndroid_Window_Driver::Fl_PicoAndroid_Window_Driver(Fl_Window *win) +: Fl_Pico_Window_Driver(win) +{ +} + + +Fl_PicoAndroid_Window_Driver::~Fl_PicoAndroid_Window_Driver() +{ +} + + +Fl_X *Fl_PicoAndroid_Window_Driver::makeWindow() +{ + Fl_Group::current(0); + if (pWindow->parent() && !Fl_X::i(pWindow->window())) { + pWindow->set_visible(); + return 0L; + } + Window parent; + if (pWindow->parent()) { + parent = fl_xid(pWindow->window()); + } else { + parent = 0; + } + Fl_X *x = new Fl_X; + x->other_xid = 0; + x->w = pWindow; + x->region = 0; + if (!pWindow->force_position()) { +// pNativeWindow = SDL_CreateWindow(pWindow->label(), SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, pWindow->w(), pWindow->h(), 0); + } else { +// pNativeWindow = SDL_CreateWindow(pWindow->label(), pWindow->x(), pWindow->y(), pWindow->w(), pWindow->h(), 0); + } +// x->xid = SDL_CreateRenderer(pNativeWindow, -1, SDL_RENDERER_ACCELERATED); + x->next = Fl_X::first; + x->wait_for_expose = 0; + pWindow->i = x; + Fl_X::first = x; + + pWindow->set_visible(); + pWindow->redraw(); + flush(); + int old_event = Fl::e_number; + pWindow->handle(Fl::e_number = FL_SHOW); + Fl::e_number = old_event; + + return x; +} + + +void Fl_PicoAndroid_Window_Driver::flush() +{ +// SDL_RenderClear((SDL_Renderer*)fl_window); + pWindow->flush(); +// SDL_RenderPresent((SDL_Renderer*)fl_window); +} + + +// +// End of "$Id: Fl_PicoSDL_Window_Driver.cxx 11253 2016-03-01 00:54:21Z matt $". +//
\ No newline at end of file |
