[Bf-blender-cvs] [2cf5211f8ab] uvimage-editor-drawing: Cleanup
Jeroen Bakker
noreply at git.blender.org
Fri Aug 21 08:47:31 CEST 2020
Commit: 2cf5211f8abf4acaacc97230504ed3816be00d50
Author: Jeroen Bakker
Date: Fri Aug 21 08:47:25 2020 +0200
Branches: uvimage-editor-drawing
https://developer.blender.org/rB2cf5211f8abf4acaacc97230504ed3816be00d50
Cleanup
===================================================================
M source/blender/draw/engines/image/image_engine.c
===================================================================
diff --git a/source/blender/draw/engines/image/image_engine.c b/source/blender/draw/engines/image/image_engine.c
index 36ea2239466..941f05380bc 100644
--- a/source/blender/draw/engines/image/image_engine.c
+++ b/source/blender/draw/engines/image/image_engine.c
@@ -142,8 +142,6 @@ static void image_cache_image(IMAGE_Data *id, Image *image, ImageUser *iuser, Im
if (pd->texture) {
eGPUSamplerState state = 0;
- GPUShader *shader = IMAGE_shaders_image_get();
- DRWShadingGroup *shgrp = DRW_shgroup_create(shader, psl->image_pass);
static float color[4] = {1.0f, 1.0f, 1.0f, 1.0f};
static float shuffle[4] = {1.0f, 1.0f, 1.0f, 1.0f};
int draw_flags = 0;
@@ -155,15 +153,6 @@ static void image_cache_image(IMAGE_Data *id, Image *image, ImageUser *iuser, Im
far_near[0] = ((Camera *)scene->camera->data)->clip_end;
}
- if (tex_tile_data != NULL) {
- draw_flags |= SIMA_DRAW_FLAG_TILED;
- DRW_shgroup_uniform_texture_ex(shgrp, "imageTileArray", pd->texture, state);
- DRW_shgroup_uniform_texture(shgrp, "imageTileData", tex_tile_data);
- }
- else {
- DRW_shgroup_uniform_texture_ex(shgrp, "imageTexture", pd->texture, state);
- }
-
if ((sima->flag & SI_USE_ALPHA) != 0) {
/* Show RGBA */
draw_flags |= SIMA_DRAW_FLAG_SHOW_ALPHA;
@@ -189,20 +178,25 @@ static void image_cache_image(IMAGE_Data *id, Image *image, ImageUser *iuser, Im
copy_v4_fl4(shuffle, 0.0f, 0.0f, 1.0f, 0.0f);
}
+ GPUShader *shader = IMAGE_shaders_image_get();
+ DRWShadingGroup *shgrp = DRW_shgroup_create(shader, psl->image_pass);
+ if (tex_tile_data != NULL) {
+ draw_flags |= SIMA_DRAW_FLAG_TILED;
+ DRW_shgroup_uniform_texture_ex(shgrp, "imageTileArray", pd->texture, state);
+ DRW_shgroup_uniform_texture(shgrp, "imageTileData", tex_tile_data);
+ }
+ else {
+ DRW_shgroup_uniform_texture_ex(shgrp, "imageTexture", pd->texture, state);
+ }
DRW_shgroup_uniform_vec2_copy(shgrp, "farNearDistances", far_near);
DRW_shgroup_uniform_vec4_copy(shgrp, "color", color);
DRW_shgroup_uniform_vec4_copy(shgrp, "shuffle", shuffle);
DRW_shgroup_uniform_int_copy(shgrp, "drawFlags", draw_flags);
DRW_shgroup_uniform_bool_copy(shgrp, "imgPremultiplied", use_premul_alpha);
-
DRW_shgroup_call(shgrp, pd->draw_batch, NULL);
}
else {
/* No image available. use the image unavailable shader. */
- GPUShader *shader = IMAGE_shaders_image_unavailable_get();
- DRWShadingGroup *grp = DRW_shgroup_create(shader, psl->image_pass);
- DRW_shgroup_uniform_block(grp, "globalsBlock", G_draw.block_ubo);
-
int image_size[2];
if (image && image->type == IMA_TYPE_R_RESULT) {
image_size[0] = (scene->r.xsch * scene->r.size) * 0.01f;
@@ -212,11 +206,14 @@ static void image_cache_image(IMAGE_Data *id, Image *image, ImageUser *iuser, Im
image_size[0] = image_size[1] = 256;
}
- /* sima->zoom = 1 texel covers (sima->zoom * sima->zoom) screen pixels.
+ /* sima->zoom texels covers (sima->zoom * sima->zoom) screen pixels.
* Creates a curve function for better visual result. */
float zoom_level = powf(MAX2(sima->zoom - 1.0, 0.1), 0.33f);
zoom_level = clamp_f(zoom_level, 1.25, 4.75);
+ GPUShader *shader = IMAGE_shaders_image_unavailable_get();
+ DRWShadingGroup *grp = DRW_shgroup_create(shader, psl->image_pass);
+ DRW_shgroup_uniform_block(grp, "globalsBlock", G_draw.block_ubo);
DRW_shgroup_uniform_float_copy(grp, "zoomScale", sima->zoom);
DRW_shgroup_uniform_float_copy(grp, "zoomLevel", zoom_level);
DRW_shgroup_uniform_ivec2_copy(grp, "imageSize", image_size);
@@ -275,6 +272,7 @@ static void IMAGE_cache_init(void *vedata)
static void IMAGE_cache_populate(void *UNUSED(vedata), Object *UNUSED(ob))
{
+ /* Function intentional left empty. `cache_populate` is required to be implemented. */
}
static void image_draw_finish(IMAGE_Data *vedata)
More information about the Bf-blender-cvs
mailing list