On 25 Jun 2010, at 18:01, Roman Kantor wrote: > Hi, I have encountered problem that fl_create_offscreen() fails on > certain platforms (win 7) under certain circumstances, eg when called > from menu. This problem appears only on some platforms - like win 7 > (on > win XP it seems to work fine). > > Under further investigation it looks like it is caused by the fact > that > fl_gc is NULL (probably fl_gc is reset to 0 after menu window is > closed > - maybe the callback is called AFTER the menu window destructuion?) at > that stage and CreateCompatibleBitmap() function (within > fl_create_offscreen()) does not have a valid DC reference. This means > that it is safe to call fl_create_ofscreen() only within draw() > methods > when fl_gc is valid. > > I have resolved (made work-around) the problem by postponing the > calls > to offscreen functions during redraw but in general I believe that it > should be possible to create/manipulate offscreens at any time. > > Any thoughts from Win32 API gurus?
I'm not a win32 API guru by any stretch, but I have observed the same (or very similar) effect on WinVista in the past, with code that works OK on Linux and OSX (and I *think* WinXP). What I did was add a make_current() call, based on the apps main window, just before creating the offscreen for the first time. (I think I did this for all platforms, not just #ifdef WIN32, and it seemed to be safe enough...) That seemed to be god enough to get things working robustly. -- Ian _______________________________________________ fltk mailing list [email protected] http://lists.easysw.com/mailman/listinfo/fltk

