This promotes index sequence encoder, index codec version specification, adjacency/tessellation index buffer generators and cluster/meshlet generators and utilities to stable.
Showing 1 of 1 files from the diff.
Newly tracked file
src/meshoptimizer.h
changed.
@@ -108,7 +108,7 @@
Loading
108 | 108 | * destination must contain enough space for the resulting index buffer (index_count*2 elements) |
|
109 | 109 | * vertex_positions should have float3 position in the first 12 bytes of each vertex - similar to glVertexPointer |
|
110 | 110 | */ |
|
111 | - | MESHOPTIMIZER_EXPERIMENTAL void meshopt_generateAdjacencyIndexBuffer(unsigned int* destination, const unsigned int* indices, size_t index_count, const float* vertex_positions, size_t vertex_count, size_t vertex_positions_stride); |
|
111 | + | MESHOPTIMIZER_API void meshopt_generateAdjacencyIndexBuffer(unsigned int* destination, const unsigned int* indices, size_t index_count, const float* vertex_positions, size_t vertex_count, size_t vertex_positions_stride); |
|
112 | 112 | ||
113 | 113 | /** |
|
114 | 114 | * Generate index buffer that can be used for PN-AEN tessellation with crack-free displacement |
@@ -124,7 +124,7 @@
Loading
124 | 124 | * destination must contain enough space for the resulting index buffer (index_count*4 elements) |
|
125 | 125 | * vertex_positions should have float3 position in the first 12 bytes of each vertex - similar to glVertexPointer |
|
126 | 126 | */ |
|
127 | - | MESHOPTIMIZER_EXPERIMENTAL void meshopt_generateTessellationIndexBuffer(unsigned int* destination, const unsigned int* indices, size_t index_count, const float* vertex_positions, size_t vertex_count, size_t vertex_positions_stride); |
|
127 | + | MESHOPTIMIZER_API void meshopt_generateTessellationIndexBuffer(unsigned int* destination, const unsigned int* indices, size_t index_count, const float* vertex_positions, size_t vertex_count, size_t vertex_positions_stride); |
|
128 | 128 | ||
129 | 129 | /** |
|
130 | 130 | * Vertex transform cache optimizer |
@@ -204,7 +204,7 @@
Loading
204 | 204 | * Experimental: Set index encoder format version |
|
205 | 205 | * version must specify the data format version to encode; valid values are 0 (decodable by all library versions) and 1 (decodable by 0.14+) |
|
206 | 206 | */ |
|
207 | - | MESHOPTIMIZER_EXPERIMENTAL void meshopt_encodeIndexVersion(int version); |
|
207 | + | MESHOPTIMIZER_API void meshopt_encodeIndexVersion(int version); |
|
208 | 208 | ||
209 | 209 | /** |
|
210 | 210 | * Index buffer decoder |
@@ -224,8 +224,8 @@
Loading
224 | 224 | * |
|
225 | 225 | * buffer must contain enough space for the encoded index sequence (use meshopt_encodeIndexSequenceBound to compute worst case size) |
|
226 | 226 | */ |
|
227 | - | MESHOPTIMIZER_EXPERIMENTAL size_t meshopt_encodeIndexSequence(unsigned char* buffer, size_t buffer_size, const unsigned int* indices, size_t index_count); |
|
228 | - | MESHOPTIMIZER_EXPERIMENTAL size_t meshopt_encodeIndexSequenceBound(size_t index_count, size_t vertex_count); |
|
227 | + | MESHOPTIMIZER_API size_t meshopt_encodeIndexSequence(unsigned char* buffer, size_t buffer_size, const unsigned int* indices, size_t index_count); |
|
228 | + | MESHOPTIMIZER_API size_t meshopt_encodeIndexSequenceBound(size_t index_count, size_t vertex_count); |
|
229 | 229 | ||
230 | 230 | /** |
|
231 | 231 | * Index sequence decoder |
@@ -235,7 +235,7 @@
Loading
235 | 235 | * |
|
236 | 236 | * destination must contain enough space for the resulting index sequence (index_count elements) |
|
237 | 237 | */ |
|
238 | - | MESHOPTIMIZER_EXPERIMENTAL int meshopt_decodeIndexSequence(void* destination, size_t index_count, size_t index_size, const unsigned char* buffer, size_t buffer_size); |
|
238 | + | MESHOPTIMIZER_API int meshopt_decodeIndexSequence(void* destination, size_t index_count, size_t index_size, const unsigned char* buffer, size_t buffer_size); |
|
239 | 239 | ||
240 | 240 | /** |
|
241 | 241 | * Vertex buffer encoder |
@@ -253,7 +253,7 @@
Loading
253 | 253 | * Experimental: Set vertex encoder format version |
|
254 | 254 | * version must specify the data format version to encode; valid values are 0 (decodable by all library versions) |
|
255 | 255 | */ |
|
256 | - | MESHOPTIMIZER_EXPERIMENTAL void meshopt_encodeVertexVersion(int version); |
|
256 | + | MESHOPTIMIZER_API void meshopt_encodeVertexVersion(int version); |
|
257 | 257 | ||
258 | 258 | /** |
|
259 | 259 | * Vertex buffer decoder |
@@ -446,9 +446,9 @@
Loading
446 | 446 | * max_vertices and max_triangles must not exceed implementation limits (max_vertices <= 255 - not 256!, max_triangles <= 512) |
|
447 | 447 | * cone_weight should be set to 0 when cone culling is not used, and a value between 0 and 1 otherwise to balance between cluster size and cone culling efficiency |
|
448 | 448 | */ |
|
449 | - | MESHOPTIMIZER_EXPERIMENTAL size_t meshopt_buildMeshlets(struct meshopt_Meshlet* meshlets, unsigned int* meshlet_vertices, unsigned char* meshlet_triangles, const unsigned int* indices, size_t index_count, const float* vertex_positions, size_t vertex_count, size_t vertex_positions_stride, size_t max_vertices, size_t max_triangles, float cone_weight); |
|
450 | - | MESHOPTIMIZER_EXPERIMENTAL size_t meshopt_buildMeshletsScan(struct meshopt_Meshlet* meshlets, unsigned int* meshlet_vertices, unsigned char* meshlet_triangles, const unsigned int* indices, size_t index_count, size_t vertex_count, size_t max_vertices, size_t max_triangles); |
|
451 | - | MESHOPTIMIZER_EXPERIMENTAL size_t meshopt_buildMeshletsBound(size_t index_count, size_t max_vertices, size_t max_triangles); |
|
449 | + | MESHOPTIMIZER_API size_t meshopt_buildMeshlets(struct meshopt_Meshlet* meshlets, unsigned int* meshlet_vertices, unsigned char* meshlet_triangles, const unsigned int* indices, size_t index_count, const float* vertex_positions, size_t vertex_count, size_t vertex_positions_stride, size_t max_vertices, size_t max_triangles, float cone_weight); |
|
450 | + | MESHOPTIMIZER_API size_t meshopt_buildMeshletsScan(struct meshopt_Meshlet* meshlets, unsigned int* meshlet_vertices, unsigned char* meshlet_triangles, const unsigned int* indices, size_t index_count, size_t vertex_count, size_t max_vertices, size_t max_triangles); |
|
451 | + | MESHOPTIMIZER_API size_t meshopt_buildMeshletsBound(size_t index_count, size_t max_vertices, size_t max_triangles); |
|
452 | 452 | ||
453 | 453 | struct meshopt_Bounds |
|
454 | 454 | { |
@@ -487,8 +487,8 @@
Loading
487 | 487 | * vertex_positions should have float3 position in the first 12 bytes of each vertex - similar to glVertexPointer |
|
488 | 488 | * index_count/3 should be less than or equal to 512 (the function assumes clusters of limited size) |
|
489 | 489 | */ |
|
490 | - | MESHOPTIMIZER_EXPERIMENTAL struct meshopt_Bounds meshopt_computeClusterBounds(const unsigned int* indices, size_t index_count, const float* vertex_positions, size_t vertex_count, size_t vertex_positions_stride); |
|
491 | - | MESHOPTIMIZER_EXPERIMENTAL struct meshopt_Bounds meshopt_computeMeshletBounds(const unsigned int* meshlet_vertices, const unsigned char* meshlet_triangles, size_t triangle_count, const float* vertex_positions, size_t vertex_count, size_t vertex_positions_stride); |
|
490 | + | MESHOPTIMIZER_API struct meshopt_Bounds meshopt_computeClusterBounds(const unsigned int* indices, size_t index_count, const float* vertex_positions, size_t vertex_count, size_t vertex_positions_stride); |
|
491 | + | MESHOPTIMIZER_API struct meshopt_Bounds meshopt_computeMeshletBounds(const unsigned int* meshlet_vertices, const unsigned char* meshlet_triangles, size_t triangle_count, const float* vertex_positions, size_t vertex_count, size_t vertex_positions_stride); |
|
492 | 492 | ||
493 | 493 | /** |
|
494 | 494 | * Experimental: Spatial sorter |
Files | Coverage |
---|---|
src | 97.54% |
Project Totals (16 files) | 97.54% |
1487511230
1487511230
1487511230
Sunburst
The inner-most circle is the entire project, moving away from the center are folders then, finally, a single file.
The size and color of each slice is representing the number of statements and the coverage, respectively.
Icicle
The top section represents the entire project. Proceeding with folders and finally individual files.
The size and color of each slice is representing the number of statements and the coverage, respectively.