Create Device Source and integration of Stream

This commit is contained in:
brunoherbelin
2020-09-21 22:41:20 +02:00
parent 519baf7a3b
commit 9251aff19f
10 changed files with 323 additions and 21 deletions

48
DeviceSource.h Normal file
View File

@@ -0,0 +1,48 @@
#ifndef DEVICESOURCE_H
#define DEVICESOURCE_H
#include "Stream.h"
#include "Source.h"
class Device : public Stream
{
public:
Device();
void open( uint deviceid );
glm::ivec2 resolution();
private:
void open( std::string description ) override;
uint device_;
};
class DeviceSource : public Source
{
public:
DeviceSource();
~DeviceSource();
// implementation of source API
void update (float dt) override;
void setActive (bool on) override;
void render() override;
bool failed() const override;
uint texture() const override;
void accept (Visitor& v) override;
// Pattern specific interface
inline Device *device() const { return stream_; }
void setDevice(int id);
protected:
void init() override;
void replaceRenderingShader() override;
Surface *devicesurface_;
Device *stream_;
};
#endif // DEVICESOURCE_H