Blender Git Loki
Git Commits -> Revision 752ad1b
Revision 752ad1b by Sergey Sharybin (master) April 2, 2013, 17:28 (GMT) |
More usage of GLSL for color managed image drawing Uses GLSL for drawing image in Image Editor space. This requires change in image_buffer_rect_update, so original float buffer is being updated as well. This is unlikely be something bad, but will keep an eye on this change. Also no byte buffer allocation happens there, this is so because byte buffer used for display only and in case of GLSL display such allocation and partial update is just waste of time. Also switched OpenGL render from using CPU color space linearization to GLSL color space transform. Makes OpenGL rendering pretty much faster (but still slower than in 2.60). internal changes: - Added functions to setup GLSL shader for color space conversion in colormanagement.c. Currently conversion form a colorspace defined by a role to linear space is implemented. Easy to extend to other cases. - Added helper functions to glutil.c which does smarter image buffer draw (calling all needed OCIO stuff, editors now could draw image buffer with a single function call -- all the checks are done in glutil.c). - Also added helper function for buffer linearization from a given role to glutil.c. Everyone now able to linearize buffer with a single call. This function will do nothing is GLSL routines fails or not supported. And one last this: this function uses offscreen drawing, could potentially give issues on some cards, also will keep an eye on this. |
Commit Details:
Full Hash: 752ad1bc375663f4bab649dd558f7334cbe03a1c
SVN Revision: 55733
Parent Commit: f871d9a
Lines Changed: +205, -88
9 Modified Paths:
/source/blender/editors/include/BIF_glutil.h (+11, -0) (Diff)
/source/blender/editors/render/render_internal.c (+14, -6) (Diff)
/source/blender/editors/render/render_opengl.c (+10, -5) (Diff)
/source/blender/editors/screen/CMakeLists.txt (+1, -0) (Diff)
/source/blender/editors/screen/glutil.c (+92, -0) (Diff)
/source/blender/editors/space_clip/clip_draw.c (+9, -60) (Diff)
/source/blender/editors/space_image/image_draw.c (+1, -9) (Diff)
/source/blender/imbuf/IMB_colormanagement.h (+11, -4) (Diff)
/source/blender/imbuf/intern/colormanagement.c (+56, -4) (Diff)
/source/blender/editors/render/render_internal.c (+14, -6) (Diff)
/source/blender/editors/render/render_opengl.c (+10, -5) (Diff)
/source/blender/editors/screen/CMakeLists.txt (+1, -0) (Diff)
/source/blender/editors/screen/glutil.c (+92, -0) (Diff)
/source/blender/editors/space_clip/clip_draw.c (+9, -60) (Diff)
/source/blender/editors/space_image/image_draw.c (+1, -9) (Diff)
/source/blender/imbuf/IMB_colormanagement.h (+11, -4) (Diff)
/source/blender/imbuf/intern/colormanagement.c (+56, -4) (Diff)