From e4ea5e5810928ed3da2119a9a4a646bb6991436d Mon Sep 17 00:00:00 2001 From: Benoit Bolsee Date: Tue, 21 Mar 2017 00:26:52 +0100 Subject: 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. --- source/blender/gpu/intern/gpu_draw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender') 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; } } -- cgit v1.2.3