tornavis/source/blender
Sergey Sharybin 2dff7c01ad Implement GPU-side display transform for clip editor
Implemented using GLSL API from OpenColorIO library and
some general functions were added to it's c-api:

- OCIO_setupGLSLDraw prepares OpenGL context for GPU-based
  transformation for a giver processor.

  This function compiles and links shader, sets  up it's
  argument. After this transformation would be applied
  on an image displaying as a 2D texture.

  So, glaDrawPixelsTex called after OCIO_setupGLSLDraw will
  do a proper color space transform.

- OCIO_finishGLSLDraw restores OpenGL context after all
  color-managed display is over.

- OCIO_freeOGLState frees allocated state structure used
  for cacheing some GLSL-related stuff.

There're some utility functions in IMB_colormanagent which
are basically proxies to lower level OCIO functions but
which could be used from any place in blender.

Chacheing of movie clip frame on GPU is also removed now,
and either glaDrawPixelsTex or glaDrawPixelsAuto are used
for display now. This is so no code duplication happens
now and no large textures are lurking around in GPU memory.

Known issues:
- Texture buffer and GLSL are no longer checking for
  video card capabilities, possibly could lead to some
  artifacts on crappy drivers/cards.

- Only float buffers are displaying using GLSL, byte
  buffers will still use fallback display method.

  This is to be addressed later.

- If RGB curves are used as a part of display transform,
  GLSL display will also be disabled. This is also thing
  to be solved later.

Additional changes:

- glaDrawPixelsTexScaled will now use RGBA16F as an
  internal format of storing textures when it's used
  to draw float buffer. This is needed so LUT are
  applied without precision loss.
2013-03-29 16:02:27 +00:00
..
avi style cleanup: 2013-03-26 07:29:01 +00:00
blenfont I18n: various fixing. 2013-03-28 15:41:43 +00:00
blenkernel misc minor edits. 2013-03-29 06:25:22 +00:00
blenlib misc minor edits. 2013-03-29 06:25:22 +00:00
blenloader Implement GPU-side display transform for clip editor 2013-03-29 16:02:27 +00:00
bmesh code cleanup: python/pep8 and double-promotion warnings. 2013-03-28 19:33:14 +00:00
collada misc minor edits. 2013-03-29 06:25:22 +00:00
compositor misc minor edits. 2013-03-29 06:25:22 +00:00
datatoc avoid using strlen() for comparisons in for loops. for expanding whitespace in the text editor and ui paste. 2012-12-15 07:57:16 +00:00
editors Implement GPU-side display transform for clip editor 2013-03-29 16:02:27 +00:00
gpu style cleanup: osl and NULL pointer use, also correct sequencer gap operator id's 2013-03-27 20:27:07 +00:00
ikplugin code cleanup: favor braces when blocks have mixed brace use. 2013-03-09 03:46:30 +00:00
imbuf Implement GPU-side display transform for clip editor 2013-03-29 16:02:27 +00:00
makesdna Implement GPU-side display transform for clip editor 2013-03-29 16:02:27 +00:00
makesrna misc minor edits. 2013-03-29 06:25:22 +00:00
modifiers code cleanup: quiet shadow warning. 2013-03-23 17:11:03 +00:00
nodes Fix for node groups, now exposing a socket will copy the default value from internal nodes again. Also this value can be changed in the node group Interface panel. 2013-03-28 10:32:04 +00:00
python style cleanup: 2013-03-26 07:29:01 +00:00
quicktime style cleanup: 2013-03-26 07:29:01 +00:00
render misc minor edits. 2013-03-29 06:25:22 +00:00
windowmanager misc minor edits. 2013-03-29 06:25:22 +00:00
CMakeLists.txt Move opencl and reigidbody from source/blender/ to intern/ 2013-02-01 06:24:49 +00:00
SConscript Move opencl and reigidbody from source/blender/ to intern/ 2013-02-01 06:24:49 +00:00