浏览代码

libobs: Add helper functions for math data

jp9000 11 年之前
父节点
当前提交
89df81e72d
共有 2 个文件被更改,包括 54 次插入0 次删除
  1. 45 0
      libobs/obs-data.c
  2. 9 0
      libobs/obs-data.h

+ 45 - 0
libobs/obs-data.c

@@ -990,6 +990,51 @@ void obs_data_set_quat(obs_data_t data, const char *name,
 	obs_data_release(obj);
 }
 
+void obs_data_set_default_vec2(obs_data_t data, const char *name,
+		const struct vec2 *val)
+{
+	obs_data_t obj = obs_data_create();
+	obs_data_setdouble(obj, "x", val->x);
+	obs_data_setdouble(obj, "y", val->y);
+	obs_data_set_default_obj(data, name, obj);
+	obs_data_release(obj);
+}
+
+void obs_data_set_default_vec3(obs_data_t data, const char *name,
+		const struct vec3 *val)
+{
+	obs_data_t obj = obs_data_create();
+	obs_data_setdouble(obj, "x", val->x);
+	obs_data_setdouble(obj, "y", val->y);
+	obs_data_setdouble(obj, "z", val->z);
+	obs_data_set_default_obj(data, name, obj);
+	obs_data_release(obj);
+}
+
+void obs_data_set_default_vec4(obs_data_t data, const char *name,
+		const struct vec4 *val)
+{
+	obs_data_t obj = obs_data_create();
+	obs_data_setdouble(obj, "x", val->x);
+	obs_data_setdouble(obj, "y", val->y);
+	obs_data_setdouble(obj, "z", val->z);
+	obs_data_setdouble(obj, "w", val->w);
+	obs_data_set_default_obj(data, name, obj);
+	obs_data_release(obj);
+}
+
+void obs_data_set_default_quat(obs_data_t data, const char *name,
+		const struct quat *val)
+{
+	obs_data_t obj = obs_data_create();
+	obs_data_setdouble(obj, "x", val->x);
+	obs_data_setdouble(obj, "y", val->y);
+	obs_data_setdouble(obj, "z", val->z);
+	obs_data_setdouble(obj, "w", val->w);
+	obs_data_set_default_obj(data, name, obj);
+	obs_data_release(obj);
+}
+
 void obs_data_get_vec2(obs_data_t data, const char *name, struct vec2 *val)
 {
 	obs_data_t obj = obs_data_getobj(data, name);

+ 9 - 0
libobs/obs-data.h

@@ -162,6 +162,15 @@ EXPORT void obs_data_set_vec4(obs_data_t data, const char *name,
 EXPORT void obs_data_set_quat(obs_data_t data, const char *name,
 		const struct quat *val);
 
+EXPORT void obs_data_set_default_vec2(obs_data_t data, const char *name,
+		const struct vec2 *val);
+EXPORT void obs_data_set_default_vec3(obs_data_t data, const char *name,
+		const struct vec3 *val);
+EXPORT void obs_data_set_default_vec4(obs_data_t data, const char *name,
+		const struct vec4 *val);
+EXPORT void obs_data_set_default_quat(obs_data_t data, const char *name,
+		const struct quat *val);
+
 EXPORT void obs_data_get_vec2(obs_data_t data, const char *name,
 		struct vec2 *val);
 EXPORT void obs_data_get_vec3(obs_data_t data, const char *name,