$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 #endif
10 
11 #include <pthread.h>
12 
13 typedef struct App App;
14 
20 typedef struct TracyManager {
21 #ifdef TRACY_ENABLE
22 #define TRACY_PBO_COUNT 4
23  GLuint screenshot_pbo[TRACY_PBO_COUNT];
24  GLsync screenshot_sync[TRACY_PBO_COUNT];
25  GLuint screenshot_fbo;
26  GLuint screenshot_tex;
27  int screenshot_pbo_idx;
28 
29  /* --- Encapsulated State --- */
30  TracyCZoneCtx active_state_ctx;
31  pthread_mutex_t transition_mutex;
32 #endif
33 } TracyManager;
34 
39 void tracy_manager_init_global(void);
40 
44 void tracy_manager_init(TracyManager* mgr, int width, int height);
45 
50 
56 
61 
66 
67 #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:35
Handles Tracy-specific instrumentation and asynchronous GPU screenshots.
Definition: tracy_manager.h:20
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:250
void tracy_manager_cleanup(TracyManager *mgr)
Cleanup TracyManager resources.
Definition: tracy_manager.c:246
void tracy_manager_init(TracyManager *mgr, int width, int height)
Initialize a TracyManager instance.
Definition: tracy_manager.c:240
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:260
void tracy_manager_async_transition(TracyManager *mgr, AsyncState new_state)
Log a state transition for the AsyncLoader to Tracy.
Definition: tracy_manager.c:255