[client] app: implement new overlay rendering framework

This change set implements a framework for overlays to be registered
that make use of ImGui. See `overlay/fps` for a simple implementation
example.
This commit is contained in:
Geoffrey McRae
2021-07-22 17:27:30 +10:00
parent 30c4a4786b
commit fdbdf6f167
11 changed files with 385 additions and 124 deletions

View File

@@ -27,6 +27,7 @@
#include "common/ringbuffer.h"
#include "common/types.h"
#include "interface/displayserver.h"
#include "interface/overlay.h"
typedef enum LG_MsgAlert
{
@@ -79,10 +80,15 @@ void app_glSetSwapInterval(int interval);
void app_glSwapBuffers(void);
#endif
typedef struct ImGuiGraph * GraphHandle;
void app_registerOverlay(const struct LG_OverlayOps * ops, void * params);
int app_renderOverlay(struct Rect * rects, int maxRects);
void app_freeOverlays(void);
struct OverlayGraph;
typedef struct OverlayGraph * GraphHandle;
GraphHandle app_registerGraph(const char * name, RingBuffer buffer);
void app_unregisterGraph(GraphHandle handle);
bool app_renderImGui(void);
void app_clipboardRelease(void);
void app_clipboardNotifyTypes(const LG_ClipboardData types[], int count);