Refactor ProgramBinary entry points.
These will need to set dirty bits for the program, and this is best
done via the Context.
BUG=angleproject:747
Change-Id: I1379d2d4be0e94206c0aa7cb1546aa1a591f23ff
Reviewed-on: https://chromium-review.googlesource.com/529767
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/Context.cpp b/src/libANGLE/Context.cpp
index 6bd4586..c51cf33 100644
--- a/src/libANGLE/Context.cpp
+++ b/src/libANGLE/Context.cpp
@@ -4701,4 +4701,24 @@
programObject->validate(mCaps);
}
+void Context::getProgramBinary(GLuint program,
+ GLsizei bufSize,
+ GLsizei *length,
+ GLenum *binaryFormat,
+ void *binary)
+{
+ Program *programObject = getProgram(program);
+ ASSERT(programObject != nullptr);
+
+ handleError(programObject->saveBinary(this, binaryFormat, binary, bufSize, length));
+}
+
+void Context::programBinary(GLuint program, GLenum binaryFormat, const void *binary, GLsizei length)
+{
+ Program *programObject = getProgram(program);
+ ASSERT(programObject != nullptr);
+
+ handleError(programObject->loadBinary(this, binaryFormat, binary, length));
+}
+
} // namespace gl