Difference between revisions of "New Cross-Platform 2D Framebuffer"
Starseeker (talk | contribs) (Cross Platform framebuffer) |
(consistency) |
||
(6 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | |||
− | |||
BRL-CAD displays its raytracing output as it is generated by using a framebuffer. Currently BRL-CAD has specific framebuffers for X11 Opengl (ogl), Windows OpenGL (wgl), and raw X11 (X), in addition to a variety of more special purpose and experimental framebuffers. A single, high performance, cross platform framebuffer is of interest to BRL-CAD. | BRL-CAD displays its raytracing output as it is generated by using a framebuffer. Currently BRL-CAD has specific framebuffers for X11 Opengl (ogl), Windows OpenGL (wgl), and raw X11 (X), in addition to a variety of more special purpose and experimental framebuffers. A single, high performance, cross platform framebuffer is of interest to BRL-CAD. | ||
− | This task, | + | This task, could utilize a cross-platform application framework such as Qt or OGRE or it could utilize some other approach. In addition to Qt or OGRE, another candidate could be the pxCore library ( http://code.google.com/p/pxcore/ ) or GLUT. |
− | + | Whatever the solution, it would ideally be implemented in such a way that it can be embedded into a Tk window and be a "drop in replacement" for existing stand-alone and embedded graphical framebuffers on multiple platforms. Hardware acceleration should not be required, but leveraging it automatically when it's available would be great. | |
# Review current framebuffer code and related code (in particular, isst) to identify features needed for a framebuffer | # Review current framebuffer code and related code (in particular, isst) to identify features needed for a framebuffer | ||
− | # Identify approach (pxCore, | + | # Identify approach (Qt, OGRE, pxCore, custom code, etc) |
# Implement working code, including: | # Implement working code, including: | ||
#*per-scan-line drawing - display update should not have to wait for a completed raytrace | #*per-scan-line drawing - display update should not have to wait for a completed raytrace | ||
Line 18: | Line 16: | ||
A good proposal for this task will need to spell out a fair number of specifics and should do some homework - "research and implement framebuffer code" would be a weak submission. The X11 framebuffer (if_X24.c) would be good code to review when developing a proposal for this task. | A good proposal for this task will need to spell out a fair number of specifics and should do some homework - "research and implement framebuffer code" would be a weak submission. The X11 framebuffer (if_X24.c) would be good code to review when developing a proposal for this task. | ||
− | Requirements | + | =References= |
+ | |||
+ | * src/libfb | ||
+ | * include/fb.h | ||
+ | * include/fbio.h | ||
+ | * include/fbserv_obj.h | ||
+ | |||
+ | =Requirements= | ||
+ | |||
*Familiarity with C and C++ | *Familiarity with C and C++ | ||
*(optional) Familiarity with cross platform graphical drawing APIs and issues | *(optional) Familiarity with cross platform graphical drawing APIs and issues | ||
− | |||
− |
Latest revision as of 09:08, 24 March 2011
BRL-CAD displays its raytracing output as it is generated by using a framebuffer. Currently BRL-CAD has specific framebuffers for X11 Opengl (ogl), Windows OpenGL (wgl), and raw X11 (X), in addition to a variety of more special purpose and experimental framebuffers. A single, high performance, cross platform framebuffer is of interest to BRL-CAD.
This task, could utilize a cross-platform application framework such as Qt or OGRE or it could utilize some other approach. In addition to Qt or OGRE, another candidate could be the pxCore library ( http://code.google.com/p/pxcore/ ) or GLUT.
Whatever the solution, it would ideally be implemented in such a way that it can be embedded into a Tk window and be a "drop in replacement" for existing stand-alone and embedded graphical framebuffers on multiple platforms. Hardware acceleration should not be required, but leveraging it automatically when it's available would be great.
- Review current framebuffer code and related code (in particular, isst) to identify features needed for a framebuffer
- Identify approach (Qt, OGRE, pxCore, custom code, etc)
- Implement working code, including:
- per-scan-line drawing - display update should not have to wait for a completed raytrace
- good drawing performance - a fast raytrace should display quickly, not have to wait for framebuffer drawing to catch up
- keyboard and mouse input (there is some)
- Can start development with reading in lines from a pix file instead of hooking in the raytracer in order to optimize display performance, but should progress to using the raytracer.
- Testing (ideally cross platform) - load a .g model, raytrace it and display the results. Ideally integrated into MGED.
A good proposal for this task will need to spell out a fair number of specifics and should do some homework - "research and implement framebuffer code" would be a weak submission. The X11 framebuffer (if_X24.c) would be good code to review when developing a proposal for this task.
References[edit]
- src/libfb
- include/fb.h
- include/fbio.h
- include/fbserv_obj.h
Requirements[edit]
- Familiarity with C and C++
- (optional) Familiarity with cross platform graphical drawing APIs and issues