Home | History | Annotate | Download | only in native
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "mojo/public/platform/native/gles2_thunks.h"
      6 
      7 #include <assert.h>
      8 
      9 #include "mojo/public/platform/native/thunk_export.h"
     10 
     11 extern "C" {
     12 
     13 static MojoGLES2ControlThunks g_control_thunks = {0};
     14 
     15 MojoGLES2Context MojoGLES2CreateContext(MojoHandle handle,
     16                                         MojoGLES2ContextLost lost_callback,
     17                                         void* closure,
     18                                         const MojoAsyncWaiter* async_waiter) {
     19   assert(g_control_thunks.GLES2CreateContext);
     20   return g_control_thunks.GLES2CreateContext(
     21       handle, lost_callback, closure, async_waiter);
     22 }
     23 
     24 void MojoGLES2DestroyContext(MojoGLES2Context context) {
     25   assert(g_control_thunks.GLES2DestroyContext);
     26   g_control_thunks.GLES2DestroyContext(context);
     27 }
     28 
     29 void MojoGLES2MakeCurrent(MojoGLES2Context context) {
     30   assert(g_control_thunks.GLES2MakeCurrent);
     31   g_control_thunks.GLES2MakeCurrent(context);
     32 }
     33 
     34 void MojoGLES2SwapBuffers() {
     35   assert(g_control_thunks.GLES2SwapBuffers);
     36   g_control_thunks.GLES2SwapBuffers();
     37 }
     38 
     39 void* MojoGLES2GetGLES2Interface(MojoGLES2Context context) {
     40   assert(g_control_thunks.GLES2GetGLES2Interface);
     41   return g_control_thunks.GLES2GetGLES2Interface(context);
     42 }
     43 
     44 void* MojoGLES2GetContextSupport(MojoGLES2Context context) {
     45   assert(g_control_thunks.GLES2GetContextSupport);
     46   return g_control_thunks.GLES2GetContextSupport(context);
     47 }
     48 
     49 extern "C" THUNK_EXPORT size_t MojoSetGLES2ControlThunks(
     50     const MojoGLES2ControlThunks* gles2_control_thunks) {
     51   if (gles2_control_thunks->size >= sizeof(g_control_thunks))
     52     g_control_thunks = *gles2_control_thunks;
     53   return sizeof(g_control_thunks);
     54 }
     55 
     56 }  // extern "C"
     57