libscscreensaver/ScreensaverPlugin.cpp

57 lines
1.2 KiB
C++
Raw Normal View History

2020-10-27 13:39:55 +01:00
//
// 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);
}