// // 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); }