Home | History | Annotate | Download | only in gles2
      1 // Copyright 2013 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 #ifndef MOJO_PUBLIC_C_GLES2_GLES2_H_
      6 #define MOJO_PUBLIC_C_GLES2_GLES2_H_
      7 
      8 // Note: This header should be compilable as C.
      9 
     10 #include <stdint.h>
     11 #include <GLES2/gl2.h>
     12 
     13 #include "mojo/public/c/environment/async_waiter.h"
     14 #include "mojo/public/c/gles2/gles2_export.h"
     15 #include "mojo/public/c/gles2/gles2_types.h"
     16 #include "mojo/public/c/system/types.h"
     17 
     18 #ifdef __cplusplus
     19 extern "C" {
     20 #endif
     21 
     22 MOJO_GLES2_EXPORT MojoGLES2Context
     23     MojoGLES2CreateContext(MojoHandle handle,
     24                            MojoGLES2ContextLost lost_callback,
     25                            void* closure,
     26                            const MojoAsyncWaiter* async_waiter);
     27 MOJO_GLES2_EXPORT void MojoGLES2DestroyContext(MojoGLES2Context context);
     28 MOJO_GLES2_EXPORT void MojoGLES2MakeCurrent(MojoGLES2Context context);
     29 MOJO_GLES2_EXPORT void MojoGLES2SwapBuffers(void);
     30 
     31 // TODO(piman): We shouldn't have to leak those 2 interfaces, especially in a
     32 // type-unsafe way.
     33 MOJO_GLES2_EXPORT void* MojoGLES2GetGLES2Interface(MojoGLES2Context context);
     34 MOJO_GLES2_EXPORT void* MojoGLES2GetContextSupport(MojoGLES2Context context);
     35 
     36 #define VISIT_GL_CALL(Function, ReturnType, PARAMETERS, ARGUMENTS) \
     37   MOJO_GLES2_EXPORT ReturnType GL_APIENTRY gl##Function PARAMETERS;
     38 #include "mojo/public/c/gles2/gles2_call_visitor_autogen.h"
     39 #undef VISIT_GL_CALL
     40 
     41 #ifdef __cplusplus
     42 }  // extern "C"
     43 #endif
     44 
     45 #endif  // MOJO_PUBLIC_C_GLES2_GLES2_H_
     46