| Index: experimental/flocking_geese/nacl_app/flocking_geese_app.h
|
| diff --git a/experimental/flocking_geese/nacl_app/flocking_geese_app.h b/experimental/flocking_geese/nacl_app/flocking_geese_app.h
|
| deleted file mode 100644
|
| index 186a4562c760a35f2878994dedd88da7386314f2..0000000000000000000000000000000000000000
|
| --- a/experimental/flocking_geese/nacl_app/flocking_geese_app.h
|
| +++ /dev/null
|
| @@ -1,129 +0,0 @@
|
| -// Copyright (c) 2011 The Native Client 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 FLOCKING_GEESE_APP_H_
|
| -#define FLOCKING_GEESE_APP_H_
|
| -
|
| -#include "nacl_app/flock.h"
|
| -#include "nacl_app/locking_image_data.h"
|
| -#include "nacl_app/png_loader.h"
|
| -#include "ppapi/cpp/graphics_2d.h"
|
| -#include "ppapi/cpp/instance.h"
|
| -#include "ppapi/cpp/rect.h"
|
| -#include "ppapi/cpp/size.h"
|
| -#include "ppapi/cpp/var.h"
|
| -#include "scripting/scripting_bridge.h"
|
| -
|
| -namespace flocking_geese {
|
| -// Manager class that contains the Flock simulation, and handles all the
|
| -// Pepper interaction (scripting, 2D graphics). Pepper calls are all made
|
| -// on the main (browser) thread. The pixel buffer that the simulation draws
|
| -// into is managed by this object, and shared with the simulation thread.
|
| -class FlockingGeeseApp : public pp::Instance {
|
| - public:
|
| - explicit FlockingGeeseApp(PP_Instance instance);
|
| - virtual ~FlockingGeeseApp();
|
| -
|
| - // Called by the browser when the NaCl module is loaded and all ready to go.
|
| - virtual bool Init(uint32_t argc, const char* argn[], const char* argv[]);
|
| -
|
| - // Update the graphics context to the new size, and reallocate all new
|
| - // buffers to the new size.
|
| - virtual void DidChangeView(const pp::Rect& position, const pp::Rect& clip);
|
| -
|
| - // Called by the browser to handle the postMessage() call in Javascript.
|
| - virtual void HandleMessage(const pp::Var& message);
|
| -
|
| - // Flushes the contents of the simulation's pixel buffer to the 2D graphics
|
| - // context. If needed, a new pixel buffer is created (for example, a new
|
| - // pixel buffer is created when the simulation's view changes size).
|
| - void Update();
|
| -
|
| - // Create a new flock of geese for the simulation. Pauses the simulation
|
| - // first, then calls ResetFlock() on the simulation with an initial location
|
| - // that is the center of the simulation canvas. If the simulation was
|
| - // running before making this call, then start it up again with the newly-
|
| - // created flock. Takes one parameter: 'size' which is the new size of the
|
| - // flock.
|
| - void ResetFlock(const scripting::ScriptingBridge& bridge,
|
| - const scripting::MethodParameter& parameters);
|
| -
|
| - // Run the simulation. Exposed to the browser as "runSimulation". Takes
|
| - // no parameters.
|
| - void RunSimulation(const scripting::ScriptingBridge& bridge,
|
| - const scripting::MethodParameter& parameters);
|
| -
|
| - // Pause the simulation. Does nothing if the simulation is stopped.
|
| - // Exposed to the browser as "pauseSimulation". Takes no parameters.
|
| - void PauseSimulation(const scripting::ScriptingBridge& bridge,
|
| - const scripting::MethodParameter& parameters);
|
| -
|
| - // Set the attractor location.
|
| - void SetAttractorLocation(const scripting::ScriptingBridge& bridge,
|
| - const scripting::MethodParameter& parameters);
|
| -
|
| - // Package up the current stats about the simulation (tick duration, etc.)
|
| - // and post it as a formatted string back to the browser. The string
|
| - // starts with the method name "setSimulationInfo" followed and a list of
|
| - // named parameters separated by spaces. The parameter names are separated
|
| - // from their values by a ':'.
|
| - // For example:
|
| - // setSimulationInfo tickDuration:<int>
|
| - // Note: this method can't be 'const' because PostMessage() isn't const.
|
| - void PostSimulationInfo();
|
| -
|
| - int width() const {
|
| - return shared_pixel_buffer_ ? shared_pixel_buffer_->size().width() : 0;
|
| - }
|
| - int height() const {
|
| - return shared_pixel_buffer_ ? shared_pixel_buffer_->size().height() : 0;
|
| - }
|
| -
|
| - // Indicate whether the simulation is running or paused.
|
| - bool is_running() const {
|
| - return flock_simulation_.simulation_mode() !=
|
| - flocking_geese::Flock::kPaused;
|
| - }
|
| -
|
| - // Indicate whether a flush is pending. This can only be called from the
|
| - // main thread; it is not thread safe.
|
| - bool flush_pending() const {
|
| - return flush_pending_;
|
| - }
|
| - void set_flush_pending(bool flag) {
|
| - flush_pending_ = flag;
|
| - }
|
| - private:
|
| - // Create and initialize the 2D context used for drawing.
|
| - void CreateContext(const pp::Size& size);
|
| - // Destroy the 2D drawing context.
|
| - void DestroyContext();
|
| - // Push the pixels to the browser, then attempt to flush the 2D context. If
|
| - // there is a pending flush on the 2D context, then update the pixels only
|
| - // and do not flush.
|
| - void FlushPixelBuffer();
|
| -
|
| - bool IsContextValid() const {
|
| - return graphics_2d_context_ != NULL;
|
| - }
|
| -
|
| - // The simulation.
|
| - Flock flock_simulation_;
|
| -
|
| - // Browser connectivity and scripting support.
|
| - scripting::ScriptingBridge scripting_bridge_;
|
| -
|
| - // 2D context variables.
|
| - std::tr1::shared_ptr<LockingImageData> shared_pixel_buffer_;
|
| - pp::Graphics2D* graphics_2d_context_;
|
| - bool flush_pending_;
|
| - bool view_changed_size_;
|
| - pp::Size view_size_;
|
| -
|
| - // Resource management.
|
| - PngLoader png_loader_;
|
| -};
|
| -} // namespace flocking_geese
|
| -
|
| -#endif // FLOCKING_GEESE_APP_H_
|
|
|