Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Eisel <julian@blender.org>2022-01-17 20:24:25 +0300
committerJulian Eisel <julian@blender.org>2022-01-17 20:26:32 +0300
commit8af22719d0c98e24104d01089ecb0cff840df7e8 (patch)
treee32823ba1b6310d54e7432c08fe496e73fedef6f
parentfa1fef50817783bf4e2ba72a3b26807d88090cdd (diff)
Cleanup: Remove now redundant performance workaround for asset previews
Not needed anymore after aa0ecd179. The removed function was identical to `icon_draw_rect()` now. Reverts ab7214ca2ef9.
-rw-r--r--source/blender/editors/interface/interface_icons.c76
1 files changed, 1 insertions, 75 deletions
diff --git a/source/blender/editors/interface/interface_icons.c b/source/blender/editors/interface/interface_icons.c
index 085b7d04be9..18018461ac2 100644
--- a/source/blender/editors/interface/interface_icons.c
+++ b/source/blender/editors/interface/interface_icons.c
@@ -1478,78 +1478,6 @@ PreviewImage *UI_icon_to_preview(int icon_id)
return NULL;
}
-/**
- * Version of #icon_draw_rect() that uses the GPU for scaling. This is only used for
- * #ICON_TYPE_IMBUF because it's a back-ported fix for performance issues, see T92922. Only
- * File/Asset Browser use #ICON_TYPE_IMBUF right now, which makes implications more predictable.
- *
- * TODO(Julian): This code is mostly duplicated. #icon_draw_rect() should be ported to use the GPU
- * instead (D13144).
- */
-static void icon_draw_rect_fast(float x,
- float y,
- int w,
- int h,
- float UNUSED(aspect),
- int rw,
- int rh,
- uint *rect,
- float alpha,
- const float desaturate)
-{
- int draw_w = w;
- int draw_h = h;
- int draw_x = x;
- /* We need to round y, to avoid the icon jittering in some cases. */
- int draw_y = round_fl_to_int(y);
-
- /* sanity check */
- if (w <= 0 || h <= 0 || w > 2000 || h > 2000) {
- printf("%s: icons are %i x %i pixels?\n", __func__, w, h);
- BLI_assert_msg(0, "invalid icon size");
- return;
- }
- /* modulate color */
- const float col[4] = {alpha, alpha, alpha, alpha};
-
- float scale_x = 1.0f;
- float scale_y = 1.0f;
- /* rect contains image in 'rendersize', we only scale if needed */
- if (rw != w || rh != h) {
- /* preserve aspect ratio and center */
- if (rw > rh) {
- draw_w = w;
- draw_h = (int)(((float)rh / (float)rw) * (float)w);
- draw_y += (h - draw_h) / 2;
- }
- else if (rw < rh) {
- draw_w = (int)(((float)rw / (float)rh) * (float)h);
- draw_h = h;
- draw_x += (w - draw_w) / 2;
- }
- scale_x = draw_w / (float)rw;
- scale_y = draw_h / (float)rh;
- /* If the image is squared, the `draw_*` initialization values are good. */
- }
-
- /* draw */
- eGPUBuiltinShader shader;
- if (desaturate != 0.0f) {
- shader = GPU_SHADER_2D_IMAGE_DESATURATE_COLOR;
- }
- else {
- shader = GPU_SHADER_2D_IMAGE_COLOR;
- }
- IMMDrawPixelsTexState state = immDrawPixelsTexSetup(shader);
-
- if (shader == GPU_SHADER_2D_IMAGE_DESATURATE_COLOR) {
- immUniform1f("factor", desaturate);
- }
-
- immDrawPixelsTexScaledFullSize(
- &state, draw_x, draw_y, rw, rh, GPU_RGBA8, true, rect, scale_x, scale_y, 1.0f, 1.0f, col);
-}
-
static void icon_draw_rect(float x,
float y,
int w,
@@ -1867,9 +1795,7 @@ static void icon_draw_size(float x,
ImBuf *ibuf = icon->obj;
GPU_blend(GPU_BLEND_ALPHA_PREMULT);
- /* These icons are only used by the File/Asset Browser currently. Without this `_fast()`
- * version, there may be performance issues, see T92922. */
- icon_draw_rect_fast(x, y, w, h, aspect, ibuf->x, ibuf->y, ibuf->rect, alpha, desaturate);
+ icon_draw_rect(x, y, w, h, aspect, ibuf->x, ibuf->y, ibuf->rect, alpha, desaturate);
GPU_blend(GPU_BLEND_ALPHA);
}
else if (di->type == ICON_TYPE_VECTOR) {