summaryrefslogtreecommitdiffstats
path: root/gfx/angle/src/libANGLE/renderer/Format.cpp
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@gmail.com>2018-07-11 23:29:50 +0200
committerwolfbeast <mcwerewolf@gmail.com>2018-07-11 23:31:02 +0200
commit70dd5e7c66b1fe3f82e5b4db2406050baba15f05 (patch)
tree3f012200ef3c934f33db1a4ef2b790fae3141860 /gfx/angle/src/libANGLE/renderer/Format.cpp
parent3b7ffb477eec078c7036c92c6a51bb5de6de4f28 (diff)
parent8481fa25d246f1968d0a254ee3c6cdd82c60781a (diff)
downloadUXP-70dd5e7c66b1fe3f82e5b4db2406050baba15f05.tar
UXP-70dd5e7c66b1fe3f82e5b4db2406050baba15f05.tar.gz
UXP-70dd5e7c66b1fe3f82e5b4db2406050baba15f05.tar.lz
UXP-70dd5e7c66b1fe3f82e5b4db2406050baba15f05.tar.xz
UXP-70dd5e7c66b1fe3f82e5b4db2406050baba15f05.zip
Merge branch 'ANGLE-rollback'
This resolves #624 Note: Cherry-picked some fixes on top of the ANGLE version that we want to keep.
Diffstat (limited to 'gfx/angle/src/libANGLE/renderer/Format.cpp')
-rw-r--r--gfx/angle/src/libANGLE/renderer/Format.cpp60
1 files changed, 60 insertions, 0 deletions
diff --git a/gfx/angle/src/libANGLE/renderer/Format.cpp b/gfx/angle/src/libANGLE/renderer/Format.cpp
new file mode 100644
index 000000000..e8883c6f3
--- /dev/null
+++ b/gfx/angle/src/libANGLE/renderer/Format.cpp
@@ -0,0 +1,60 @@
+//
+// Copyright 2016 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// Format:
+// A universal description of texture storage. Across multiple
+// renderer back-ends, there are common formats and some distinct
+// permutations, this enum encapsulates them all.
+
+#include "libANGLE/renderer/Format.h"
+
+#include "image_util/copyimage.h"
+
+using namespace rx;
+
+namespace angle
+{
+
+namespace
+{
+
+const FastCopyFunctionMap &GetFastCopyFunctionsMap(Format::ID formatID)
+{
+ switch (formatID)
+ {
+ case Format::ID::B8G8R8A8_UNORM:
+ {
+ static FastCopyFunctionMap fastCopyMap;
+ if (fastCopyMap.empty())
+ {
+ fastCopyMap[gl::FormatType(GL_RGBA, GL_UNSIGNED_BYTE)] = CopyBGRA8ToRGBA8;
+ }
+ return fastCopyMap;
+ }
+ default:
+ {
+ static FastCopyFunctionMap emptyMap;
+ return emptyMap;
+ }
+ }
+}
+
+} // anonymous namespace
+
+Format::Format(ID id,
+ GLenum glFormat,
+ GLenum fboFormat,
+ MipGenerationFunction mipGen,
+ ColorReadFunction colorRead)
+ : id(id),
+ glInternalFormat(glFormat),
+ fboImplementationInternalFormat(fboFormat),
+ mipGenerationFunction(mipGen),
+ colorReadFunction(colorRead),
+ fastCopyFunctions(GetFastCopyFunctionsMap(id))
+{
+}
+
+} // namespace angle