summaryrefslogtreecommitdiff
path: root/src/Fl_Gl_Window.cxx
AgeCommit message (Collapse)Author
2016-02-26Rename all remaining src/drivers/XXX.h to XXX.HManolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11226 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-19Rename Fl_Graphics_Driver::set_gc(void*) to gc(void*) and ↵Manolo Gouy
Fl_Graphics_Driver::get_gc() to gc(). git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11191 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-18Remove all uses of the fl_gc global variable. Towards a clean driver model.Manolo Gouy
fl_gc remains usable by the application as a hook into the system. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11189 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-11Mark places that need to be refactored with // PORTME:Matthias Melcher
Searching for __APPLE, WIN32 or X11 did give me many false results. I instead marked most ifdef's that I would like to get rid of with the text // PORTME:, so they can be easily found by a global search. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11155 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-10Fix MSWindows compile issues.Matthias Melcher
Fixed a few warnings and a compilation issue introduced from previous reorganization. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11143 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-29Updated OpenGL Display DeviceMatthias Melcher
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11084 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-21Removed OpenGL graphics driver from public view. For the parts that are ↵Matthias Melcher
implemented, it will 'just work' by allowing fl_* rendering into OpenGL contexts (such as widgets, etc.) git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11022 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-20Avoid clipping stack overruns in OpenGL graphics driverMatthias Melcher
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11018 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-20Wrapping up fl_rect.cxx implementation. Introducing 3 moer virtual functions ↵Matthias Melcher
to Fl_Graphics_Device - will that break binary compatibility? git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11017 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-20Reorganized all integer line and polygon drawing functionsMatthias Melcher
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11016 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-20Re-ordering a few more functions. It's nice to see how clear functions like ↵Matthias Melcher
rectf() become without the #ifdef mess. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11013 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-20Starting to cut out individual graphics function, so that multiple drivers ↵Matthias Melcher
can coexist (cfg_gfx). Found the missing pixels in the OpenGL gfx driver. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11012 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-19Fixed typos for Linux compilation. OpenGL driver compiles and somewhat ↵Matthias Melcher
works, except for text rendering (as expected). git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11009 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-18Replaced static initializer with Fl_OpenGL_Display_Device.Matthias Melcher
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11008 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-17Trying to create a more detaild way to configure the library, added runtime ↵Matthias Melcher
information, added an OpenGL graphics driver that renders a button on top of an OpenGL window (see test/cube). git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11006 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-03Updated platform specific #if's to report unimplemented code when compiling ↵Matthias Melcher
with FL_PORTING defined and WIN32 and __APPLE__ undefined> git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@10989 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-02Mac OS: support for high resolution OpenGL windows.Manolo Gouy
Methods Fl::event_x_pixel() and Fl::event_y_pixel() committed at r.10941 are removed. Instead method Fl_Gl_Window::pixels_per_unit() is added. The documentation explains in more detail how to write cross-platform FLTK code supporting high resolution OpenGL windows on retina displays. The examples/OpenGL3test.cxx app exercises Fl_Gl_Window::pixels_per_unit(). git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10945 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-09-08The Fl_Gl_Window public API offers 2 ways to control the OpenGL capabilities ↵Manolo Gouy
of a window: 1) Fl_Gl_Window::mode(int m) is platform-independent and uses an argument containing bit flags (e.g., FL_DOUBLE, FL_RGB8) to express desired capabilities. The m argument is assigned to the mode_ private member variable of the Fl_Gl_Window object. 2) Fl_Gl_Window::mode(const int *a) is highly platform-dependent. It uses a zero-ending array of attributes or attribute-value pairs to express capabilities. This member function can be used on the X11 and the Mac OS platforms, but not with MSWindows. Before this patch, the mode_ private member variable of the Fl_Gl_Window object is assigned 0 by this member function. The Fl_Gl_Window::flush() member function tests whether the FL_DOUBLE flag is ON in the mode_ variable, and changes code path accordingly. Therefore, the second API to control OpenGL capabilities fails when a double-buffered GL context is required, because the code path followed by Fl_Gl_Window::flush() does not match the GL context requirements. With this patch, Fl_Gl_Window::mode(const int *a) scans the content of its array argument, and sets the FL_DOUBLE bit of the mode_ member variable if the array requires a double-buffered GL context. This patch does that for the X11 platform. The same was introduced for the Mac OS platform at r. 10854. The MSWindows platform does not use the Fl_Gl_Window::mode(const int *a) API. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10859 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-09-07Moved a few Mac-specific lines from Fl_Gl_Window::show() to Fl_Gl_Window::mode()Manolo Gouy
where it is more easily understood. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10858 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-09-07Mac OS X: restored the possibility to set a GL context mode with theManolo Gouy
Fl_Gl_Window::(const int *a) member function that uses a zero-ending array of system-dependent attributes. This procedure failed whenever a double buffer was asked for. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10854 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-08-31Improved use of the gl_texture_reset() function:Manolo Gouy
it is necessary only if all GL windows have been deleted. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10848 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-08-27Programs compiled with pre-10.7 SDKs can now fully use retina displays.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10844 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-02-03Fixed crash when resizing a not yet shown() Fl_Gl_Window.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10551 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-02-02Replace gl_xxx() function names by new member functions of the Fl_X class to ↵Manolo Gouy
avoid collisions with user-defined symbols. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10548 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-01-31Improved Mac OS X Fl_Gl_Window resizing: the GL scene was drawn twice at ↵Manolo Gouy
each resize operation. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10545 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-01-14A public header file must not use a preprocessor variable such as ↵Manolo Gouy
MAC_OS_X_VERSION_10_7 because it is only defined internally to FLTK. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10516 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-12-20Changed OpenGL support for the Mac OS X platform: use cocoa instead of ↵Manolo Gouy
deprecated AGL. All changes are mac-specific, except a very minor change in file src/gl_draw.cxx where string drawing wrongly claimed to support @symbol, not possible because symbols are drawn using non-GL primitives. Unchanged application code can use the new FLTK code. In addition, the new code allows mac applications to draw OpenGL scenes at high resolution on so-called 'retina' displays, but this requires some support from app code. They must call, before opening GL windows, Fl::use_high_resolution(1); and change their glViewport() calls as follows glViewport(0, 0, pxel_w(), pixel_h()); This uses 2 new member functions of the Fl_Gl_Window class, pixel_w() and pixel_h() returning the window dimensions in pixel units, that is, twice the w() and h() when the window is mapped on a retina display. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10498 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-11-11Added support of true subwindows to the Mac OS X code. With this, a window ↵Manolo Gouy
inside another window is just another window with Mac OS as it was already with MSWindows and X11. This requires Mac OS X 10.2. Window nesting to any depth is possible. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10449 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-06-30Follow up to earlier commit. Missed one reference to fixcursor.Pierre Ossman
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10214 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-06-30The SGI 320 is obsolete since many many years, so remove this codePierre Ossman
rather than try to port it to the new fancy cursor handling. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10212 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-02-07Fix crash when Fl_Window::flush() is called before show() (STR #3028).Albrecht Schlosser
The fix is twofold: (1) if Fl_Window::flush() is called, this is ignored silently (2) if Fl_Window::make_current() is called directly, but the window is currently not shown(), then the program will be terminated with an error message. The latter is necessary because returning from make_current() would leave the program in a state where it would expect to have a valid drawing context. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10095 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-01-16Better way to force linking of Fl_Gl_Device_Plugin.o whenever Fl_Gl_Window.o ↵Manolo Gouy
is linked, that doesn't use the "volatile" attribute (suggested by Albrecht). git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10063 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-01-10To force linking of Fl_Gl_Device_Plugin.o when Fl_Gl_Window.o is linked, an ↵Manolo Gouy
additional volatile seems necessary, at least on Mac OS with optimized compilation. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10052 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-01-09Restored the statement removed at r.9992 because it's required so ↵Manolo Gouy
Fl_Gl_Device_Plugin.o is loaded, and so printing of GL windows works. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10049 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2013-09-24Fix some warnings for IRIX 6.5Greg Ercolano
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9992 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2013-04-10While suggesting a new top_window() method for STR#2948,Greg Ercolano
it's realized that for consistency, the recently added window_offset() method (a few days ago) should be renamed to top_window_offset(). git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9870 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2013-04-08Fix for STR #2944 [2]: Fix Apple-specifc nested window problem for ↵Greg Ercolano
Fl_Gl_Window's. Added new method Fl_Widget::window_offset(x,y) to access the top-level window offset of the current widget. Open to alternative names for the new method. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9866 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2013-04-08Fix STR# 2944 [1]: When an app uses overlays and gl_draw(),Greg Ercolano
gl_draw() would mess up the raster position affecting the Mac overlay emulation in swapbuffer code. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9865 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2012-03-05Fix STR #2260: OpenGL windows in Fl_Tabs don't hide when tabs are switched ↵Manolo Gouy
(Mac only) git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9264 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-07-19Modifications to all LGPL headers for STR #2685.Greg Ercolano
(to clarify static exception LGPL by changing license references) git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8864 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-05-12Mac OS: simplified by removing Fl_X::contains_GL_subwindow() function. Manolo Gouy
This operation is now performed within Fl_cocoa.mm git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8657 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-05-11On Mac OS, FL_HIDE is now sent when a window is minimized or the application ↵Manolo Gouy
is hidden. The context removal on Fl_Gl_Window::handle() destroyed the GL colors when the window is remapped. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8653 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-15Corrected gl.h instead of gl.HManolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8594 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-03-26Mac OS: added gl_texture_reset() function to be called when deleting an ↵Manolo Gouy
Fl_Gl_Window git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8537 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-03-26Mac OS: Fixed bug where gl_draw() would fail after deletion of an Fl_GL_Window.Manolo Gouy
The fix invalidates the pile of string textures after each Fl_Gl_Window deletion. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8536 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-01-03Mac OS X: removed all uses of Carbon (except for older OS versions) and ↵Manolo Gouy
re-organized text input around the NSTextInput protocol. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8173 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-12-20change __linux__ to USE_X11 fix STR #2437yuri
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8071 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-12-18Mac OS: replaced several global functions by new member functions of Mac ↵Manolo Gouy
OS-specific Fl_X class. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8055 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-12-13add missing SWAP GL_SWAP_TYPE overlay draw (the slowest)yuri
change default to COPY for linux because UNDEFINED don't work and sometimes crash X with intel video cards. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8026 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-12-01Consistent usage of __APPLE_QUARTZ__Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7931 ea41ed52-d2ee-0310-a9c1-e6b18d33e121