11 个版本 (2 个稳定版本)

2.0.1 2023年7月19日
2.0.0 2023年7月1日
1.6.0-dev2023年6月4日
0.7.4 2023年2月19日
0.4.0 2022年12月22日

#343 in 数学

每月下载 23 次
用于 lexsdl

Zlib 许可证

285KB
7.5K SLoC

C 6K SLoC // 0.1% comments Rust 1K SLoC // 0.1% comments C++ 142 SLoC // 0.0% comments

LexLib

Lexevier 的 Lib
是一个 C/Rust 库,包含 C stdlib 缺失的杂项功能和一些有用的功能。

无需麻烦即可在 C++ 中使用。

特性

  • Linux 和 Windows 的操作系统抽象。
  • 图像处理。
  • 颜色处理。
  • 原始 C 字符串处理。
  • SIMD 向量数学。
  • 小型数学工具。
  • 计时。
  • 向量(可增长数组)。

Rust

对于在 Rust stdlib 中有等效或更好选择的 C 函数,不需要包装在安全接口中。

目前不需要 Rust 编译器,但将来可能需要。

一些特性(如向量数学)在 Rust 端尚不可用。

文档

C:在头文件中。

Rust:https://docs.rs/lexlib/latest/lexlib/

依赖项

  • libc
  • win32api (kernel32)

许可证

在 zlib 许可证下授权。

变更日志

2.0.1

  • 修复 LEXLIB_VEC2I/3I_ZERO。
  • 修复 Windows 中的 cfile 模式。
  • LexlibVec(T)。
  • lexlibStrNew()。

2.0.0

  • 许可证改为 zlib。
  • rust 绑定和包装。
  • 支持灰度透明度。
  • 结构体不再使用 typedef。
  • 支持 SIMD。
  • 重做 Vec4 数学。
  • 重做图像加载。
  • LexlibColorFlt -> LexlibColorF。
  • LexlibImage.depth -> LexlibImage.bpc。
  • lexlibImagePixelGet() -> lexlibImagePixel()。
  • lexlibImagePixel16Get() -> lexlibImagePixel16()。
  • lexlibMillis() -> lexlibTimeMillis()。
  • lexlibSeconds() -> lexlibTimeSeconds()。
  • lexlibStrcat() -> lexlibStrCat()。
  • 添加 typedef.h。
  • 添加 vec.h(可增长数组)。
  • 移除 path。
  • 移除 aabb。
  • 移除 LexlibBytes。
  • 移除 lexlibFileToString()。
  • 移除 lexlibStringToFile()。
  • 移除 lexlibFileBytes()。
  • 移除 lexlibPrintTimed()。
  • 移除 lexlibVersion()。
  • 移除 LEXLIB_UNREACHABLE。
  • LexlibBool。
  • lexlibStrFile()。
  • LEXLIB_STRING()。
  • lexlibCFileMap()。
  • lexlibCFileMode()。
  • lexlibCFileSize()。
  • lexlibCFileType().
  • lexlibColorGrayAlpha().
  • lexlibTimeNanos().
  • lexlibTimeMicros().
  • lexlibThrdNanos().
  • lexlibThrdMicros().
  • lexlibThrdMillis().
  • lexlibThrdSeconds().
  • lexlibProcNanos().
  • lexlibProcMicros().
  • lexlibProcMillis().
  • lexlibProcSeconds().
  • lexlibTimerAdd().
  • LEXLIB_CLAMP().
  • lexlibRad().
  • lexlibDeg()
  • lexlibFloatCmp().
  • lexlibMemUnmap().
  • lexlibMemReverse16().
  • lexlibMemReverse32().
  • lexlibMemReverse64().
  • lexlibImageCopy().
  • lexlibImageFillArea().
  • lexlibImageLoadBmpMem().
  • lexlibVecNew().
  • lexlibVecDelete().
  • lexlibVecGet().
  • lexlibVecPush().
  • lexlibVecPop().
  • lexlibVecInsert().
  • lexlibVecRemove().
  • lexlibVecResize().
  • lexlibVecFind().
  • lexlibVecSwap().
  • lexlibVecClear().
  • lexlibVecLen().
  • lexlibVecCap().

1.5.0

  • lexlibFileBytes();
  • lexlibPowu();
  • lexlibColor16Blend();
  • lexlibImagePixelSet();
  • lexlibImagePixelGet();
  • lexlibImagePixel16Set();
  • lexlibImagePixel16Get();
  • lexlibImageProfileChange();
  • lexlibImageLoadBmp();
  • lexlibImageSaveBmp();
  • lexlibImageSaveBmpEx();
  • LexlibImage.data是官方支持机器字节序的。
  • fixed strPath缓冲区溢出。
  • fixed imageFlip X缓冲区溢出。
  • fixed linkedList内存泄露。

1.4.0

  • function lexlibStrCopy().
  • removed path.h from default includes.
  • renamed LEXLIB_C_EXTERN to LEXLIB_EXTERN.
  • functions lexlibClamp().
  • struct LexlibColor8.
  • struct LexlibColor16.
  • struct LexlibColorFtl.
  • functions lexlibColorBlend().
  • functions lexlibColorGray().
  • functions lexlibColorPremultiply().
  • functions lexlibColorTo8().
  • functions lexlibColorTo16().
  • functions lexlibColorToFlt().
  • function lexlibColorFltClamp().

1.3.1

  • deprecation attribute.
  • removed PKGBUILD from package.
  • fixed a scope problem with clang.

1.3.0

  • LexlibImage.
  • support for loading and saving pngs.
  • lexlibStrPath.
  • LexlibPath被lexlibStrPath取代。
  • 将所有 Bool改为uint8_t。

1.2.0

  • lexlibRandom(), 获取一个安全的随机数。

查看完整的变更日志,请访问项目根目录下的CHANGELOG.md。

依赖项

~230KB