equal
deleted
inserted
replaced
|
1 Problem: webGL sites are displayed in the wrong color (usually blue-ish) |
|
2 Solution: Problem is with skia once again. Output of webgl seems endian-correct, but skia only |
|
3 knows how to deal with little endian. |
|
4 So we swizzle the output of webgl after reading it from readpixels() |
|
5 Note: This does not fix all webGL sites, but is a step in the right direction |
|
6 diff -r 6b017d3e9733 gfx/gl/GLContext.h |
|
7 --- a/gfx/gl/GLContext.h Mon Sep 09 10:04:05 2019 +0200 |
|
8 +++ b/gfx/gl/GLContext.h Wed Nov 13 17:13:04 2019 +0100 |
|
9 @@ -1551,6 +1551,13 @@ |
|
10 BEFORE_GL_CALL; |
|
11 mSymbols.fReadPixels(x, y, width, height, format, type, pixels); |
|
12 OnSyncCall(); |
|
13 +#if MOZ_BIG_ENDIAN |
|
14 + uint8_t* itr = (uint8_t*)pixels; |
|
15 + for (GLsizei i = 0; i < width * height; i++) { |
|
16 + NativeEndian::swapToLittleEndianInPlace((uint32_t*)itr, 1); |
|
17 + itr += 4; |
|
18 + } |
|
19 +#endif |
|
20 AFTER_GL_CALL; |
|
21 mHeavyGLCallsSinceLastFlush = true; |
|
22 } |
|
23 |