浏览代码

libobs/graphics: Fix vec4_to_(rgba/bgra) functions

These functions were not properly shifting the bits when calculating the
output.
jp9000 9 年之前
父节点
当前提交
85ffa10d3f
共有 1 个文件被更改,包括 6 次插入6 次删除
  1. 6 6
      libobs/graphics/vec4.h

+ 6 - 6
libobs/graphics/vec4.h

@@ -207,9 +207,9 @@ static inline uint32_t vec4_to_rgba(const struct vec4 *src)
 {
 {
 	uint32_t val;
 	uint32_t val;
 	val  = (uint32_t)((double)src->x * 255.0);
 	val  = (uint32_t)((double)src->x * 255.0);
-	val |= (uint32_t)((double)src->y * 255.0);
-	val |= (uint32_t)((double)src->z * 255.0);
-	val |= (uint32_t)((double)src->w * 255.0);
+	val |= (uint32_t)((double)src->y * 255.0) << 8;
+	val |= (uint32_t)((double)src->z * 255.0) << 16;
+	val |= (uint32_t)((double)src->w * 255.0) << 24;
 	return val;
 	return val;
 }
 }
 
 
@@ -217,9 +217,9 @@ static inline uint32_t vec4_to_bgra(const struct vec4 *src)
 {
 {
 	uint32_t val;
 	uint32_t val;
 	val  = (uint32_t)((double)src->z * 255.0);
 	val  = (uint32_t)((double)src->z * 255.0);
-	val |= (uint32_t)((double)src->y * 255.0);
-	val |= (uint32_t)((double)src->x * 255.0);
-	val |= (uint32_t)((double)src->w * 255.0);
+	val |= (uint32_t)((double)src->y * 255.0) << 8;
+	val |= (uint32_t)((double)src->x * 255.0) << 16;
+	val |= (uint32_t)((double)src->w * 255.0) << 24;
 	return val;
 	return val;
 }
 }