X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FMoof%2FEngine.hh;h=84b1f588f57e41c55d5a185bec8e0d40abcca198;hp=a0c23002080ff5ef65fa1a336cedd1294e101a35;hb=c9e20ac06383b20ceb5404c9237e319c2e90d157;hpb=892da43bf5796e7c5f593a6d0f53bd797a36bd3e diff --git a/src/Moof/Engine.hh b/src/Moof/Engine.hh index a0c2300..84b1f58 100644 --- a/src/Moof/Engine.hh +++ b/src/Moof/Engine.hh @@ -31,7 +31,6 @@ #include -#include #include #include @@ -42,8 +41,10 @@ namespace Mf { // forward declarations class Video; -struct Engine +class Engine { +public: + Engine(int argc, char* argv[], const std::string& name, const std::string& iconFile, const std::string& configFile); ~Engine() {} @@ -61,25 +62,16 @@ struct Engine Video& getVideo() const; long getFrameRate() const; - void pushLayer(LayerP layer); - void popLayer(); - void popLayer(Layer* layer); - void clearLayers(); - - struct Exception : public Mf::Exception - { - explicit Exception(unsigned error) : - Mf::Exception(error) {} - - void raise() - { - throw *this; - } - }; + void push(LayerP layer); + LayerP pop(); + // pops a specific layer and all layers above it + LayerP pop(Layer* layer); + void clear(); private: + class Impl; - boost::shared_ptr impl_; + boost::shared_ptr mImpl; };