1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
/* This file is part of the Spring engine (GPL v2 or later), see LICENSE.html */
#ifndef _VIDEO_CAPTURING_H
#define _VIDEO_CAPTURING_H
#include <boost/noncopyable.hpp>
class IVideoCapturing : public boost::noncopyable {
protected:
IVideoCapturing();
virtual ~IVideoCapturing();
public:
static IVideoCapturing* GetInstance();
static void FreeInstance();
virtual void RenderFrame() = 0;
static void SetCapturing(bool enabled);
/**
* Indicates whether it is possible/supported to capture a video.
*
* @return true if it is possible/supported to capture a video
*/
virtual bool IsCapturingSupported() const = 0;
/**
* Indicates whether a video is currently being captured.
*
* @return true if a video is currently being captured
*/
virtual bool IsCapturing() const { return false; }
protected:
virtual void StartCapturing() {}
virtual void StopCapturing() {}
};
#define videoCapturing IVideoCapturing::GetInstance()
#endif // _VIDEO_CAPTURING_H
|