diff options
author | Jeroen Bakker <jeroen@blender.org> | 2020-01-27 18:28:55 +0300 |
---|---|---|
committer | Jeroen Bakker <jeroen@blender.org> | 2020-01-29 17:07:45 +0300 |
commit | 18c88eac171a814f94142d442494ea6f5eeeab02 (patch) | |
tree | 9a5fbc81db038a3d322b818e520d93c520e7da1e /source/blender/draw/engines/workbench/workbench_materials.c | |
parent | b683fcb62876f345a49bf66c94781a6fa789b946 (diff) |
Fix T73188: RenderResult as Camera BG Image
In blender 2.79 you could use a render result as a camera background
image. This is useful during layout/compositing. During Blender 2.80
development there were 2 issues introduced that removed this feature.
* to receive a render result the image required a lock. This lock wasn't passed and therefore no image was read from the result. Generating an GPUTexture from an Blender image also didn't do the locking.
* the iuser->scene field wasn't set what is required for render results.
This change adds an optional `ibuf` parameter to `GPU_texture_from_blender` that can be passed when available.
Reviewed By: fclem, brecht
Differential Revision: https://developer.blender.org/D6684
Diffstat (limited to 'source/blender/draw/engines/workbench/workbench_materials.c')
-rw-r--r-- | source/blender/draw/engines/workbench/workbench_materials.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/source/blender/draw/engines/workbench/workbench_materials.c b/source/blender/draw/engines/workbench/workbench_materials.c index 2219f5cf2dd..fc054b11d55 100644 --- a/source/blender/draw/engines/workbench/workbench_materials.c +++ b/source/blender/draw/engines/workbench/workbench_materials.c @@ -376,14 +376,15 @@ void workbench_material_shgroup_uniform(WORKBENCH_PrivateData *wpd, if (use_texture) { if (is_tiled) { GPUTexture *array_tex = GPU_texture_from_blender( - material->ima, material->iuser, GL_TEXTURE_2D_ARRAY); + material->ima, material->iuser, NULL, GL_TEXTURE_2D_ARRAY); GPUTexture *data_tex = GPU_texture_from_blender( - material->ima, material->iuser, GL_TEXTURE_1D_ARRAY); + material->ima, material->iuser, NULL, GL_TEXTURE_1D_ARRAY); DRW_shgroup_uniform_texture(grp, "image_tile_array", array_tex); DRW_shgroup_uniform_texture(grp, "image_tile_data", data_tex); } else { - GPUTexture *tex = GPU_texture_from_blender(material->ima, material->iuser, GL_TEXTURE_2D); + GPUTexture *tex = GPU_texture_from_blender( + material->ima, material->iuser, NULL, GL_TEXTURE_2D); DRW_shgroup_uniform_texture(grp, "image", tex); } DRW_shgroup_uniform_bool_copy( |