summaryrefslogtreecommitdiff
path: root/chromium/third_party/angle/src/image_util
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-08-28 15:28:34 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-08-28 13:54:51 +0000
commit2a19c63448c84c1805fb1a585c3651318bb86ca7 (patch)
treeeb17888e8531aa6ee5e85721bd553b832a7e5156 /chromium/third_party/angle/src/image_util
parentb014812705fc80bff0a5c120dfcef88f349816dc (diff)
downloadqtwebengine-chromium-2a19c63448c84c1805fb1a585c3651318bb86ca7.tar.gz
BASELINE: Update Chromium to 69.0.3497.70
Change-Id: I2b7b56e4e7a8b26656930def0d4575dc32b900a0 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/third_party/angle/src/image_util')
-rw-r--r--chromium/third_party/angle/src/image_util/imageformats.cpp40
-rw-r--r--chromium/third_party/angle/src/image_util/imageformats.h15
2 files changed, 55 insertions, 0 deletions
diff --git a/chromium/third_party/angle/src/image_util/imageformats.cpp b/chromium/third_party/angle/src/image_util/imageformats.cpp
index a4c86945b61..6c628015db3 100644
--- a/chromium/third_party/angle/src/image_util/imageformats.cpp
+++ b/chromium/third_party/angle/src/image_util/imageformats.cpp
@@ -1673,6 +1673,46 @@ void R10G10B10A2::average(R10G10B10A2 *dst, const R10G10B10A2 *src1, const R10G1
dst->A = gl::average(src1->A, src2->A);
}
+void R10G10B10A2S::readColor(gl::ColorI *dst, const R10G10B10A2S *src)
+{
+ dst->red = src->R;
+ dst->green = src->G;
+ dst->blue = src->B;
+ dst->alpha = src->A;
+}
+
+void R10G10B10A2S::readColor(gl::ColorF *dst, const R10G10B10A2S *src)
+{
+ dst->red = gl::normalizedToFloat<10>(src->R);
+ dst->green = gl::normalizedToFloat<10>(src->G);
+ dst->blue = gl::normalizedToFloat<10>(src->B);
+ dst->alpha = gl::normalizedToFloat<2>(src->A);
+}
+
+void R10G10B10A2S::writeColor(R10G10B10A2S *dst, const gl::ColorI *src)
+{
+ dst->R = static_cast<int32_t>(src->red);
+ dst->G = static_cast<int32_t>(src->green);
+ dst->B = static_cast<int32_t>(src->blue);
+ dst->A = static_cast<int32_t>(src->alpha);
+}
+
+void R10G10B10A2S::writeColor(R10G10B10A2S *dst, const gl::ColorF *src)
+{
+ dst->R = gl::floatToNormalized<10, int32_t>(src->red);
+ dst->G = gl::floatToNormalized<10, int32_t>(src->green);
+ dst->B = gl::floatToNormalized<10, int32_t>(src->blue);
+ dst->A = gl::floatToNormalized<2, int32_t>(src->alpha);
+}
+
+void R10G10B10A2S::average(R10G10B10A2S *dst, const R10G10B10A2S *src1, const R10G10B10A2S *src2)
+{
+ dst->R = gl::average(src1->R, src2->R);
+ dst->G = gl::average(src1->G, src2->G);
+ dst->B = gl::average(src1->B, src2->B);
+ dst->A = gl::average(src1->A, src2->A);
+}
+
void R9G9B9E5::readColor(gl::ColorF *dst, const R9G9B9E5 *src)
{
gl::convert999E5toRGBFloats(gl::bitCast<uint32_t>(*src), &dst->red, &dst->green, &dst->blue);
diff --git a/chromium/third_party/angle/src/image_util/imageformats.h b/chromium/third_party/angle/src/image_util/imageformats.h
index 65644cd8d9e..246c4d63184 100644
--- a/chromium/third_party/angle/src/image_util/imageformats.h
+++ b/chromium/third_party/angle/src/image_util/imageformats.h
@@ -670,6 +670,21 @@ struct R10G10B10A2
};
static_assert(sizeof(R10G10B10A2) == 4, "R10G10B10A2 struct not 32-bits.");
+struct R10G10B10A2S
+{
+ int32_t R : 10;
+ int32_t G : 10;
+ int32_t B : 10;
+ int32_t A : 2;
+
+ static void readColor(gl::ColorF *dst, const R10G10B10A2S *src);
+ static void readColor(gl::ColorI *dst, const R10G10B10A2S *src);
+ static void writeColor(R10G10B10A2S *dst, const gl::ColorF *src);
+ static void writeColor(R10G10B10A2S *dst, const gl::ColorI *src);
+ static void average(R10G10B10A2S *dst, const R10G10B10A2S *src1, const R10G10B10A2S *src2);
+};
+static_assert(sizeof(R10G10B10A2S) == 4, "R10G10B10A2S struct not 32-bits.");
+
struct R9G9B9E5
{
uint32_t R : 9;