// This file is part of Desktop App Toolkit, // a set of libraries for developing nice desktop applications. // // For license and copyright information please follow this link: // https://github.com/desktop-app/legal/blob/master/LEGAL // #pragma once #include "ui/gl/gl_math.h" #include "ui/style/style_core.h" #include #include class QOpenGLFunctions; namespace Ui::GL { void FillRectVertices(float *coords, Rect rect); void FillTriangles( QOpenGLFunctions &f, gsl::span coords, not_null buffer, not_null program, QSize viewportWithFactor, const QColor &color, Fn additional = nullptr); void FillTexturedRectangle( QOpenGLFunctions &f, not_null program, int skipVertices = 0); class BackgroundFiller final { public: void init(QOpenGLFunctions &f); void deinit(QOpenGLFunctions &); void fill( QOpenGLFunctions &f, const QRegion ®ion, QSize viewport, float factor, const style::color &color); private: std::optional _bgBuffer; std::optional _bgProgram; std::vector _bgTriangles; }; } // namespace Ui::GL