Files
gpu-screen-recorder-ui/include/Overlay.hpp
dec05eba b145d957e3 More
2024-09-08 17:07:22 +02:00

56 lines
1.8 KiB
C++

#pragma once
#include "gui/PageStack.hpp"
#include "gui/CustomRendererWidget.hpp"
#include "GsrInfo.hpp"
#include "Config.hpp"
#include "window_texture.h"
#include <mglpp/window/Window.hpp>
#include <mglpp/graphics/Texture.hpp>
#include <mglpp/graphics/Sprite.hpp>
#include <mglpp/graphics/Rectangle.hpp>
#include <mglpp/graphics/Text.hpp>
namespace gsr {
class Overlay {
public:
Overlay(mgl::Window &window, std::string resources_path, GsrInfo gsr_info, egl_functions egl_funcs, mgl::Color bg_color);
Overlay(const Overlay&) = delete;
Overlay& operator=(const Overlay&) = delete;
~Overlay();
void on_event(mgl::Event &event, mgl::Window &window);
void draw(mgl::Window &window);
void show();
void hide();
void toggle_show();
bool is_open() const;
private:
bool update_compositor_texture(const mgl_monitor *monitor);
private:
mgl::Window &window;
std::string resources_path;
GsrInfo gsr_info;
egl_functions egl_funcs;
mgl::Color bg_color;
std::vector<gsr::AudioDevice> audio_devices;
mgl::Texture window_texture_texture;
mgl::Sprite window_texture_sprite;
mgl::Texture screenshot_texture;
mgl::Sprite screenshot_sprite;
mgl::Rectangle bg_screenshot_overlay;
WindowTexture window_texture;
gsr::PageStack page_stack;
mgl::Rectangle top_bar_background;
mgl::Text top_bar_text;
mgl::Sprite logo_sprite;
CustomRendererWidget close_button_widget;
bool close_button_pressed_inside = false;
bool visible = false;
uint64_t default_cursor = 0;
pid_t gpu_screen_recorder_process = -1;
std::optional<Config> config;
};
}