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:
Diffstat (limited to 'intern/cycles/blender')
-rw-r--r--intern/cycles/blender/CCL_api.h6
-rw-r--r--intern/cycles/blender/blender_python.cpp13
2 files changed, 14 insertions, 5 deletions
diff --git a/intern/cycles/blender/CCL_api.h b/intern/cycles/blender/CCL_api.h
index 469d63d1530..b8a30b71717 100644
--- a/intern/cycles/blender/CCL_api.h
+++ b/intern/cycles/blender/CCL_api.h
@@ -23,12 +23,12 @@
extern "C" {
#endif
-/* returns a list of devices for selection, array is name NULL pointer
+/* returns a list of devices for selection, array is empty identifier
* terminated and must not be freed */
typedef struct CCLDeviceInfo {
- const char *identifier;
- const char *name;
+ char identifier[128];
+ char name[512];
int value;
} CCLDeviceInfo;
diff --git a/intern/cycles/blender/blender_python.cpp b/intern/cycles/blender/blender_python.cpp
index e78c78e5eb2..d164920ceff 100644
--- a/intern/cycles/blender/blender_python.cpp
+++ b/intern/cycles/blender/blender_python.cpp
@@ -418,14 +418,23 @@ static CCLDeviceInfo *compute_device_list(DeviceType type)
if(info.type == type ||
(info.type == DEVICE_MULTI && info.multi_devices[0].type == type))
{
- CCLDeviceInfo cinfo = {info.id.c_str(), info.description.c_str(), i++};
+ CCLDeviceInfo cinfo;
+
+ strncpy(cinfo.identifier, info.id.c_str(), sizeof(cinfo.identifier));
+ cinfo.identifier[info.id.length()] = '\0';
+
+ strncpy(cinfo.name, info.description.c_str(), sizeof(cinfo.name));
+ cinfo.name[info.description.length()] = '\0';
+
+ cinfo.value = i++;
+
device_list.push_back(cinfo);
}
}
/* null terminate */
if(!device_list.empty()) {
- CCLDeviceInfo cinfo = {NULL, NULL, 0};
+ CCLDeviceInfo cinfo = {"", "", 0};
device_list.push_back(cinfo);
}
}