diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2017-10-21 00:31:13 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2017-10-24 02:03:59 +0300 |
commit | 7ad9333fad25b9a7cabea0d659eaf724f89912c8 (patch) | |
tree | 4fa0d78c9659dd842852420bd1d8b8f8925a0c2f /intern/cycles/device/device_memory.h | |
parent | ae41f38f78f8c54f92cf34dd88e35948e19aed55 (diff) |
Code refactor: store device/interp/extension/type in each device_memory.
Diffstat (limited to 'intern/cycles/device/device_memory.h')
-rw-r--r-- | intern/cycles/device/device_memory.h | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/intern/cycles/device/device_memory.h b/intern/cycles/device/device_memory.h index eeeca61496e..3dfecde59d8 100644 --- a/intern/cycles/device/device_memory.h +++ b/intern/cycles/device/device_memory.h @@ -30,6 +30,7 @@ #include "util/util_debug.h" #include "util/util_half.h" +#include "util/util_texture.h" #include "util/util_types.h" #include "util/util_vector.h" @@ -190,23 +191,17 @@ public: size_t data_width; size_t data_height; size_t data_depth; + MemoryType type; + const char *name; + InterpolationType interpolation; + ExtensionType extension; /* device pointer */ + Device *device; device_ptr device_pointer; - device_memory() - { - data_type = device_type_traits<uchar>::data_type; - data_elements = device_type_traits<uchar>::num_elements; - data_pointer = 0; - data_size = 0; - device_size = 0; - data_width = 0; - data_height = 0; - data_depth = 0; - device_pointer = 0; - } - virtual ~device_memory() { assert(!device_pointer); } + device_memory(Device *device, const char *name, MemoryType type); + virtual ~device_memory(); void resize(size_t size) { @@ -224,7 +219,8 @@ template<typename T> class device_only_memory : public device_memory { public: - device_only_memory() + device_only_memory(Device *device, const char *name) + : device_memory(device, name, MEM_READ_WRITE) { data_type = device_type_traits<T>::data_type; data_elements = max(device_type_traits<T>::num_elements, 1); @@ -241,7 +237,8 @@ public: template<typename T> class device_vector : public device_memory { public: - device_vector() + device_vector(Device *device, const char *name, MemoryType type = MEM_READ_ONLY) + : device_memory(device, name, type) { data_type = device_type_traits<T>::data_type; data_elements = device_type_traits<T>::num_elements; @@ -317,7 +314,7 @@ private: class device_sub_ptr { public: - device_sub_ptr(Device *device, device_memory& mem, int offset, int size, MemoryType type); + device_sub_ptr(device_memory& mem, int offset, int size); ~device_sub_ptr(); /* No copying. */ device_sub_ptr& operator = (const device_sub_ptr&); |