[Soc-2014-dev] Weekly Report #06 - Viewport FX III

Jason Wilkins jason.a.wilkins at gmail.com
Sat Jun 28 10:56:38 CEST 2014


This week:

- New Matrix and Vector Operations for Viewport FX

Campbell raised some concerns and I fixed some of them.  Still need some
more feedback about a couple of things however (what to name scale_m4 and
if translate_m4 should be changed)

- Apple and glX OpenGL Contexts

Committed work started last week which initializes OpenGL on OSX.  I also
started glX but things did not appear to be as easy as OSX.  While the
other systems let you select an OpenGL visual after a window is created glX
(at least the way it is written in GHOST) seems to have to select the
visual first.  This is different enough that I'll have to do more research
before I figure out what to do.  Antony offered to help if I could get a
basic skeleton written.

- Expanded GPU Module to Support Modern OpenGL

I think I would have liked to hold onto this commit a little longer, but I
wanted to show something for evaluation purposes and perhaps it is in
better shape than I think (so, maybe review can start).

I committed all of the source/blender/gpu code that I wrote the past two
years to the source/blender/gpu directory, but without the changes that
would break the rest of Blender.  There is still some code missing, because
adding it would break things, but I'll be adding that in the next few days.
 The idea is to keep things in working order.

One problem with doing this all at once is that things are in different
states of readiness, but determining how to break it up into smaller pieces
would probably be time consuming.  Instead I opted to include it all and it
should be fine because nothing is using it yet, so nothing breaks.

Next Week:

It is difficult to know where to start...

One thing code in the GPU module assumes is that Blender follows an "OpenGL
usage policy", which basically means that it can make certain assumptions
about OpenGL's state.  So I'd like to go ahead and make all the changes
associated with things like handling GL_BLEND state and the like.  That
shouldn't take long.

Another thing is that the GPU module uses a set of stubs or shims for
certain extensions in order to smooth out slight differences in OpenGL
versions and extensions.  This goes a little beyond with GLEW does.  This
is all internal to the GPU module.  Again this isn't a big task.  It mostly
affects GPU_draw.c because that file contains a lot of vertex buffer object
code.

On top of that, I'd like to go ahead and tackle the glX context creation
issue I mentioned as well as review the changes to GHOST once catch a
willing dev on IRC at a convenient time.

I also need to research how to integrate additional changes to the GPU
module so that legacy and modern OpenGL can coexist in the same
application.  The way I wrote the code originally required an all or
nothing approach.  This could be easy, but there might be a hitch.  I'll
know later this week after I've looked at it more.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.blender.org/pipermail/soc-2014-dev/attachments/20140628/7d2de84d/attachment.htm 


More information about the Soc-2014-dev mailing list