Forráskód Böngészése

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

These functions were not properly shifting the bits when calculating the
output.
jp9000 9 éve
szülő
commit
85ffa10d3f
1 módosított fájl, 6 hozzáadás és 6 törlés
  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;
 	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;
 }
 
@@ -217,9 +217,9 @@ static inline uint32_t vec4_to_bgra(const struct vec4 *src)
 {
 	uint32_t val;
 	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;
 }