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:
authorThomas Dinges <blender@dingto.org>2016-05-12 15:51:42 +0300
committerThomas Dinges <blender@dingto.org>2016-05-12 15:51:42 +0300
commit3c85e1ca1a916fe2ded9ab508f4cd55a2ee22549 (patch)
tree97d80514ed304f00ca264da319b4861ed879f60d /intern/cycles/kernel/kernels/cpu/kernel.cpp
parentcde10e774c39bc4359259558abed6263ed15c392 (diff)
Cycles: Add support for single channel byte textures.
This way, we also save 3/4th of memory for single channel byte textures (e.g. Bump Maps). Note: In order for this to work, the texture *must* have 1 channel only. In Gimp you can e.g. do that via the menu: Image -> Mode -> Grayscale
Diffstat (limited to 'intern/cycles/kernel/kernels/cpu/kernel.cpp')
-rw-r--r--intern/cycles/kernel/kernels/cpu/kernel.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/intern/cycles/kernel/kernels/cpu/kernel.cpp b/intern/cycles/kernel/kernels/cpu/kernel.cpp
index 960012e95e3..365ce891354 100644
--- a/intern/cycles/kernel/kernels/cpu/kernel.cpp
+++ b/intern/cycles/kernel/kernels/cpu/kernel.cpp
@@ -138,6 +138,22 @@ void kernel_tex_copy(KernelGlobals *kg,
tex->extension = extension;
}
}
+ else if(strstr(name, "__tex_image_byte")) {
+ texture_image_uchar *tex = NULL;
+ int id = atoi(name + strlen("__tex_image_byte_"));
+ int array_index = id - TEX_IMAGE_BYTE_START_CPU;
+
+ if(array_index >= 0 && array_index < TEX_NUM_BYTE_IMAGES_CPU) {
+ tex = &kg->texture_byte_images[array_index];
+ }
+
+ if(tex) {
+ tex->data = (uchar*)mem;
+ tex->dimensions_set(width, height, depth);
+ tex->interpolation = interpolation;
+ tex->extension = extension;
+ }
+ }
else
assert(0);
}