Index: gpu/demos/framework/window.h |
=================================================================== |
--- gpu/demos/framework/window.h (revision 0) |
+++ gpu/demos/framework/window.h (working copy) |
@@ -2,67 +2,38 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-// Base class for gles2 applications using command buffer. |
+#ifndef GPU_DEMOS_FRAMEWORK_WINDOW_H_ |
+#define GPU_DEMOS_FRAMEWORK_WINDOW_H_ |
-#ifndef GPU_DEMOS_APP_FRAMEWORK_APPLICATION_H_ |
-#define GPU_DEMOS_APP_FRAMEWORK_APPLICATION_H_ |
+#include "base/scoped_ptr.h" |
+#include "gpu/demos/framework/demo.h" |
+#include "gpu/demos/framework/platform.h" |
-#include "base/at_exit.h" |
-#include "base/message_loop.h" |
-#include "base/time.h" |
+namespace gpu { |
+namespace demos { |
-#include "gpu/demos/app_framework/platform.h" |
- |
-namespace gpu_demos { |
- |
-// Acts as a base class for GLES2 applications using command buffer. |
-// The derived calls needs to call InitRenderContext() to create a render |
-// surface and initialize a rendering context. Currently it only creates |
-// an on-screen window. It will be extended to support pepper/nacl plugin |
-// when pepper 3D api is in place. |
-class Application { |
+// Acts as a framework for standalone demos. It creates a window and delegates |
+// all events to demo to perform rendering and other tasks. |
+class Window { |
public: |
- Application(); |
- virtual ~Application(); |
+ Window(); |
+ virtual ~Window(); |
+ // Initializes and creates a window with given dimensions. |
+ bool Init(int width, int height); |
+ |
// Enters the event processing loop. |
void MainLoop(); |
+ |
void OnPaint(); |
- protected: |
- // Returns the width of rendering surface. |
- inline int width() const { return width_; } |
- // Returns the height of rendering surface. |
- inline int height() const { return height_; } |
- |
- bool InitRenderContext(); |
- |
- // The framework calls this function for the derived classes to do custom |
- // rendering. There is no default implementation. It must be defined by the |
- // derived classes. The elapsed_sec param represents the time elapsed |
- // (in seconds) after Draw was called the last time. It can be used to |
- // make the application frame-rate independent. It is 0.0f for the |
- // first draw call. |
- virtual void Draw(float elapsed_sec) = 0; |
- |
private: |
- // Creates a native on-screen window. |
- NativeWindowHandle CreateNativeWindow(); |
- |
- int width_; |
- int height_; |
NativeWindowHandle window_handle_; |
+ scoped_ptr<Demo> demo_; |
- // Time at which draw was called last. |
- base::Time last_draw_time_; |
- |
- // The following two variables are just needed to satisfy |
- // the assumption that we are running inside a browser. |
- base::AtExitManager at_exit_manager_; |
- MessageLoopForUI message_loop_; |
- |
- DISALLOW_COPY_AND_ASSIGN(Application); |
+ DISALLOW_COPY_AND_ASSIGN(Window); |
}; |
-} // namespace gpu_demos |
-#endif // GPU_DEMOS_APP_FRAMEWORK_APPLICATION_H_ |
+} // namespace demos |
+} // namespace gpu |
+#endif // GPU_DEMOS_FRAMEWORK_WINDOW_H_ |