X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FMoof%2FEngine.hh;fp=src%2FMoof%2FEngine.hh;h=0000000000000000000000000000000000000000;hp=28d7fa03eab8119d16a58ca5f2c81ad40da69ad5;hb=987971a961454d97082c6448fdc0bbeb540281bb;hpb=be9ebc1104574e5e81e19c5caba0c23b54df826d diff --git a/src/Moof/Engine.hh b/src/Moof/Engine.hh deleted file mode 100644 index 28d7fa0..0000000 --- a/src/Moof/Engine.hh +++ /dev/null @@ -1,108 +0,0 @@ - -/******************************************************************************* - - Copyright (c) 2009, Charles McGarvey - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -*******************************************************************************/ - -#ifndef _MOOF_ENGINE_HH_ -#define _MOOF_ENGINE_HH_ - -#include - -#include -#include -#include -#include - - -namespace Mf { - - -class Settings; - - -/** - * The engine is essentially a stack of layers. While running, it updates each - * layer from the bottom up every timestep. It also draws each layer from the - * bottom up, adhering to the maximum frame-rate. Events are sent to each layer - * from the top down until a layer signals the event was handled. The engine is - * also responsible for firing timers on time. The engine will continue running - * as long as there are layers on the stack. - */ - -class Engine -{ -public: - - Engine(); - ~Engine() {} - - // loads settings: rngseed, timestep, framerate, showfps - bool initWithSettings(const Settings& settings); - - const Error& getError() const; - void clearError(); - - // setting the video is required before you can run the engine and should - // probably be done before adding any layers - void setVideo(VideoP video); - VideoP getVideo() const; - - int getFps() const; - - void push(LayerP layer); // push a layer onto the top - LayerP pop(); // pop the top layer - LayerP pop(Layer* layer); // pops a specific layer and all layers above it - void clear(); // remove all layers (the engine will stop) - - int getSize() const; // get the size of the stack - - // set this machine in motion - void run(); - - Dispatch::Handler addHandler(const std::string& event, - const Dispatch::Function& callback); - Dispatch::Handler addHandler(const std::string& event, - const Dispatch::Function& callback, Dispatch::Handler handler); - - void dispatch(const std::string& event, - const Dispatch::Message* message = 0); - -private: - - class Impl; - boost::shared_ptr mImpl; -}; - - -extern Engine engine; - - -} // namespace Mf - -#endif // _MOOF_ENGINE_HH_ - -/** vim: set ts=4 sw=4 tw=80: *************************************************/ -