Releases: aprillz/MewVG
Releases · aprillz/MewVG
Release list
v0.6.0
Full Changelog: v0.5.5...v0.6.0
v0.5.5
v0.5.4
Improvements
- Optimized MewVG's managed tessellator path to reduce CPU cost and managed allocations for complex fill tessellation.
- Reused tessellation result buffers in the
NVGContextfill rendering path. - Replaced several short-lived temporary arrays in the LibTessDotNet port with
Span<T>/stackalloc. - Added a
ReadOnlySpan<T>contour input path to reduce internal conversion overhead. - Removed temporary
Stack<T>allocation from tessellation priority queue initialization. - Removed
Expression.Compile()based object creation from the LibTessDotNet object pool for better NativeAOT compatibility. - Used
ArrayPool<T>for large temporary fill-cache contour buffers to reduce allocation spikes for large paths.
Changes
- Kept the existing array-owning
TessResultpublic API and added reusable result-buffer support for internal rendering paths. - Frozen fill caches continue to use owning arrays because cached tessellation output must remain stable.
- Added benchmark projects for comparing the local implementation against the
Aprillz.MewVG.Core0.5.3 package.
개선
- MewVG의 managed tessellator 경로를 최적화해 복잡한 fill tessellation의 CPU 비용과 할당을 줄였습니다.
NVGContext의 fill 렌더링 경로에서 tessellation 결과 버퍼를 재사용하도록 개선했습니다.- LibTessDotNet 포팅 코드의 일부 임시 배열을
Span<T>/stackalloc기반으로 변경해 짧은 수명 할당을 줄였습니다. - contour 입력 경로에
ReadOnlySpan<T>기반 API를 추가해 내부 변환 비용을 줄였습니다. - tessellation priority queue 초기화 과정의 임시
Stack<T>할당을 제거했습니다. - NativeAOT 친화성을 위해 LibTessDotNet object pool의
Expression.Compile()기반 생성 경로를 제거했습니다. - 큰 fill cache contour 임시 버퍼에
ArrayPool<T>를 사용해 대형 path 처리 시 임시 할당을 줄였습니다.
변경
- 기존 배열 소유형
TessResultpublic API는 유지하면서, 내부 렌더링 경로에는 재사용 가능한 결과 버퍼를 추가했습니다. - frozen fill cache는 결과를 오래 보관해야 하므로 기존 배열 소유 방식을 유지합니다.
- 벤치마크 프로젝트를 추가해 로컬 구현과
Aprillz.MewVG.Core0.5.3 패키지를 비교할 수 있게 했습니다.
English
Full Changelog: v0.5.3...v0.5.4