Suckless OGL 1.0.0
A lean, high-performance C11 PBR Renderer
Loading...
Searching...
No Matches
tracy_manager.h
Go to the documentation of this file.
1#ifndef TRACY_MANAGER_H
2#define TRACY_MANAGER_H
3
4#include "async_loader.h"
5
6#ifdef TRACY_ENABLE
7#include "tracy/TracyC.h"
8#include "tracy_gpu.h"
9#include <pthread.h>
10#endif
11
12typedef struct App App;
13
19typedef struct TracyManager {
20#ifdef TRACY_ENABLE
21#define TRACY_PBO_COUNT 4
22 GLuint screenshot_pbo[TRACY_PBO_COUNT];
23 GLsync screenshot_sync[TRACY_PBO_COUNT];
24 GLuint screenshot_fbo;
25 GLuint screenshot_tex;
26 int screenshot_pbo_idx;
27
28 /* --- Encapsulated State --- */
29 TracyCZoneCtx active_state_ctx;
30 pthread_mutex_t transition_mutex;
31#endif
33
39
43void tracy_manager_init(TracyManager* mgr, int width, int height);
44
49
55
60
65
66#endif // TRACY_MANAGER_H
Threaded asynchronous file loader engine (Format-agnostic).
AsyncState
Definition async_loader.h:16
The central state container for the entire application.
Definition app.h:24
Handles Tracy-specific instrumentation and asynchronous GPU screenshots.
Definition tracy_manager.h:19
void tracy_manager_update_screenshots(TracyManager *mgr, App *app)
Asynchronously capture and send screenshots to Tracy. Should be called once per frame.
Definition tracy_manager.c:258
void tracy_manager_cleanup(TracyManager *mgr)
Cleanup TracyManager resources.
Definition tracy_manager.c:253
void tracy_manager_init(TracyManager *mgr, int width, int height)
Initialize a TracyManager instance.
Definition tracy_manager.c:246
void tracy_manager_init_global(void)
Global Tracy initialization (cJSON hooks, etc). Must be called as early as possible in main().
Definition tracy_manager.c:242
void tracy_manager_async_end(TracyManager *mgr)
End any active async tracking zone in Tracy.
Definition tracy_manager.c:270
void tracy_manager_async_transition(TracyManager *mgr, AsyncState new_state)
Log a state transition for the AsyncLoader to Tracy.
Definition tracy_manager.c:264