Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1029)

Unified Diff: ppapi/lib/gl/gles2/gl2ext_ppapi.c

Issue 5927002: Moved the logic of maintaining the current context to gles2 helper library. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ppapi/lib/gl/gles2/gl2ext_ppapi.h ('k') | ppapi/lib/gl/gles2/gles2.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ppapi/lib/gl/gles2/gl2ext_ppapi.c
===================================================================
--- ppapi/lib/gl/gles2/gl2ext_ppapi.c (revision 69835)
+++ ppapi/lib/gl/gles2/gl2ext_ppapi.c (working copy)
@@ -4,26 +4,52 @@
#include "ppapi/lib/gl/gles2/gl2ext_ppapi.h"
-static const struct PPB_OpenGLES_Dev* g_gles2_interface;
+#ifndef GL_FALSE
+#define GL_FALSE 0
+#endif // GL_FALSE
-int GL_APIENTRY glInitializePPAPI(
- PP_Module module,
+#ifndef GL_TRUE
+#define GL_TRUE 1
+#endif // GL_TRUE
+
+#if defined(__GNUC__) && !defined(__APPLE__)
+#define PP_TLS __thread
+#elif defined(_MSC_VER)
+#define PP_TLS __declspec(thread)
+#else
+// TODO(alokp): Fix all other platforms.
+#define PP_TLS
+#endif
+
+// TODO(alokp): This will need to be thread-safe if we build gles2 as a
+// shared library.
+static const struct PPB_OpenGLES2_Dev* g_gles2_interface = NULL;
+
+// TODO(alokp): Make sure PP_TLS works on all supported platforms.
+static PP_TLS PP_Resource g_current_context = 0;
+
+GLboolean GL_APIENTRY glInitializePPAPI(
PPB_GetInterface get_browser_interface) {
- return 0;
+ if (!g_gles2_interface) {
+ g_gles2_interface = get_browser_interface(PPB_OPENGLES2_DEV_INTERFACE);
+ }
+ return g_gles2_interface ? GL_TRUE : GL_FALSE;
}
-int GL_APIENTRY glTerminatePPAPI() {
- return 0;
+GLboolean GL_APIENTRY glTerminatePPAPI() {
+ g_gles2_interface = NULL;
+ return GL_TRUE;
}
void GL_APIENTRY glSetCurrentContextPPAPI(PP_Resource context) {
+ g_current_context = context;
}
PP_Resource GL_APIENTRY glGetCurrentContextPPAPI() {
- return 0;
+ return g_current_context;
}
-const struct PPB_OpenGLES_Dev* GL_APIENTRY glGetInterfacePPAPI() {
+const struct PPB_OpenGLES2_Dev* GL_APIENTRY glGetInterfacePPAPI() {
return g_gles2_interface;
}
« no previous file with comments | « ppapi/lib/gl/gles2/gl2ext_ppapi.h ('k') | ppapi/lib/gl/gles2/gles2.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698