$darkmode
Suckless OGL 1.0.0
A lean, high-performance C11 PBR Renderer
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 
12 typedef struct App App;
13 
19 typedef 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
32 } TracyManager;
33 
38 void tracy_manager_init_global(void);
39 
43 void tracy_manager_init(TracyManager* mgr, int width, int height);
44 
49 
55 
60 
65 
66 #endif // TRACY_MANAGER_H
Threaded asynchronous file loader for heavy assets (HDR, textures).
AsyncState
Lifecycle states for an individual asynchronous request.
Definition: async_loader.h:22
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:253
void tracy_manager_cleanup(TracyManager *mgr)
Cleanup TracyManager resources.
Definition: tracy_manager.c:248
void tracy_manager_init(TracyManager *mgr, int width, int height)
Initialize a TracyManager instance.
Definition: tracy_manager.c:241
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:237
void tracy_manager_async_end(TracyManager *mgr)
End any active async tracking zone in Tracy.
Definition: tracy_manager.c:265
void tracy_manager_async_transition(TracyManager *mgr, AsyncState new_state)
Log a state transition for the AsyncLoader to Tracy.
Definition: tracy_manager.c:259