thorvg/src/renderer
Sergii Liebodkin ee6a7214d4 wg_engine: geometry generating optimization
Streaming model for massive vertex and index creations: minimize memory allocations, range checks and other conditions
Reduce number of segments length calculations (sqrt) and bbox (min and max).
Update distances and bboxes on a whole buffer and only if necessary. For shapes without strokes compute distances not necessary at all. bbox can be updated only on the final stage of geometry workflow, but not on the each stage.
Using stack memory instead of heap. its more cache friendly and did not fragment memory, faster memory allocations (weak place of realization)
Using cache for points distances and whole path length. Updates only if necessary
Validation of geometry consistency executes only on the final stage of path life cicle. It more friendly for data streaming: no any conditions and branches.
Using binary search for strokes trimming
Pre-cached circles geometry for caps and joints
Refactored strokes elements generation functions. Code is more readable and modifiable in general. Can be easily fixed if some geometry issues will be finded
2024-09-25 17:09:29 +09:00
..
gl_engine common: code refactoring 2024-09-21 16:37:37 +09:00
sw_engine common: code refactoring 2024-09-21 16:37:37 +09:00
wg_engine wg_engine: geometry generating optimization 2024-09-25 17:09:29 +09:00
meson.build infra: promote the GL engine to an official one. 2024-06-21 11:53:37 +09:00
tvgAccessor.cpp renderer/accessor: added the id generator. 2024-08-07 12:02:22 +09:00
tvgAnimation.cpp renderer/animation: rectified the segment value exception 2024-07-25 20:12:32 +09:00
tvgAnimation.h lottie: Introduce the LottieAnimation class 2024-02-23 15:05:15 +09:00
tvgCanvas.cpp renderer/engines: support the canvas viewport function. 2024-05-18 18:10:50 +09:00
tvgCanvas.h renderer: code refactoring 2024-07-29 23:27:19 +09:00
tvgCommon.h API: revise the APIs. 2024-07-05 21:25:58 +09:00
tvgFill.cpp API: revise the APIs. 2024-07-05 21:25:58 +09:00
tvgFill.h API: revise the APIs. 2024-07-05 21:25:58 +09:00
tvgFrameModule.h lottie: code refactoring. 2024-04-15 00:23:37 +09:00
tvgGlCanvas.cpp common: fix 178+ spelling errors 2024-07-01 21:58:46 +09:00
tvgInitializer.cpp common: version api introduced 2024-07-18 12:47:58 +09:00
tvgIteratorAccessor.h updated copyright date (#1866) 2023-12-28 10:43:25 +09:00
tvgLoader.cpp common: fix 178+ spelling errors 2024-07-01 21:58:46 +09:00
tvgLoader.h ttf_loader: support loading from memory 2024-06-11 20:59:39 +09:00
tvgLoadModule.h common: code refactoring 2024-09-21 16:37:37 +09:00
tvgPaint.cpp api: clean up 2024-09-23 21:53:50 +09:00
tvgPaint.h api: Introduced Paint::clip() API 2024-09-19 14:46:05 +09:00
tvgPicture.cpp api: clean up 2024-09-23 21:53:50 +09:00
tvgPicture.h common: code refactoring 2024-09-21 16:37:37 +09:00
tvgRender.cpp renderer: code refactoring 2024-07-29 23:27:19 +09:00
tvgRender.h common: code refactoring 2024-09-21 16:37:37 +09:00
tvgSaveModule.h updated copyright date (#1866) 2023-12-28 10:43:25 +09:00
tvgSaver.cpp common/math: code refactoring 2024-07-10 00:21:02 +09:00
tvgScene.cpp API: revise the APIs. 2024-07-05 21:25:58 +09:00
tvgScene.h api: clean up 2024-09-23 21:53:50 +09:00
tvgShape.cpp api: clean up 2024-09-23 21:53:50 +09:00
tvgShape.h api: clean up 2024-09-23 21:53:50 +09:00
tvgSwCanvas.cpp common: fix 178+ spelling errors 2024-07-01 21:58:46 +09:00
tvgTaskScheduler.cpp common/array: code refactoring 2024-02-19 19:09:30 +09:00
tvgTaskScheduler.h Revert "common: fix a crash on CI windows test." 2024-08-02 21:59:15 +09:00
tvgText.cpp renderer: text refactoring 2024-08-21 14:51:53 +09:00
tvgText.h api: clean up 2024-09-23 21:53:50 +09:00
tvgWgCanvas.cpp wg_engine: external device handles (web integration) 2024-09-06 13:08:58 +09:00