Index: mojo/examples/surfaces_app/child_gl_impl.h |
diff --git a/mojo/examples/surfaces_app/child_impl.h b/mojo/examples/surfaces_app/child_gl_impl.h |
similarity index 55% |
copy from mojo/examples/surfaces_app/child_impl.h |
copy to mojo/examples/surfaces_app/child_gl_impl.h |
index 338b17f3d104f70a9400fcdebda837b88f7ed878..e99059164aa6461c6a3c6eb0a77c354c29b64735 100644 |
--- a/mojo/examples/surfaces_app/child_impl.h |
+++ b/mojo/examples/surfaces_app/child_gl_impl.h |
@@ -2,13 +2,17 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#ifndef MOJO_EXAMPLES_SURFACES_APP_CHILD_IMPL_H_ |
-#define MOJO_EXAMPLES_SURFACES_APP_CHILD_IMPL_H_ |
+#ifndef MOJO_EXAMPLES_SURFACES_APP_CHILD_GL_IMPL_H_ |
+#define MOJO_EXAMPLES_SURFACES_APP_CHILD_GL_IMPL_H_ |
+#include "base/containers/hash_tables.h" |
#include "base/memory/scoped_ptr.h" |
+#include "base/time/time.h" |
#include "cc/surfaces/surface_id.h" |
#include "cc/surfaces/surface_id_allocator.h" |
+#include "mojo/examples/sample_app/spinning_cube.h" |
#include "mojo/examples/surfaces_app/child.mojom.h" |
+#include "mojo/public/c/gles2/gles2.h" |
#include "mojo/public/cpp/bindings/string.h" |
#include "mojo/services/public/interfaces/surfaces/surface_id.mojom.h" |
#include "mojo/services/public/interfaces/surfaces/surfaces.mojom.h" |
@@ -23,27 +27,18 @@ namespace mojo { |
class ApplicationConnection; |
-namespace surfaces { |
-class Surface; |
-} |
- |
namespace examples { |
-// Simple example of a child app using surfaces. |
-class ChildImpl : public InterfaceImpl<Child>, public SurfaceClient { |
+// Simple example of a child app using surfaces + GL. |
+class ChildGLImpl : public InterfaceImpl<Child>, public SurfaceClient { |
public: |
- class Context { |
- public: |
- virtual ApplicationConnection* ShellConnection( |
- const mojo::String& application_url) = 0; |
- }; |
- explicit ChildImpl(ApplicationConnection* surfaces_service_connection); |
- virtual ~ChildImpl(); |
+ ChildGLImpl(ApplicationConnection* surfaces_service_connection, |
+ CommandBufferPtr command_buffer); |
+ virtual ~ChildGLImpl(); |
// SurfaceClient implementation |
virtual void SetIdNamespace(uint32_t id_namespace) OVERRIDE; |
- virtual void ReturnResources( |
- Array<ReturnedResourcePtr> resources) OVERRIDE; |
+ virtual void ReturnResources(Array<ReturnedResourcePtr> resources) OVERRIDE; |
private: |
// Child implementation. |
@@ -52,19 +47,25 @@ class ChildImpl : public InterfaceImpl<Child>, public SurfaceClient { |
SizePtr size, |
const mojo::Callback<void(SurfaceIdPtr id)>& callback) OVERRIDE; |
+ void AllocateSurface(); |
void Draw(); |
SkColor color_; |
gfx::Size size_; |
scoped_ptr<cc::SurfaceIdAllocator> allocator_; |
SurfacePtr surface_; |
+ MojoGLES2Context context_; |
cc::SurfaceId id_; |
- mojo::Callback<void(SurfaceIdPtr id)> produce_callback_; |
+ ::examples::SpinningCube cube_; |
+ Callback<void(SurfaceIdPtr id)> produce_callback_; |
+ base::TimeTicks start_time_; |
+ uint32_t next_resource_id_; |
+ base::hash_map<uint32_t, GLuint> id_to_tex_map_; |
- DISALLOW_COPY_AND_ASSIGN(ChildImpl); |
+ DISALLOW_COPY_AND_ASSIGN(ChildGLImpl); |
}; |
} // namespace examples |
} // namespace mojo |
-#endif // MOJO_EXAMPLES_SURFACES_APP_CHILD_IMPL_H_ |
+#endif // MOJO_EXAMPLES_SURFACES_APP_CHILD_GL_IMPL_H_ |