diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-03-08 08:48:14 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-03-10 06:54:05 +0300 |
commit | b66efbecf4780c65833f72ac8de5d18b5bca7e15 (patch) | |
tree | 58f258df9e797f55ad1a77082115989df147e6db /intern/cycles/render/light.cpp | |
parent | 623141f339d5066ed6b96ad70ab45fb294e3e612 (diff) |
Code refactor: make Transform always affine, dropping last row.
This save a little memory and copying in the kernel by storing only a 4x3
matrix instead of a 4x4 matrix. We already did this in a few places, and
those don't need to be special exceptions anymore now.
Diffstat (limited to 'intern/cycles/render/light.cpp')
-rw-r--r-- | intern/cycles/render/light.cpp | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/intern/cycles/render/light.cpp b/intern/cycles/render/light.cpp index a3f67361f6e..8dec7e4ea64 100644 --- a/intern/cycles/render/light.cpp +++ b/intern/cycles/render/light.cpp @@ -785,11 +785,8 @@ void LightManager::device_update_points(Device *, klights[light_index].max_bounces = max_bounces; klights[light_index].random = random; - - Transform tfm = light->tfm; - Transform itfm = transform_inverse(tfm); - memcpy(&klights[light_index].tfm, &tfm, sizeof(float4)*3); - memcpy(&klights[light_index].itfm, &itfm, sizeof(float4)*3); + klights[light_index].tfm = light->tfm; + klights[light_index].itfm = transform_inverse(light->tfm); light_index++; } @@ -825,10 +822,8 @@ void LightManager::device_update_points(Device *, klights[light_index].area.dir[0] = dir.x; klights[light_index].area.dir[1] = dir.y; klights[light_index].area.dir[2] = dir.z; - Transform tfm = light->tfm; - Transform itfm = transform_inverse(tfm); - memcpy(&klights[light_index].tfm, &tfm, sizeof(float4)*3); - memcpy(&klights[light_index].itfm, &itfm, sizeof(float4)*3); + klights[light_index].tfm = light->tfm; + klights[light_index].itfm = transform_inverse(light->tfm); light_index++; } |