On 28.01.2011, at 10:11, MacArthur, Ian (SELEX GALILEO, UK) wrote:
>
>> Google has announced the Google Summer of Code 2011 :
>> http://www.google-melange.com/document/show/gsoc_program/googl
>> e/gsoc2011/timeline
>>
>> I hope FLTK tries to get into it.
>
> It would be cool, but I doubt we can commit to the mentoring
> responsibilities, and do it well enough it be worthwhile. I know that I
> can not - anyione else?
>
> I know a lot of folk think GSOC is like free labour, but it is not -
> done right it is a valuable learning opportunity for the student (and
> mentor!)
> Projects that treat it like free labour don't get asked back...
Well, I spent a few evenings setting up an application for 2010 (see below),
but were blown off pretty unceremoniously. I am sure that they have many
applicants, and I am not bitter, but I was a bit surprised. Maybe I
misunderstood something or my application was wrong, I don't know.
I would have a hard time to make room for mentoring, this year much more than
last year. I will not be able to do it?
>> A great entry would be to completely modularize the system
>> dependent stuff into
>> a system class with functions like SYS_CreateWindow (....),
>> SYS_CloseWindow (....),
>> SYS_GetEventsforWindow (....) to make porting easier and
>
> Um, is this not what the Fl_Device_* abstraction stuff is doing in 1.3
> now anyway? Or am I missing some point?
It's doing it for the graphics system now. I assume he means the same thing for
the window and event system.
>> maybe help it to get a SDL 1.3 systemclass
>> done, which would immediately enable it to run on Android,
>> iPhone, ....
>
> Not sure about SDL - for me it is in the same category as Cairo; works,
> looks nice, portable. But can be slow... And often have no prospect of
> h/w acceleration...
>
> I think we might do better with GL or GL-ES, as they are also portable
> and there's a good chance they will be h/w accelerated.
Assuming we have a windw/event device system in place, I would love to have
minimal drivers for all these Device instances, because all you need to run a
minimal FLTK is a timer event, a click event, and the ability to set the color
of a single pixel. Any OS that can provide these three functions can then run
FLTK apps and would be sufficient for a minimal port.
The developer who's porting FLTK can then work his way up and add more and more
features into the Device interface.
- Matthias
---
We will be mentoring Google's Summer Of Code program with the following ideas:
1: New Application "Fluff"
"Fluff" (working title) will be a new application include with the
FLTK distribution. Fluff will help users to quickly create new
widgets, projects, or libraries. It will help create packages for
distribution, and allow for easy download and installation.
Fluff will be an entirely new program. You will help designing the
application, designing the UI, and implementing it with the help
of the FLTK GUI library.
* 1/2011: The functionality of FLuff will likely go into Fluid, moving
Fluid from an interface designer to a rapid prototyping app designer.
2: New Widget "Fl_Canvas" with drawing application
Fl_Canvas will be a widget that allows easy drawing into back- and
front buffers, zooming, etc. . It will be the base widget for image
manipulation and drawing, and will become an integral part of FLTK.
You will be designing the API for this widget and implement it based
on the existing drawing functions of FLTK. For some feature a base
knowledge in the underlying platforms (X11, WIN32, Cocoa) may be
needed. You will prove the functionality of the widget by designing
and writing a simple paint program.
* 1/2011: still nice-to-have
3: New Library "fltk_connect"
"fltk_connect" will be a new library within the FLTK pack of libs. It
will include Widgets for serial connections, TCP/IP, and based on that
a selection of protocols, likely FTP and HTTP.
You will design the API and feature set and implement the widgets.
Some sample code exists and should be easily integrated. A basic
knowledge in BSD sockets and an understanding of threads is would
be helpful.
* 1/2011: mostly implemented (TCP/IP, FTP, etc.) but would need integration,
error handling, documentation
4: New Rendering Device based on OpenGL "Fl_GL_Device"
FLTK uses a Device abstraction to render all graphics onto the screen.
This particular device will allow innovative user interfaces that
can "hover" on top of OpenGL graphics, comparable to a Heads-Up-
Display.
You will implement this new class based on the API of Fl_Device. A
basic knowledge of OpenGL is required. You will implement a test
application that show this great feature.
* 1/2011: very current!
5: SWIG Integration
FLTK is based on C++, but its API has been ported to a multitude
of languages, like Python and D. SWIG greatly simplifies this task
by providing a wrapper interface for C++ based libraries.
http://www.swig.org/
You will be updating and improving the Interface files required to
link FLTK to new languages. You will be writing a few basic (or
more involved, if you like) examples that show the working wrappers.
This task is based on pyFLTK:
http://pyfltk.sourceforge.net/
* 1/2011: very current!
6: Conceptual work and Implementation: Code Un-Fork (FLTK-123)
FLTK has gone through a code fork many years ago. This fork regularly
leads to great confusion among users. At this point, FLTK1 is the
stable branch, but FLTK2 has a more modern API.
You will help us find a way to map the newer FLTK2 API onto the stable
guts of FLTK1 while staying compatible, generating FLTK3. We do have
a pretty good plan for this, but if you are a C++ guru, you can help
us make the impossible - and your name will be remembered forever.
* 1/2011: very current!
_______________________________________________
fltk-dev mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-dev