Преглед на файлове

libobs: Fix bug where bool constant size would be 1

(This commit also modifies libobs-d3d11)

Boolean constant size should be 4
jp9000 преди 9 години
родител
ревизия
876cc94d51
променени са 2 файла, в които са добавени 4 реда и са изтрити 2 реда
  1. 2 1
      libobs-d3d11/d3d11-shader.cpp
  2. 2 1
      libobs/graphics/effect.c

+ 2 - 1
libobs-d3d11/d3d11-shader.cpp

@@ -327,7 +327,8 @@ static inline void shader_setval_inline(gs_shader_param *param,
 
 
 void gs_shader_set_bool(gs_sparam_t *param, bool val)
 void gs_shader_set_bool(gs_sparam_t *param, bool val)
 {
 {
-	shader_setval_inline(param, &val, sizeof(bool));
+	int b_val = (int)val;
+	shader_setval_inline(param, &b_val, sizeof(int));
 }
 }
 
 
 void gs_shader_set_float(gs_sparam_t *param, float val)
 void gs_shader_set_float(gs_sparam_t *param, float val)

+ 2 - 1
libobs/graphics/effect.c

@@ -329,7 +329,8 @@ static inline void effect_setval_inline(gs_eparam_t *param,
 
 
 void gs_effect_set_bool(gs_eparam_t *param, bool val)
 void gs_effect_set_bool(gs_eparam_t *param, bool val)
 {
 {
-	effect_setval_inline(param, &val, sizeof(bool));
+	int b_val = (int)val;
+	effect_setval_inline(param, &b_val, sizeof(int));
 }
 }
 
 
 void gs_effect_set_float(gs_eparam_t *param, float val)
 void gs_effect_set_float(gs_eparam_t *param, float val)