diff options
author | Thomas Dinges <blender@dingto.org> | 2016-05-28 00:12:13 +0300 |
---|---|---|
committer | Thomas Dinges <blender@dingto.org> | 2016-05-28 00:12:13 +0300 |
commit | 2f457b76490bec3f195691e6da64ef38bf77502a (patch) | |
tree | 4be41d6eb02abbdceb7b58bdbcca621f510adc6a /intern | |
parent | 2ee063868dca9abb7f76be101539fde70a830b72 (diff) |
Cleanup: Simplify and de-duplicate assignements in the ImageManager constructor.
Diffstat (limited to 'intern')
-rw-r--r-- | intern/cycles/render/image.cpp | 51 |
1 files changed, 17 insertions, 34 deletions
diff --git a/intern/cycles/render/image.cpp b/intern/cycles/render/image.cpp index 2bef90d2333..dd90e7468ae 100644 --- a/intern/cycles/render/image.cpp +++ b/intern/cycles/render/image.cpp @@ -48,52 +48,33 @@ ImageManager::ImageManager(const DeviceInfo& info) } /* Set image limits */ +#define SET_TEX_IMAGES_LIMITS(ARCH) \ + { \ + tex_num_images[IMAGE_DATA_TYPE_FLOAT4] = TEX_NUM_FLOAT4_ ## ARCH; \ + tex_num_images[IMAGE_DATA_TYPE_BYTE4] = TEX_NUM_BYTE4_ ## ARCH; \ + tex_num_images[IMAGE_DATA_TYPE_FLOAT] = TEX_NUM_FLOAT_ ## ARCH; \ + tex_num_images[IMAGE_DATA_TYPE_BYTE] = TEX_NUM_BYTE_ ## ARCH; \ + tex_image_byte4_start = TEX_START_BYTE4_ ## ARCH; \ + tex_image_float_start = TEX_START_FLOAT_ ## ARCH; \ + tex_image_byte_start = TEX_START_BYTE_ ## ARCH; \ + } - /* CPU */ if(device_type == DEVICE_CPU) { - tex_num_images[IMAGE_DATA_TYPE_BYTE4] = TEX_NUM_BYTE4_CPU; - tex_num_images[IMAGE_DATA_TYPE_FLOAT4] = TEX_NUM_FLOAT4_CPU; - tex_num_images[IMAGE_DATA_TYPE_FLOAT] = TEX_NUM_FLOAT_CPU; - tex_num_images[IMAGE_DATA_TYPE_BYTE] = TEX_NUM_BYTE_CPU; - tex_image_byte4_start = TEX_START_BYTE4_CPU; - tex_image_float_start = TEX_START_FLOAT_CPU; - tex_image_byte_start = TEX_START_BYTE_CPU; + SET_TEX_IMAGES_LIMITS(CPU); } - /* CUDA */ else if(device_type == DEVICE_CUDA) { if(info.has_bindless_textures) { - /* Kepler and above */ - tex_num_images[IMAGE_DATA_TYPE_BYTE4] = TEX_NUM_BYTE4_CUDA_KEPLER; - tex_num_images[IMAGE_DATA_TYPE_FLOAT4] = TEX_NUM_FLOAT4_CUDA_KEPLER; - tex_num_images[IMAGE_DATA_TYPE_FLOAT] = TEX_NUM_FLOAT_CUDA_KEPLER; - tex_num_images[IMAGE_DATA_TYPE_BYTE] = TEX_NUM_BYTE_CUDA_KEPLER; - tex_image_byte4_start = TEX_START_BYTE4_CUDA_KEPLER; - tex_image_float_start = TEX_START_FLOAT_CUDA_KEPLER; - tex_image_byte_start = TEX_START_BYTE_CUDA_KEPLER; + SET_TEX_IMAGES_LIMITS(CUDA_KEPLER); } else { - /* Fermi */ - tex_num_images[IMAGE_DATA_TYPE_BYTE4] = TEX_NUM_BYTE4_CUDA; - tex_num_images[IMAGE_DATA_TYPE_FLOAT4] = TEX_NUM_FLOAT4_CUDA; - tex_num_images[IMAGE_DATA_TYPE_FLOAT] = TEX_NUM_FLOAT_CUDA; - tex_num_images[IMAGE_DATA_TYPE_BYTE] = TEX_NUM_BYTE_CUDA; - tex_image_byte4_start = TEX_START_BYTE4_CUDA; - tex_image_float_start = TEX_START_FLOAT_CUDA; - tex_image_byte_start = TEX_START_BYTE_CUDA; + SET_TEX_IMAGES_LIMITS(CUDA); } } - /* OpenCL */ else if(device_type == DEVICE_OPENCL) { - tex_num_images[IMAGE_DATA_TYPE_BYTE4] = TEX_NUM_BYTE4_OPENCL; - tex_num_images[IMAGE_DATA_TYPE_FLOAT4] = TEX_NUM_FLOAT4_OPENCL; - tex_num_images[IMAGE_DATA_TYPE_FLOAT] = TEX_NUM_FLOAT_OPENCL; - tex_num_images[IMAGE_DATA_TYPE_BYTE] = TEX_NUM_BYTE_OPENCL; - tex_image_byte4_start = TEX_START_BYTE4_OPENCL; - tex_image_float_start = TEX_START_FLOAT_OPENCL; - tex_image_byte_start = TEX_START_BYTE_OPENCL; + SET_TEX_IMAGES_LIMITS(OPENCL); } - /* Should never happen */ else { + /* Should never happen */ tex_num_images[IMAGE_DATA_TYPE_BYTE4] = 0; tex_num_images[IMAGE_DATA_TYPE_FLOAT4] = 0; tex_num_images[IMAGE_DATA_TYPE_FLOAT] = 0; @@ -103,6 +84,8 @@ ImageManager::ImageManager(const DeviceInfo& info) tex_image_byte_start = 0; assert(0); } + +#undef SET_TEX_IMAGES_LIMITS } ImageManager::~ImageManager() |