[Bf-blender-cvs] [40945fc2834] tmp-workbench-rewrite2: matcaps: avoid the extra copy
Miguel Pozo
noreply at git.blender.org
Tue Oct 11 22:50:15 CEST 2022
Commit: 40945fc28342cb58d1aa834453b38bdafb93ff8e
Author: Miguel Pozo
Date: Tue Oct 11 22:50:09 2022 +0200
Branches: tmp-workbench-rewrite2
https://developer.blender.org/rB40945fc28342cb58d1aa834453b38bdafb93ff8e
matcaps: avoid the extra copy
===================================================================
M source/blender/draw/engines/workbench/workbench_engine.cc
===================================================================
diff --git a/source/blender/draw/engines/workbench/workbench_engine.cc b/source/blender/draw/engines/workbench/workbench_engine.cc
index 43946f4b498..d1fe5a07b78 100644
--- a/source/blender/draw/engines/workbench/workbench_engine.cc
+++ b/source/blender/draw/engines/workbench/workbench_engine.cc
@@ -139,19 +139,21 @@ class Instance {
ImBuf *matcap_specular = studio_light->matcap_specular.ibuf;
if (matcap_diffuse && matcap_diffuse->rect_float) {
current_matcap = studio_light->name;
- int size = matcap_diffuse->x * matcap_diffuse->y * 4;
int layers = 1;
- Vector<float> load_buffer = {};
- load_buffer.extend(matcap_diffuse->rect_float, size);
+ float *buffer = matcap_diffuse->rect_float;
+ Vector<float> combined_buffer = {};
if (matcap_specular && matcap_specular->rect_float) {
- load_buffer.extend(matcap_specular->rect_float, size);
+ int size = matcap_diffuse->x * matcap_diffuse->y * 4;
+ combined_buffer.extend(matcap_diffuse->rect_float, size);
+ combined_buffer.extend(matcap_specular->rect_float, size);
+ buffer = combined_buffer.begin();
layers++;
}
resources.matcap_tx = Texture(current_matcap.c_str(),
GPU_RGBA16F,
int2(matcap_diffuse->x, matcap_diffuse->y),
layers,
- load_buffer.begin());
+ buffer);
}
}
}
More information about the Bf-blender-cvs
mailing list