Skip to content

Commit 7a59d68

Browse files
committed
Update README.md
Document the general guarantees about experimental APIs and API stability, as well as the current list of experimental APIs.
1 parent 5e77d9e commit 7a59d68

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

README.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -557,6 +557,26 @@ Vertex and index decoders (`meshopt_decodeVertexBuffer`, `meshopt_decodeIndexBuf
557557

558558
All functions have bounded stack usage that does not exceed 32 KB for any algorithms.
559559

560+
## Experimental APIs
561+
562+
Several algorithms provided by this library are marked as "experimental"; this status is reflected in the comments as well as the annotation `MESHOPTIMIZER_EXPERIMENTAL` for each function.
563+
564+
APIs that are not experimental (annotated with `MESHOPTIMIZER_API`) are considered stable, which means that library updates will not break compatibility: existing calls should compile (API compatibility), existing binaries should link (ABI compatibility), and existing behavior should not change significantly (for example, floating point parameters will have similar behavior). This does not mean that the output of the algorithms will be identical: future versions may improve the algorithms and produce different results.
565+
566+
APIs that *are* experimental may have their interface change, both in ways that will cause existing calls to not compile, and in ways that may compile but have significantly different behavior (e.g., changes in parameter order, meaning, valid ranges). Experimental APIs may also, in rare cases, be removed from future library versions. It is recommended to carefully read release notes when updating the library if experimental APIs are in use. Some experimental APIs may also lack documentation in this README.
567+
568+
Applications may configure the library to change the attributes of experimental APIs, for example defining `MESHOPTIMIZER_EXPERIMENTAL` as `__attribute((deprecated))` will emit compiler warnings when experimental APIs are used.
569+
570+
Currently, the following APIs are experimental, with the functions marked with `*` being likely to become stable in the future with no changes:
571+
572+
- `meshopt_buildMeshletsFlex`
573+
- `meshopt_computeSphereBounds`*
574+
- `meshopt_encodeVertexBufferLevel`*
575+
- `meshopt_generateProvokingIndexBuffer`*
576+
- `meshopt_partitionClusters`
577+
- `meshopt_simplifySloppy`
578+
- `meshopt_spatialSortTriangles`
579+
560580
## License
561581

562582
This library is available to anybody free of charge, under the terms of MIT License (see LICENSE.md).

0 commit comments

Comments
 (0)