Commit Graph

91 Commits

Author SHA1 Message Date
Manolo Gouy
2072fcd698 Allow fl_draw_image() with negative L parameter for Mac OS - continued.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11260 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-01 21:10:16 +00:00
Manolo Gouy
9c77129a28 Allow running fluid -c without opening the X11 display.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11259 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-01 20:44:56 +00:00
Manolo Gouy
a3d54d5d6c Correct the headers included by FL/Fl_Copy_Surface.H, following the new implementation of this class.
This change requires other changes in header inclusions by class Fl_Image_Surface.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11258 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-01 18:07:12 +00:00
Manolo Gouy
7decb3d3b2 Rewrite the Fl_Copy_Surface class with strict separation of public API and platform-related code.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11257 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-01 17:20:25 +00:00
Matthias Melcher
4af165781f Added missing virtua function headers
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11256 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-01 16:06:11 +00:00
Manolo Gouy
c646ecc0d3 Have fl_draw_image(buf,X,Y,W,H,D,L) support negative D and/or L arguments on Mac OS X - continued.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11255 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-01 15:22:37 +00:00
Matthias Melcher
95824506fe Moved timer code to screen drivers. Not sure if this should be in System Drivers instead.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11253 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-01 00:54:21 +00:00
Manolo Gouy
6d34c647ca Accept fl_draw_image(buf, X,Y,W,H,D,L) with negative D and/or L arguments on the Mac OS platform.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11251 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-29 17:35:49 +00:00
Manolo Gouy
1883e9d386 Remove declaration of Fl_Quartz_Graphics_Driver::create_offscreen_with_alpha() no longer used.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11248 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-27 18:05:36 +00:00
Albrecht Schlosser
d67e9ccb73 Fix compiler warnings (STR #2988) - final commit.
This commit includes all fixes from branch-1.3 (svn r 11243) and additional
fixes for warnings that crept in during the porting efforts, particularly
C++ ("//") comments in C and included header files, and some more.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11246 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-27 17:27:21 +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
c9eba2c3b5 Correct \file info for Doxygen
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11234 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-26 17:29:42 +00:00
Manolo Gouy
d8ac1b45c1 These files have been renamed from .h to .H
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11233 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-26 17:25:38 +00:00
Manolo Gouy
350cca5446 Use the FL_DOXYGEN preprocessor variable to remove all Doxygen warnings
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11232 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-26 17:17:20 +00:00
Manolo Gouy
e8a8cfc0b1 More .h renamed to .H
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11231 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-26 17:13:18 +00:00
Manolo Gouy
fe1a32a0ff Change #include following new file location
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11229 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-26 16:29:24 +00:00
Manolo Gouy
83dddfbfab Rename remaining src/drivers/XXX.h to XXX.H - continued
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11227 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-26 16:18:27 +00:00
Manolo Gouy
6287426b65 Rename all remaining src/drivers/XXX.h to XXX.H
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11226 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-26 16:12:43 +00:00
Manolo Gouy
df18e581af Rename Fl_Quartz_Display_Device.h to Fl_Quartz_Display_Device.H
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11225 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-26 15:59:22 +00:00
Manolo Gouy
4df3376ba9 Rename Fl_Xlib_Graphics_Driver.h to Fl_Xlib_Graphics_Driver.H
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11224 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-26 15:57:11 +00:00
Manolo Gouy
cf4825eedf Move PostScript-support files to src/drivers/PostScript/
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11222 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-26 15:24:08 +00:00
Manolo Gouy
682f950796 Create class Fl_Widget_Surface that supports draw(Fl_Widget *, int, int).
This simplifies the implementation of Fl_Copy_Surface and Fl_Image_Surface
which now are made to derive from Fl_Widget_Surface.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11220 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-26 12:51:47 +00:00
Manolo Gouy
7f17b915db Remove the useless pseudo run-time type information supported by the Fl_Device class.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11217 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-25 17:56:48 +00:00
Manolo Gouy
31793cbdba Remove the global variable fl_mask_bitmap - put it in the graphics driver's virtual API.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11216 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-25 10:14:28 +00:00
Manolo Gouy
14759eb387 Mac OS platform: make fl_draw_image() draw correctly depth-4 images with transparent areas.
This simplifies the drawing of Fl_Pixmap's.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11214 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-25 07:01:10 +00:00
Manolo Gouy
941c301ceb Fix Fl_RGB_Image::uncache() and Fl_Bitmap::uncache().
It is not possible to use fl_graphics_driver in these functions
because when they are called *fl_graphics_driver may have been
deleted. A solution is to use  Fl_Display_Device::display_device()->driver()
instead which is always valid.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11212 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-23 20:37:22 +00:00
Albrecht Schlosser
07ad8383ed Fix include files.
Note: ../../config_lib.h also includes <config.h>.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11199 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-20 15:56:13 +00:00
Matthias Melcher
093c0c7f73 Fixes for X11
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11197 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-19 22:43:40 +00:00
Matthias Melcher
399501783c Add example code to Fl_Window_Driver.
Some refactoring of a take_focus() function into driver structures (not too happy with it, because it has some kind of bug fix. However, shouldn't *all* Fl_Windows always have an FL_Window_Driver?)

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11196 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-19 22:37:41 +00:00
Matthias Melcher
052401a34e Instantiate the right Fl_Window_Driver.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11195 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-19 22:21:02 +00:00
Matthias Melcher
22d302e242 Add System Driver and Window Driver.
Adding two new driver types for each platform. Fl_..._System_Drivers exist once per application and provide an interface for to file and filename handling, timers, locking, multithreading, etc. .

 The Fl_..._Window_Driver class is instantiated once for every window in the system and corresponds closely to (and actually inherits from) Fl_X. The difference now is, that there is one Fl_X/Fl_Window_Driver base class, and one platform version that derives from it.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11193 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-19 21:41:02 +00:00
Manolo Gouy
2b6482263b Fix Fl_X11_Screen_Driver::wait(). The fractals demo is back.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11192 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-19 12:47:45 +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
6d766cc681 Update the fl_gc global variable also when Fl_Graphics_Driver::set_gc() is called.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11190 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-19 11:52:45 +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
Albrecht Schlosser
6ce27012a9 Fix Fl::grab(win) under Linux (program crashed in menus).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11187 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-18 01:45:12 +00:00
Albrecht Schlosser
b4e57e0e26 Fix flush() call (Linux) - makes drawing work again, but still buggy.
With this fix drawing works again under Linux. Tiny diff, but ...

Known bugs: opening Fl_Choice dropdown menus crashes the program.
In my experience it takes a while (5-10 seconds) before the crash
occurs. Maybe an endless loop that eventually "kills" the stack ?


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11186 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-17 23:54:09 +00:00
Albrecht Schlosser
4a1662f1da Fix compilation under Linux - compiles, but doesn't work :-(
I moved all timer related (X11) stuff from src/Fl.cxx to
src/drivers/X11/Fl_X11_Screen_Driver.cxx and added externals as
done by Ian in a previous commit for the WinAPI screen driver.

I did not (yet) remove the code from Fl_x.cxx though, but disabled it. See:
  #if (0) // *FIXME* moved to src/drivers/X11/Fl_X11_Screen_Driver.cxx

Current state is that FLTK can be compiled and linked again (under Linux)
but doesn't work (shows empty windows only).

I thought it was worth to commit my work, but can't check what's going on
right now - other devs should feel free to continue this.

PS: the new code in src/drivers/X11/Fl_X11_Screen_Driver.cxx was just
dropped in, keeping the right order for usage of static helper functions,
but should be fixed in all regards (order, logic, ...).


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11185 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-17 12:16:59 +00:00
Albrecht Schlosser
f7ef143c4f Fix typos.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11184 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-17 11:23:26 +00:00
Manolo Gouy
4bdfc28670 Reformatting.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11182 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-15 17:28:50 +00:00
Manolo Gouy
88f20cfd15 Improve image drawing to double-resolution Fl_Image_Surface objects (Mac OS only).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11180 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-15 17:21:23 +00:00
Ian MacArthur
5918384879 FL porting Win32 build fix:
Fix a typo. in Fl_WinAPI_Screen_Driver.cxx that was
preventing linking.
Also hack around a build issue by adding some extra
extern calls to Fl_WinAPI_Screen_Driver.cxx.

I suspect that these are also needed in
Fl_X11_Screen_Driver.cxx but do not have an X11 box
here to test with.

In any case, these added externs should probably be
in an internal header somewhere, not in the code
like I have done!

Currently builds/runs OK on Win7 with these changes.



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11178 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-15 13:52:58 +00:00
Manolo Gouy
ec290bc9e0 Remove Fl_X::q_fill_context() used only once.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11171 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-14 06:36:20 +00:00
Manolo Gouy
6439f34ee7 Remove Fl_X::q_clear_clipping() used only once.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11170 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-14 06:19:26 +00:00
Manolo Gouy
a349dc994e Move Fl_Quartz_Graphics_Driver::draw_CGImage() to Fl_Quartz_Graphics_Driver_image.cxx
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11169 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-14 06:02:12 +00:00
Albrecht Schlosser
8630bdbed2 [Cairo] Remove part of the dependency of FL/Fl.H on config.h.
To use Fl_Cairo_Window one did not only need to configure with --enable-cairo,
but also needed to #include <config.h> before #include <FL/Fl.H>.

This commit removes the smaller part of the dependency of the public header
file FL/Fl.H on config.h. This needs a better solution in FLTK 1.4.0.

The user still needs to define FLTK_HAVE_CAIRO _before_ #include <FL/Fl.H>.

Note: This is not compatible with fluid, since fluid _always_ includes
FL/Fl.H as the first statement in generated header files.

See also the discussion in fltk.general:

https://groups.google.com/d/msg/fltkgeneral/_C1OJhMLQl0/pHUFtz9SCwAJ

Note: also fixed a typo in src/drivers/X11/Fl_X11_Screen_Driver.cxx


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11168 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-13 18:02:17 +00:00
Matthias Melcher
d8f96b579d Moed Fl::visual and System_Scheme to the driver
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11166 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-13 16:12:57 +00:00
Manolo Gouy
4af616a7a2 New member function Fl_Quartz_Graphics_Driver::draw_CGImage() used internally for all image drawing.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11165 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-13 14:48:13 +00:00
Matthias Melcher
c95169ea49 Refactoring get_system_colors() into Fl_Screen_Driver
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11164 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-13 13:17:29 +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