mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-25 16:46:00 +01:00
4b4971c06f
* framebuffer: avoid gluint overflow GLuint was being initialized to -1 and rolling over to unsigned int max, its defined behaviour but very unnecessery. add a bool and use it for checking if allocated or not. * opengl: avoid gluint rollover -1 rolls over to unsigned int max, use 0xFF instead. * core: big uint64_t to int type conversion there were a few uint64_t to int implicit conversions overflowing int and causing UB, make all monitor/workspaces/windows use the new typedefs. also fix the various related 64 to 32 implicit conversions going around found with -Wshorten-64-to-32
59 lines
1.9 KiB
C++
59 lines
1.9 KiB
C++
#pragma once
|
|
|
|
#include "helpers/math/Math.hpp"
|
|
#include <functional>
|
|
#include <any>
|
|
#include <hyprutils/math/Box.hpp>
|
|
|
|
using namespace Hyprutils::Math;
|
|
|
|
enum eIcons {
|
|
ICON_WARNING = 0,
|
|
ICON_INFO,
|
|
ICON_HINT,
|
|
ICON_ERROR,
|
|
ICON_CONFUSED,
|
|
ICON_OK,
|
|
ICON_NONE
|
|
};
|
|
|
|
enum eRenderStage {
|
|
RENDER_PRE = 0, /* Before binding the gl context */
|
|
RENDER_BEGIN, /* Just when the rendering begins, nothing has been rendered yet. Damage, current render data in opengl valid. */
|
|
RENDER_PRE_WINDOWS, /* Pre windows, post bottom and overlay layers */
|
|
RENDER_POST_WINDOWS, /* Post windows, pre top/overlay layers, etc */
|
|
RENDER_LAST_MOMENT, /* Last moment to render with the gl context */
|
|
RENDER_POST, /* After rendering is finished, gl context not available anymore */
|
|
RENDER_POST_MIRROR, /* After rendering a mirror */
|
|
RENDER_PRE_WINDOW, /* Before rendering a window (any pass) Note some windows (e.g. tiled) may have 2 passes (main & popup) */
|
|
RENDER_POST_WINDOW, /* After rendering a window (any pass) */
|
|
};
|
|
|
|
enum eInputType {
|
|
INPUT_TYPE_AXIS = 0,
|
|
INPUT_TYPE_BUTTON,
|
|
INPUT_TYPE_DRAG_START,
|
|
INPUT_TYPE_DRAG_END,
|
|
INPUT_TYPE_MOTION
|
|
};
|
|
|
|
struct SCallbackInfo {
|
|
bool cancelled = false; /* on cancellable events, will cancel the event. */
|
|
};
|
|
|
|
enum eHyprCtlOutputFormat {
|
|
FORMAT_NORMAL = 0,
|
|
FORMAT_JSON
|
|
};
|
|
|
|
struct SHyprCtlCommand {
|
|
std::string name = "";
|
|
bool exact = true;
|
|
std::function<std::string(eHyprCtlOutputFormat, std::string)> fn;
|
|
};
|
|
|
|
typedef int64_t WINDOWID;
|
|
typedef int64_t MONITORID;
|
|
typedef int64_t WORKSPACEID;
|
|
|
|
typedef std::function<void(void*, SCallbackInfo&, std::any)> HOOK_CALLBACK_FN;
|