[Bf-blender-cvs] [18f050f] HMD_viewport: Fix all HMDs in UserPref device option showing same name

Julian Eisel noreply at git.blender.org
Fri May 20 22:57:29 CEST 2016


Commit: 18f050f9516e392d7946607216a7bf420d8a699e
Author: Julian Eisel
Date:   Fri May 20 22:56:17 2016 +0200
Branches: HMD_viewport
https://developer.blender.org/rB18f050f9516e392d7946607216a7bf420d8a699e

Fix all HMDs in UserPref device option showing same name

===================================================================

M	source/blender/makesrna/intern/rna_userdef.c
M	source/blender/windowmanager/WM_api.h

===================================================================

diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c
index a28954f..143da77 100644
--- a/source/blender/makesrna/intern/rna_userdef.c
+++ b/source/blender/makesrna/intern/rna_userdef.c
@@ -652,6 +652,7 @@ static EnumPropertyItem *rna_userdef_hmd_device_itemf(
         bContext *UNUSED(C), PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop),
         bool *r_free)
 {
+	static char names[MAX_HMD_DEVICES][MAX_NAME];
 	EnumPropertyItem *item = NULL;
 	int totitem = 0;
 
@@ -659,12 +660,11 @@ static EnumPropertyItem *rna_userdef_hmd_device_itemf(
 	RNA_enum_item_add(&item, &totitem, &hmd_device_items[0]);
 
 	/* add devices */
-	for (int i = 0; i < WM_device_HMD_num_devices_get(); i++) {
-		static char name[MAX_NAME];
+	for (int i = 0; i < WM_device_HMD_num_devices_get() && i < MAX_HMD_DEVICES; i++) {
 		EnumPropertyItem tmp = {i, "", 0, "", ""};
 
-		BLI_snprintf(name, sizeof(name), "%s %s", WM_device_HMD_vendor_get(i), WM_device_HMD_name_get(i));
-		tmp.identifier = tmp.name = name;
+		BLI_snprintf(names[i], sizeof(names[i]), "%s %s", WM_device_HMD_vendor_get(i), WM_device_HMD_name_get(i));
+		tmp.identifier = tmp.name = names[i];
 		RNA_enum_item_add(&item, &totitem, &tmp);
 	}
 
diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h
index b4106ad..ba55e32 100644
--- a/source/blender/windowmanager/WM_api.h
+++ b/source/blender/windowmanager/WM_api.h
@@ -521,6 +521,9 @@ bool        WM_event_is_ime_switch(const struct wmEvent *event);
 /* wm_device.c */
 
 #ifdef WITH_INPUT_HMD
+
+#define MAX_HMD_DEVICES 12
+
 int         WM_device_HMD_num_devices_get(void);
 void        WM_device_HMD_state_set(const int device, const bool enable);
 int         WM_device_HMD_current_get(void);




More information about the Bf-blender-cvs mailing list