Skip to content

Commit

Permalink
release of v0.11.0
Browse files Browse the repository at this point in the history
  • Loading branch information
davidbrowne committed May 14, 2023
1 parent e1f4050 commit b616a93
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 16 deletions.
34 changes: 23 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -238,24 +238,22 @@ Remember, this is a c++20 library, so that needs to be the minimum standard that
## Status
Current version: `v0.10.8`
Current version: `v0.11.0`
* **All the intended vector and matrix functionality from the GLSL specification is implemented.** We keep refining the implementation, and we keep expanding the API to better support ```c++20``` idioms and usage as we go.
* First pass at test coverage. Everything major has some tests, but code coverage is not 100%.
* We need much better API documentation, including examples.
* We need better ```cmake``` support.
* [Released v0.10.0](https://github.com/davidbrowne/dsga/releases/tag/v0.10.0)
* [Released v0.11.0](https://github.com/davidbrowne/dsga/releases/tag/v0.11.0)
### The next steps
* Example projects: need small, medium, and large examples. The quick peek at the top of this page is a start, as is a [more detailed generic version of the example](docs/DETAILS.md#detailed-generic-example).
* Detailed API documentation.
* Extend ```cmake``` support. Separate the out the testing aspect, and add support declaring a header-only library.
* Working on much better API documentation.
* Working on extended example of STL file conversion.
* Working on better ```cmake``` support.
Once we have detailed API documentation and better ```cmake``` support, we can think about releasing a v1.0 version.
## Usage
Use it more or less like you would use vectors and matrices in a shader program, but not necessarily for shading. We hope to be able to use it for rapid development of geometric algorithms.
Use it more or less like you would use vectors and matrices in a shader program, but not necessarily for shading. We hope to be able to use it for rapid development of geometric algorithms. See the [examples](examples) directory.
The [documentation](docs/DOCUMENTATION.md) explains more about how the vector and matrix classes work, and describes the API.
Expand All @@ -271,7 +269,7 @@ The tests have been most recently run on:
### Windows 11 Native
* **MSVC 2022 - v17.5**
* **MSVC 2022 - v17.5.5**
```
[doctest] doctest version is "2.4.11"
Expand All @@ -283,6 +281,7 @@ The tests have been most recently run on:
```
* **gcc 12.2.0** on Windows, [MinGW](https://github.com/niXman/mingw-builds-binaries) distribution:
* **gcc 13.1.0** on Windows, [WinLibs MinGW](https://winlibs.com/) distribution:
```
[doctest] doctest version is "2.4.11"
Expand All @@ -293,7 +292,7 @@ The tests have been most recently run on:
[doctest] Status: SUCCESS!
```
* **clang 16.0.3** on Windows, [official binaries](https://github.com/llvm/llvm-project/releases/tag/llvmorg-16.0.3), with MSVC installed:
* **clang 16.0.3** on Windows, [official binaries](https://github.com/llvm/llvm-project/releases/tag/llvmorg-16.0.3), with MSVC and/or gcc v13.1.0 installed:
Performs all the unit tests except where there is lack of support for ```std::is_corresponding_member<>```, and this is protected with a feature test macro.
Expand All @@ -306,7 +305,7 @@ Performs all the unit tests except where there is lack of support for ```std::is
[doctest] Status: SUCCESS!
```
### Mint LMDE 5 running in WSL2 for Windows 11
### Ubuntu Mantic Minotaur preview running in WSL2 for Windows 11
* **gcc 13.1.0**
Expand All @@ -319,6 +318,19 @@ Performs all the unit tests except where there is lack of support for ```std::is
[doctest] Status: SUCCESS!
```
* **clang 16.0.0**
Performs all the unit tests except where there is lack of support for ```std::is_corresponding_member<>```, and this is protected with a feature test macro.
```
[doctest] doctest version is "2.4.11"
[doctest] run with "--help" for options
===============================================================================
[doctest] test cases: 100 | 100 passed | 0 failed | 0 skipped
[doctest] assertions: 2381 | 2381 passed | 0 failed |
[doctest] Status: SUCCESS!
```
### Ubuntu 22.04 running in WSL2 for Windows 11
* **gcc 12.1.0**
Expand Down
6 changes: 3 additions & 3 deletions include/dsga.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ inline void dsga_constexpr_assert_failed(Assert &&a) noexcept
// When evaluated at compile time emits a compilation error if condition is not true.
// Invokes the standard assert at run time.
#define dsga_constexpr_assert(cond, msg) \
((void)(!!(cond) ? 0 : (dsga_constexpr_assert_failed([](){ assert(((void)msg, !#cond));}), 0)))
((void)(!!(cond) ? 0 : (dsga_constexpr_assert_failed([](){ assert(((void)msg, !static_cast<bool>(#cond)));}), 0)))

#endif

Expand All @@ -57,8 +57,8 @@ inline void dsga_constexpr_assert_failed(Assert &&a) noexcept
// version info

constexpr inline int DSGA_MAJOR_VERSION = 0;
constexpr inline int DSGA_MINOR_VERSION = 10;
constexpr inline int DSGA_PATCH_VERSION = 8;
constexpr inline int DSGA_MINOR_VERSION = 11;
constexpr inline int DSGA_PATCH_VERSION = 0;

namespace dsga
{
Expand Down
19 changes: 17 additions & 2 deletions src/main.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

//#include "nanobench.h"
#include "dsga.hxx"

#include "../examples/format_output.hxx"

//
//
Expand All @@ -21,8 +21,23 @@
void sandbox_function()
{
// put fun code here
}

#if defined(__cpp_lib_format)
auto fmt_arr = std::array<double, 4>{1, 2, 3, 4};
auto empty_arr = std::array<double, 0>{};
auto one_arr = std::array<double, 1>{99};
auto fmt_vec = dsga::dvec4(10, 20, 30, 40);
auto fmt_mat = dsga::dmat3x2(1, 2, 3, 4, 5, 6);
test_format_array(empty_arr);
test_format_array(one_arr);
test_format_array(fmt_arr);
test_format_vector(fmt_vec);
test_format_vector_base(fmt_vec);
test_format_vector_base(fmt_vec.wzyx);
test_format_indexed_vector(fmt_vec.wzyx);
test_format_matrix(fmt_mat);
#endif
}

#if defined(__clang__) && (__clang_major__ < 13)
// clang 10.0 does not like colors on windows (link problems with isatty and fileno)
Expand Down

0 comments on commit b616a93

Please sign in to comment.