moved to libscscreensaver
This commit is contained in:
parent
31dca75b13
commit
fb09e7434d
@ -1,56 +0,0 @@
|
||||
//
|
||||
// ScreensaverPlugin.cpp
|
||||
// tmp
|
||||
//
|
||||
// Created by Bob Polis at 2020-10-26
|
||||
// Copyright (c) 2020 SwiftCoder. All rights reserved.
|
||||
//
|
||||
|
||||
#include "ScreensaverPlugin.hpp"
|
||||
|
||||
ScreensaverPlugin::ScreensaverPlugin(cairo_t* context, const cairo_rectangle_t& rect)
|
||||
: _c {context}, _r {rect}, _x_dist {rect.x, rect.width}, _y_dist {rect.y, rect.height} {
|
||||
|
||||
}
|
||||
|
||||
void ScreensaverPlugin::make_black() {
|
||||
cairo_set_source_rgb(_c, 0, 0, 0);
|
||||
cairo_rectangle(_c, 0, 0, _r.width, _r.height);
|
||||
cairo_fill(_c);
|
||||
}
|
||||
|
||||
cairo_rectangle_t ScreensaverPlugin::random_rect() {
|
||||
cairo_rectangle_t rect;
|
||||
double v1, v2;
|
||||
v1 = random_x();
|
||||
v2 = random_x();
|
||||
if (v1 < v2) {
|
||||
rect.x = v1;
|
||||
rect.width = v2 - v1;
|
||||
} else {
|
||||
rect.x = v2;
|
||||
rect.width = v1 - v2;
|
||||
}
|
||||
v1 = random_y();
|
||||
v2 = random_y();
|
||||
if (v1 < v2) {
|
||||
rect.y = v1;
|
||||
rect.height = v2 - v1;
|
||||
} else {
|
||||
rect.y = v2;
|
||||
rect.height = v1 - v2;
|
||||
}
|
||||
return rect;
|
||||
}
|
||||
|
||||
double ScreensaverPlugin::random_x() {
|
||||
return _x_dist(_eng);
|
||||
}
|
||||
|
||||
double ScreensaverPlugin::random_y() {
|
||||
return _y_dist(_eng);
|
||||
}
|
||||
|
||||
double ScreensaverPlugin::random01() {
|
||||
return _01_dist(_eng);
|
||||
}
|
@ -1,39 +0,0 @@
|
||||
//
|
||||
// ScreensaverPlugin.hpp
|
||||
// screensaver
|
||||
//
|
||||
// Created by Bob Polis at 2020-10-26
|
||||
// Copyright (c) 2020 SwiftCoder. All rights reserved.
|
||||
//
|
||||
|
||||
#ifndef _ScreensaverPlugin_H_
|
||||
#define _ScreensaverPlugin_H_
|
||||
|
||||
#include <cairo/cairo.h>
|
||||
#include <random>
|
||||
|
||||
class ScreensaverPlugin {
|
||||
public:
|
||||
ScreensaverPlugin(cairo_t* context, const cairo_rectangle_t& rect);
|
||||
virtual ~ScreensaverPlugin() = default;
|
||||
|
||||
virtual void draw_frame() = 0;
|
||||
virtual int fps() const = 0;
|
||||
|
||||
protected:
|
||||
cairo_t* _c;
|
||||
cairo_rectangle_t _r;
|
||||
std::random_device _dev;
|
||||
std::default_random_engine _eng {_dev()};
|
||||
std::uniform_real_distribution<> _01_dist {};
|
||||
std::uniform_real_distribution<> _x_dist;
|
||||
std::uniform_real_distribution<> _y_dist;
|
||||
|
||||
void make_black();
|
||||
cairo_rectangle_t random_rect();
|
||||
double random_x();
|
||||
double random_y();
|
||||
double random01();
|
||||
};
|
||||
|
||||
#endif // _ScreensaverPlugin_H_
|
Loading…
x
Reference in New Issue
Block a user