Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / mojo / gles2 / gles2_support_impl.h
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 #ifndef MOJO_GLES2_GLES2_SUPPORT_IMPL_H_
6 #define MOJO_GLES2_GLES2_SUPPORT_IMPL_H_
7
8 #include "base/compiler_specific.h"
9 #include "mojo/gles2/gles2_impl_export.h"
10 #include "mojo/public/gles2/gles2_private.h"
11
12 namespace mojo {
13 namespace gles2 {
14
15 class MOJO_GLES2_IMPL_EXPORT GLES2SupportImpl : public GLES2Support {
16  public:
17   virtual ~GLES2SupportImpl();
18
19   static void Init();
20
21   virtual void Initialize(MojoAsyncWaiter* async_waiter) OVERRIDE;
22   virtual void Terminate() OVERRIDE;
23   virtual MojoGLES2Context CreateContext(
24       MessagePipeHandle handle,
25       MojoGLES2ContextLost lost_callback,
26       MojoGLES2DrawAnimationFrame animation_callback,
27       void* closure) OVERRIDE;
28   virtual void DestroyContext(MojoGLES2Context context) OVERRIDE;
29   virtual void MakeCurrent(MojoGLES2Context context) OVERRIDE;
30   virtual void SwapBuffers() OVERRIDE;
31   virtual void RequestAnimationFrames(MojoGLES2Context context) OVERRIDE;
32   virtual void CancelAnimationFrames(MojoGLES2Context context) OVERRIDE;
33   virtual void* GetGLES2Interface(MojoGLES2Context context) OVERRIDE;
34   virtual void* GetContextSupport(MojoGLES2Context context) OVERRIDE;
35   virtual GLES2Interface* GetGLES2InterfaceForCurrentContext() OVERRIDE;
36
37  private:
38   GLES2SupportImpl();
39
40   MojoAsyncWaiter* async_waiter_;
41 };
42
43 }  // namespace gles2
44 }  // namespace mojo
45
46 #endif  // MOJO_GLES2_GLES2_SUPPORT_IMPL_H_