6#ifndef BILLBOARD_SORTER_H
7#define BILLBOARD_SORTER_H
72 const vec3 camera_pos);
84 const vec3 camera_pos);
97 int count,
const vec3 camera_pos);
GLuint billboard_sorter_sort_cpu_radix(BillboardSorter *sorter, const SphereInstance *instances, int count, const vec3 camera_pos)
Sorts the array of instances Back-to-Front (descending depth) using Radix Sort.
Definition billboard_sorter.c:418
GLuint billboard_sorter_sort_gpu(BillboardSorter *sorter, const SphereInstance *instances, int count, const vec3 camera_pos)
Sorts the array of instances Back-to-Front (descending depth) on GPU.
Definition billboard_sorter.c:208
void billboard_sorter_init(BillboardSorter *sorter, int initial_capacity)
Allocates internal buffers for the sorter.
Definition billboard_sorter.c:135
GLuint billboard_sorter_sort(BillboardSorter *sorter, const SphereInstance *instances, int count, const vec3 camera_pos, SortingMode mode)
Dispatches the sorting task using the specified SortingMode.
Definition billboard_sorter.c:510
void billboard_sorter_cleanup(BillboardSorter *sorter)
Destroys the sorter context.
Definition billboard_sorter.c:191
GLuint billboard_sorter_sort_cpu(BillboardSorter *sorter, const SphereInstance *instances, int count, const vec3 camera_pos)
Sorts the array of instances Back-to-Front (descending depth) on CPU.
Definition billboard_sorter.c:357
Common OpenGL definitions, RAII helpers, and utilities.
Render configuration flags extracted from Scene.
SortingMode
Sorting algorithms for transparent billboards.
Definition scene_config.h:15
Pure-data type for per-instance sphere attributes.
Lightweight proxy for sorting data without moving large structs.
Definition billboard_sorter.h:18
float depth
Definition billboard_sorter.h:20
int original_index
Definition billboard_sorter.h:19
Reusable memory context for sorting operations.
Definition billboard_sorter.h:27
GLint loc_cam
Definition billboard_sorter.h:37
int cpu_capacity
Definition billboard_sorter.h:45
GLuint instance_ssbo
Definition billboard_sorter.h:29
GLuint index_ssbo
Definition billboard_sorter.h:30
int ssbo_capacity
Definition billboard_sorter.h:44
BillboardSortEntry * entries_aux
Definition billboard_sorter.h:42
GLint loc_j
Definition billboard_sorter.h:38
GLint loc_count_pot
Definition billboard_sorter.h:36
GLint loc_count
Definition billboard_sorter.h:35
GLuint compute_program
Definition billboard_sorter.h:28
int min_capacity
Definition billboard_sorter.h:46
SphereInstance * temp_instances
Definition billboard_sorter.h:43
GLuint sorted_instance_ssbo
Definition billboard_sorter.h:31
GLint loc_k
Definition billboard_sorter.h:39
GLint loc_stage
Definition billboard_sorter.h:34
BillboardSortEntry * entries
Definition billboard_sorter.h:41
Per-instance data sent to the shader via an instanced VBO.
Definition sphere_types.h:25