diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-08-28 15:28:34 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-08-28 13:54:51 +0000 |
commit | 2a19c63448c84c1805fb1a585c3651318bb86ca7 (patch) | |
tree | eb17888e8531aa6ee5e85721bd553b832a7e5156 /chromium/third_party/angle/src/image_util | |
parent | b014812705fc80bff0a5c120dfcef88f349816dc (diff) | |
download | qtwebengine-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.cpp | 40 | ||||
-rw-r--r-- | chromium/third_party/angle/src/image_util/imageformats.h | 15 |
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; |