Program Listing for File FrameProcessor.hpp

Return to documentation for file (engine/include/Cacao/FrameProcessor.hpp)

#pragma once

#include "DllHelper.hpp"

#include <memory>

namespace Cacao {
    class CACAO_API FrameProcessor {
      public:
        static FrameProcessor& Get();

        FrameProcessor(const FrameProcessor&) = delete;
        FrameProcessor(FrameProcessor&&) = delete;
        FrameProcessor& operator=(const FrameProcessor&) = delete;
        FrameProcessor& operator=(FrameProcessor&&) = delete;

        void Start();

        void Stop();

        bool IsRunning() const {
            return running;
        }

      private:
        struct Impl;
        std::unique_ptr<Impl> impl;

        bool running;

        FrameProcessor();
        ~FrameProcessor();
    };
}