summaryrefslogtreecommitdiffstats
path: root/chromium/mojo/examples/sample_app/gles2_client_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/mojo/examples/sample_app/gles2_client_impl.h')
-rw-r--r--chromium/mojo/examples/sample_app/gles2_client_impl.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/chromium/mojo/examples/sample_app/gles2_client_impl.h b/chromium/mojo/examples/sample_app/gles2_client_impl.h
new file mode 100644
index 00000000000..6791504fbc1
--- /dev/null
+++ b/chromium/mojo/examples/sample_app/gles2_client_impl.h
@@ -0,0 +1,50 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef MOJO_EXAMPLES_SAMPLE_APP_GLES2_CLIENT_IMPL_H_
+#define MOJO_EXAMPLES_SAMPLE_APP_GLES2_CLIENT_IMPL_H_
+
+#include "mojo/examples/sample_app/spinning_cube.h"
+#include "mojo/public/c/gles2/gles2.h"
+#include "mojo/services/public/interfaces/native_viewport/native_viewport.mojom.h"
+#include "ui/gfx/point_f.h"
+#include "ui/gfx/size.h"
+
+namespace mojo {
+namespace examples {
+
+class GLES2ClientImpl {
+ public:
+ explicit GLES2ClientImpl(CommandBufferPtr command_buffer);
+ virtual ~GLES2ClientImpl();
+
+ void SetSize(const Size& size);
+ void HandleInputEvent(const Event& event);
+
+ private:
+ void ContextLost();
+ static void ContextLostThunk(void* closure);
+ void DrawAnimationFrame();
+ static void DrawAnimationFrameThunk(void* closure);
+
+ void RequestAnimationFrames();
+ void CancelAnimationFrames();
+
+ MojoTimeTicks last_time_;
+ gfx::Size size_;
+ SpinningCube cube_;
+ gfx::PointF capture_point_;
+ gfx::PointF last_drag_point_;
+ MojoTimeTicks drag_start_time_;
+ bool getting_animation_frames_;
+
+ MojoGLES2Context context_;
+
+ MOJO_DISALLOW_COPY_AND_ASSIGN(GLES2ClientImpl);
+};
+
+} // namespace examples
+} // namespace mojo
+
+#endif // MOJO_EXAMPLES_SAMPLE_APP_GLES2_CLIENT_IMPL_H_