Cycles: code refactoring to add generic lookup table memory.

This commit is contained in:
Brecht Van Lommel
2013-04-01 20:26:43 +00:00
parent 8588fec935
commit 40b05d364e
16 changed files with 274 additions and 209 deletions

View File

@@ -57,7 +57,7 @@ template<typename T> struct texture {
}
#endif
float interp(float x, int size)
float lookup(float x, int offset, int size)
{
kernel_assert(size == width);
@@ -67,7 +67,7 @@ template<typename T> struct texture {
int nindex = min(index+1, width-1);
float t = x - index;
return (1.0f - t)*data[index] + t*data[nindex];
return (1.0f - t)*data[index + offset] + t*data[nindex + offset];
}
T *data;
@@ -157,7 +157,7 @@ typedef texture_image<uchar4> texture_image_uchar4;
#define kernel_tex_fetch(tex, index) (kg->tex.fetch(index))
#define kernel_tex_fetch_m128(tex, index) (kg->tex.fetch_m128(index))
#define kernel_tex_fetch_m128i(tex, index) (kg->tex.fetch_m128i(index))
#define kernel_tex_interp(tex, t, size) (kg->tex.interp(t, size))
#define kernel_tex_lookup(tex, t, offset, size) (kg->tex.lookup(t, offset, size))
#define kernel_tex_image_interp(tex, x, y) ((tex < MAX_FLOAT_IMAGES) ? kg->texture_float_images[tex].interp(x, y) : kg->texture_byte_images[tex - MAX_FLOAT_IMAGES].interp(x, y))
#define kernel_data (kg->__data)