diff options
Diffstat (limited to 'src/c_fl_surface.cpp')
-rw-r--r-- | src/c_fl_surface.cpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/c_fl_surface.cpp b/src/c_fl_surface.cpp new file mode 100644 index 0000000..89d661f --- /dev/null +++ b/src/c_fl_surface.cpp @@ -0,0 +1,38 @@ + + +#include <FL/Fl_Device.H> +#include "c_fl_surface.h" + + + + +class My_Surface_Device : public Fl_Surface_Device { + public: + using Fl_Surface_Device::Fl_Surface_Device; + friend SURFACE new_fl_surface(void * g); +}; + + + + +SURFACE new_fl_surface(void * g) { + My_Surface_Device *s = new My_Surface_Device(reinterpret_cast<Fl_Graphics_Driver*>(g)); + return s; +} + +void free_fl_surface(SURFACE s) { + delete reinterpret_cast<My_Surface_Device*>(s); +} + + + + +void fl_surface_set_current(SURFACE s) { + reinterpret_cast<Fl_Surface_Device*>(s)->set_current(); +} + +SURFACE fl_surface_get_surface(void) { + return Fl_Surface_Device::surface(); +} + + |