Suckless OGL 1.0.0
A lean, high-performance C11 PBR Renderer
Loading...
Searching...
No Matches
async_loader.h
Go to the documentation of this file.
1
6#ifndef ASYNC_LOADER_H
7#define ASYNC_LOADER_H
8
9#include "asset_manager.h"
10#include "gl_common.h"
11#include <stdbool.h>
12#include <stdint.h>
13
14#define ASYNC_MAX_PATH 256
15
27
57
58typedef struct AsyncLoader AsyncLoader;
59struct TracyManager;
60
74
88
108bool async_loader_request(AsyncLoader* loader, const AssetHandle* asset);
109
134bool async_loader_poll(AsyncLoader* loader, AsyncRequest* out_req);
135
155void async_loader_provide_pbo(AsyncLoader* loader, void* mapped_ptr,
156 GLuint pbo_id);
157
174void async_loader_cancel(AsyncLoader* loader);
175
176#include "app_subsystem.h"
177int async_loader_subsys_init(struct App* app);
178void async_loader_subsys_cleanup(struct App* app);
179#define APP_ASYNC_LOADER_DESCRIPTOR \
180 {"async_loader", async_loader_subsys_init, async_loader_subsys_cleanup}
181
182#endif /* ASYNC_LOADER_H */
Subsystem descriptor pattern for structured init/cleanup.
AssetType
Definition asset_manager.h:17
bool async_loader_request(AsyncLoader *loader, const AssetHandle *asset)
Request a new asset to be loaded asynchronously.
Definition async_loader.c:342
void async_loader_subsys_cleanup(struct App *app)
Definition async_loader.c:475
int async_loader_subsys_init(struct App *app)
Definition async_loader.c:469
AsyncState
Definition async_loader.h:16
@ ASYNC_READY
Definition async_loader.h:23
@ ASYNC_PENDING
Definition async_loader.h:18
@ ASYNC_CONVERTING
Definition async_loader.h:22
@ ASYNC_IDLE
Definition async_loader.h:17
@ ASYNC_FAILED
Definition async_loader.h:25
@ ASYNC_WAITING_FOR_PBO
Definition async_loader.h:21
@ ASYNC_LOADING
Definition async_loader.h:20
void async_loader_provide_pbo(AsyncLoader *loader, void *mapped_ptr, GLuint pbo_id)
Provide the mapped memory address and GL buffer ID for PBO writing.
Definition async_loader.c:420
bool async_loader_poll(AsyncLoader *loader, AsyncRequest *out_req)
Poll the status of the current request.
Definition async_loader.c:381
void async_loader_cancel(AsyncLoader *loader)
Cancel a loading request waiting for PBO input.
Definition async_loader.c:443
void async_loader_destroy(AsyncLoader *loader)
Tear down the asynchronous loader subsystem.
Definition async_loader.c:309
AsyncLoader * async_loader_create(struct TracyManager *mgr)
Initialize the asynchronous loader subsystem.
Definition async_loader.c:262
#define ASYNC_MAX_PATH
Definition async_loader.h:14
Common OpenGL definitions, RAII helpers, and utilities.
The central state container for the entire application.
Definition app.h:24
Definition asset_manager.h:32
Definition async_loader.c:14
Données de la requête asynchrone transférées entre les threads.
Definition async_loader.h:33
int channels
Definition async_loader.h:47
uint32_t gl_internal_format
Definition async_loader.h:50
bool is_compressed
Definition async_loader.h:49
void * pbo_mapped_ptr
Definition async_loader.h:39
size_t required_pbo_size
Definition async_loader.h:42
uint32_t gl_format
Definition async_loader.h:51
char path[256]
Definition async_loader.h:34
uint32_t gl_type
Definition async_loader.h:52
double submission_time
Definition async_loader.h:54
volatile AsyncState state
Definition async_loader.h:55
void * backend_data
Definition async_loader.h:37
int width
Definition async_loader.h:45
AssetType resource_type
Definition async_loader.h:35
int height
Definition async_loader.h:46
GLuint pbo_id
Definition async_loader.h:41
Handles Tracy-specific instrumentation and asynchronous GPU screenshots.
Definition tracy_manager.h:19