Commit Graph

108 Commits

Author SHA1 Message Date
Manolo Gouy
d4768073fa Implement non-rectangular windows using the Window Driver mechanism.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11336 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-10 17:19:34 +00:00
Matthias Melcher
12eef8e64d Separating Fl_X and Fl_Window_Driver in Fl_Window.
This was needed because Fl_X only exists if a window is mapped, but we need the driver from the very beginning. Adding Fl_X in the ctor would create hidden bugs. Strategy is now to remove system specific stuff from Fl_X and move it one-by-one to Fl_Window_Driver while maintaining a working code base. X11 and WIN32 fixups will follow in 15 minutes.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11308 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-07 21:15:25 +00:00
Manolo Gouy
acfeee6d78 New, driver-based Fl_Double_Window implementation.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11303 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-06 21:33:07 +00:00
Manolo Gouy
0b406baa0f Rewrite all fl_XXX_offscreen() functions so they use an Fl_Image_Surface object.
These functions become therefore platform-independent.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11241 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-27 13:52:27 +00:00
Manolo Gouy
1b5e231c90 Rename Fl_Graphics_Driver::set_gc(void*) to gc(void*) and 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-19 12:40:24 +00:00
Manolo Gouy
f33b45f1d3 Remove all uses of the fl_gc global variable. Towards a clean driver model.
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-18 16:21:51 +00:00
Matthias Melcher
5d1df0e789 Details on PORTME items. Move fl_parse_color() to screen drivers.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11163 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-13 12:57:00 +00:00
Matthias Melcher
50ee3bcd66 Mark places that need to be refactored with // PORTME:
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-11 12:02:36 +00:00
Matthias Melcher
94f0278d47 Porting efforts, minimal Android stuff, cleanup.
- Moving code around for Fl_Double_Window, but not yet happy
- Tested CMake for Android cross compilation. Very happy!

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11142 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-09 21:54:38 +00:00
Matthias Melcher
7a0fe79f99 Fix MSWindows issues from last refactoring.
During the last refactoring on OS X, a few thing were relocated into new files, mainly to avoid ifdef's and use C++ inheritance in a driver system instead. This commit makes FLTK compile again under VC2013 with IDE files generated by CMake.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11141 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-09 20:15:04 +00:00
Matthias Melcher
4272f32b6b Fix typos for Linux from previous check-in.
- The previous check-in for OS X moved a few files and symbols around
- Fixing for Linux what I broke in my previous commit
- Fixing stuff for MSWindows next
- CodeBlocks IDE file generation via CMake works



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11140 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-09 18:52:21 +00:00
Manolo Gouy
f93fd54a7c Needed for Linux/Unix build.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11098 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-31 11:47:49 +00:00
Matthias Melcher
780f43a4f1 Removed all references to Quartz driver files from library headers in Xcode. Works in Xcode.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11065 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-27 22:35:58 +00:00
Manolo Gouy
8e3f66073f 1) Added a new way to detect whether the drawing operation is using the platform's native driver
and whether we are printing:  virtual int Fl_Graphics_Driver::has_feature(driver_feature feature)
This is also because it is not convenient to derive a printer-specific driver with its own
implementation of virtual functions when this implementation differs only in one line of code.

2) Solved the problem of inclusion of non public header by the public header FL/Fl_Device.H:
bracket this with #if FL_LIBRARY / #endif so this non public header is included only when building
FLTK itself.

3) Removed several (but not all) of the FLTK_ABI_VERSION guards that are no longer
useful for code targeting FLTK 1.4.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11063 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-27 18:11:20 +00:00
Matthias Melcher
b1520373ae Created pseudo code for all FL_PORTED section so that FLTK compiles and links (Xcode, hello, other C flags: -D FL_PORTING -U __APPLE__ -U __APPLE_QUARTZ__)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@10993 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-04 23:09:32 +00:00
Albrecht Schlosser
d32b291a72 Fix typos in #pragma FL_PORTING.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@10991 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-04 13:40:57 +00:00
Matthias Melcher
acf6c881d3 Updated platform specific #if's to report unimplemented code when compiling 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
2016-01-03 22:54:29 +00:00
Manolo Gouy
a3e48a4afd Use -(NSGraphicsContext*)[NSWindow graphicsContext] to obtain the adequate
graphics context to draw to a window. This requires Mac OS 10.4.
The advantage is that it is possible for a secondary thread to call 
Fl_Window::make_current() without needing to create an autorelease pool.

We save the native graphics state, and also the state with origin at top. 
Fl_X::q_release_context() restores the graphics state twice to return to
the native state. This allows to use a single graphics context for a single
window and a single thread.

Under 10.3, we have to create a new NSGraphicsContext when Fl_Window::make_current()
is called directly, so that secondary threads cannot call Fl_Window::make_current() without
having created an autorelease pool.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10816 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-07-24 22:17:36 +00:00
Lauri Kasanen
0eaa71e033 Mark the picture formats static, they don't change
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10632 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-03-17 09:00:50 +00:00
Lauri Kasanen
854c5ebd76 Correct HAVE_XRENDER preprocessor checks.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10629 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-03-16 18:16:27 +00:00
Lauri Kasanen
c91e48149b Add support for accelerated alpha blending under X11.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10628 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-03-16 18:12:28 +00:00
Manolo Gouy
1dd0cdcee9 Allow compilation with -std=c++11 on Mac OS X
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10560 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-02-08 06:48:19 +00:00
Manolo Gouy
186312db50 Removed useless extern void fl_restore_clip()
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10335 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-09-23 10:48:36 +00:00
Manolo Gouy
43d26240b5 Simpler implementation of Fl_GDI_Graphics_Driver::copy_offscreen_with_alpha() does just as well.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10334 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-09-23 10:36:58 +00:00
Manolo Gouy
afb08c015d Corrected drawing of RGBA images to Fl_Image_Surface and to Fl_Copy_Surface objects under WIN32.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10330 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-09-22 16:51:21 +00:00
Manolo Gouy
94d86bba5c Removed compilation warning.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10155 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-05-21 14:12:04 +00:00
Manolo Gouy
fe4d1af194 Check for use of the Fl_GDI_Printer_Graphics_Driver class to detect printer usage.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10111 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-02-22 15:04:44 +00:00
Albrecht Schlosser
ef952dfa53 Fix crash when Fl_Window::flush() is called before show() (STR #3028).
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-02-07 00:09:52 +00:00
Manolo Gouy
674b2475b9 Documentation: repair some instances of documented functions that did not appear in the index.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9719 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2012-11-13 14:45:42 +00:00
Matthias Melcher
78039ecb55 Replaced 10302 with 10301 for FLTK_ABI_VERSION
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9706 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2012-11-06 20:46:14 +00:00
Matthias Melcher
398acd9c2a STR 2705: moved all inline constructors (that I could find) from header files into source files. Even though this breaks downward compatibility, it does make dynamic linking possible for all classes.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9637 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2012-07-24 04:37:22 +00:00
Fabien Costantini
e67e798aeb Fixed build break on FLTK_ABI_VERSION >= 10302 introduce in r9293 as extern ref to fl_copy_offscreen would not be found anymore by linker... This can't be captured yet by the Jenkins continous intergration builds as the compilation is for the FLTK_ABIVERSION >= 10302
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9406 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2012-04-28 00:42:31 +00:00
Manolo Gouy
32d4bc4099 Fix STR#2810: removed all uses of function Fl_Device::class_name().
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9293 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2012-03-18 18:48:29 +00:00
Manolo Gouy
f6cb583e27 Replaced fl_copy_offscreen_with_alpha() by Fl_GDI_Graphics_Driver::copy_offscreen_with_alpha() and
fl_create_offscreen_with_alpha() by Fl_Quartz_Graphics_Driver::create_offscreen_with_alpha()

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9278 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2012-03-12 11:55:50 +00:00
Manolo Gouy
4715e1593e Use a new Fl_Quartz_Graphics_Driver or Fl_GDI_Graphics_Driver instance when printing.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9276 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2012-03-12 09:39:17 +00:00
Albrecht Schlosser
05f669c9ce Fixed a potential crash if Fl_Double_Window::flush() was called before show().
Thanks to Mathieu Peyrega for the patch in fltk.general [1] on Nov 14, 2011,
although I implemented it differently.
[1] http://www.fltk.org/newsgroups.php?gfltk.general+v:33946


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9188 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-11-28 12:32:56 +00:00
Greg Ercolano
4f4a8fc3c7 Modifications to all LGPL headers for STR #2685.
(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-07-19 04:49:30 +00:00
Albrecht Schlosser
5e7232e776 Janitorial code fixes: braces, indenting, FLTK coding standard.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8383 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-02-06 12:20:16 +00:00
Manolo Gouy
8072ef8ce8 Replaced a bunch of delete by delete[] where it's legitimate.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8362 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-02-02 18:39:34 +00:00
Manolo Gouy
18156dfb30 Removed global variable fl_surface that was not very useful because equivalent
to Fl_Surface_Device::surface().

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8360 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-02-02 12:42:47 +00:00
Manolo Gouy
bb29437427 Removed global variable fl_display_device that was not very useful because equivalent
to Fl_Display_Device::display_device().

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8359 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-02-02 11:29:18 +00:00
Manolo Gouy
bc509d32eb Fix STR #2504 (first part). Replaced HAVE _CAIRO by FLTK_HAVE_CAIRO and USE_CAIRO
by FLTK_USE_CAIRO everywhere.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8198 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-01-06 10:24:58 +00:00
Manolo Gouy
4beb3b88e8 Renamed Fl_Device::type() to Fl_Device::class_name() to avoid conflict or confusion
with Fl_Widget::type(). Added a setter function Fl_Device::class_name(const char *).

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8190 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-01-05 10:21:45 +00:00
Matthias Melcher
e454f97acc Fixed Copyright to 2010.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7903 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-11-28 21:06:39 +00:00
Manolo Gouy
5c55379301 Added Doxygen doc to offscreen drawing functions.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7720 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-10-12 12:34:19 +00:00
Manolo Gouy
8306c3d0b3 Fixed fl_XXX_offscreen functions when the current output goes to a printer or a PostScript device
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7671 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-07-09 17:31:33 +00:00
Manolo Gouy
c835c08bb3 Fixed fl_copy_offscreen when output goes to a Quartz printer context.
Output to a PostScript context still needs to be fixed.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7665 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-07-03 10:13:22 +00:00
Manolo Gouy
6c2274f011 fl_begin_offscreen/fl_end_offscreen: added fl_push_noclip/fl_pop_clip to render Mac consistent with other platforms
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7651 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-06-19 15:19:13 +00:00
Manolo Gouy
e6935ce29c Removed commented-out debugging statements
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7643 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-06-15 17:44:51 +00:00
Albrecht Schlosser
755f354ebe Fixed X11/XDBE double buffering (STR #2152, #2197). Both bugs could only be
seen if configure was run with --enable-xdbe (default in FLTK 1.3, optional
in FLTK 1.1).

src/Fl_Double_Window.cxx/Fl_Double_Window::resize():

	STR #2152: deallocate back buffer when window is enlarged in any
	dimension to force allocation of a new back buffer. This appears
	to be necessary for some window managers (e.g. Cygwin).

src/Fl_Overlay_Window.cxx/Fl_Overlay_Window::flush() and
src/Fl_Double_Window.cxx/Fl_Double_Window::flush():

	STR #2197: make sure that the entire overlay window will be drawn
	after a window redraw, because Fl_Double_Window::flush(1) erases
	the overlay as documented.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7636 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-06-09 08:36:25 +00:00