diff options
author | Benoit Bolsee <benoit.bolsee@online.be> | 2017-03-21 02:26:52 +0300 |
---|---|---|
committer | Benoit Bolsee <benoit.bolsee@online.be> | 2017-03-21 02:26:52 +0300 |
commit | e4ea5e5810928ed3da2119a9a4a646bb6991436d (patch) | |
tree | c20f4980b6d5e75e904c962b2edfdb9bebac7b21 /source/blender | |
parent | 13d8661503f07a16da15f75d9fc9597e43d78283 (diff) |
BGE: 2D filter additions.
gpu_draw: skip color management for textures declared as 'non-color'.
New reserved names in 2D filters: bgl_ObjectTextureX (X=0 to 4) to
access texture channels 0 to 4 of the object on which the 2D filter
is defined.
Force U.use_16bit_textures to 1 in the blender player to give access to
floating point textures in the 2D fitlers shaders.
bge.logic.setOffScreen(True) to define and use a floating point offscreen
render buffer of the same size than the framebuffer in the main BGE loop.
Useful to get floating point results from 2D filters. The offscreen render
buffer will automatically be used by bge.texture.ImageViewport if it's enabled.
It is legal to call bge.logic.setOffScreen(True/False) to disable and reenable
the framebuffer on a frame by frame basis.
New refresh mode for bge.texture.ImageViewport and bge.texture.ImageRender
objects:
iv.refresh(buffer, mode)
mode = "DEPTH" to retrieve floating point depth buffer
= "RG32F" to retrieve red and green channels as floating point.
= "RGB32F" to retrieve red, green and blue channels as floating point
= "RGBA32F" to retrieve red, green, blue and alpha channels as floating point.
For ImageViewport and ImageRender, refresh() bypasses all filters and object
options and retrieve directly from the frame buffer or render buffer.
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/gpu/intern/gpu_draw.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/source/blender/gpu/intern/gpu_draw.c b/source/blender/gpu/intern/gpu_draw.c index 7936811ab4d..83b9b07fc37 100644 --- a/source/blender/gpu/intern/gpu_draw.c +++ b/source/blender/gpu/intern/gpu_draw.c @@ -641,7 +641,7 @@ int GPU_verify_image( } /* TODO unneeded when float images are correctly treated as linear always */ - if (!is_data) { + if (!is_data && !(ibuf->colormanage_flag & IMB_COLORMANAGE_IS_DATA)) { do_color_management = true; } } |