Commit Graph

10181 Commits

Author SHA1 Message Date
Hajime Hoshi 80e3e01e88 vector: rename functions from DrawFilled* to Fill*
Updates #3150
2025-07-06 23:57:59 +09:00
Hajime Hoshi 97ebef8298 vector: add (*Path).AddPathStroke reimplement DrawFilledPath and StrokePath
The new implementation uses Evan's method [1] using texture representing
a stencil buffer instead of the graphics library's stencil buffer.
This simplifies the implementaiton of the graphics drivers, and enables
better anti-alias without changing the rendering cost.

Also, this fixes an issue of line rendering quality

This change deprecates some existing APIs like DrawImageOptions.AntiAlias
and FillRule. Users should always use DrawFilledPath or StrokePath.

[1] https://medium.com/@evanwallace/easy-scalable-text-rendering-on-the-gpu-c3f4d782c5ac

Closes #3124
Closes #3153
2025-07-06 23:35:48 +09:00
Hajime Hoshi b461cf2a3c vector: rename function 2025-07-06 22:36:57 +09:00
Hajime Hoshi 8eed9d225f vector: typo 2025-07-06 22:33:29 +09:00
Hajime Hoshi 8048c8226c vector: reimplement utility functions
This is a preparation to use the new vector implementation instead
of using the current implementation with stencil buffers. Especially
when antialias is off, the utility functions use a manual triangulated
vertices and doesn't use stencil buffers at all.

Updates #3153
2025-07-06 22:29:49 +09:00
Hajime Hoshi bfb74adca0 vector: typo 2025-07-06 20:05:49 +09:00
Hajime Hoshi 313b30a498 examples/shapes: add debugui 2025-07-06 17:56:41 +09:00
Hajime Hoshi be1d4fc1b3 ebiten: bug fix: SubImage can cause race conditions
Calling SubImage from an image and its sub-image could cause race
conditions.

This is a partial revert of 9fd726b773.

Updates #3267
2025-07-06 03:06:12 +09:00
Hajime Hoshi 638de96ce5 .github/workflows: separate tests for Wasm 2025-07-05 23:41:02 +09:00
Hajime Hoshi d599514476 ebiten: add comments 2025-07-05 23:24:46 +09:00
Hajime Hoshi 9fd726b773 ebiten: refactoring: remove Image.subImageCacheM
Record atime at each sub-image instead.

Updates #3267
2025-07-05 23:21:17 +09:00
Hajime Hoshi 0b3c999e86 ebiten: update comments 2025-07-05 23:00:31 +09:00
Hajime Hoshi 96f61f4ebf ebiten: bug fix: go-vet error at assignment 2025-07-05 21:59:46 +09:00
Hajime Hoshi d22ce78790 ebiten: bug fix: race condition on Image.subImageCache
The race condition could happen even if you follow the rule that
one image is touched from one goroutine. This change fixed the issue
by a mutex.

Closes #3267
2025-07-05 21:46:29 +09:00
Hajime Hoshi 0a23fdf1b0 vector: refactoring: add stroke.go 2025-07-05 15:54:06 +09:00
Hajime Hoshi f3990b859f vector: optimize rendering
* Skip rendering when a point is a NaN or Inf
* Replace a curve with a line when possible
2025-07-05 15:34:06 +09:00
Hajime Hoshi ef4133ff6d vector: refactoring: introduce vec2 2025-07-05 15:00:02 +09:00
Hajime Hoshi 62e255c19f all: update DebugUI 2025-07-04 03:01:28 +09:00
Hajime Hoshi 8f57d19dec vector: performance optimization: reuse slices in sub paths 2025-07-01 02:56:50 +09:00
Hajime Hoshi f96d89f808 vector: add (*Path).AddPath and AddPathOptions
Closes #3266
2025-06-29 16:57:31 +09:00
Hajime Hoshi ff26882df5 internal/graphicsdriver/directx: avoid allocation in adjustUniforms
Closes #3265
2025-06-28 01:04:15 +09:00
Hajime Hoshi 8a946ca221 all: update dependencies 2025-06-27 21:54:47 +09:00
Hajime Hoshi c51db73189 all: update Oto 2025-06-27 21:48:46 +09:00
Hajime Hoshi 2bad42b02d vector: refactoring: introduce subPath and remove opTypeMove and opTypeClose 2025-06-26 20:33:44 +09:00
Hajime Hoshi 4133967934 vector: better resetting flat paths 2025-06-26 17:33:52 +09:00
Hajime Hoshi 714f86a427 vector: bug fix: MoveTo should not close the path 2025-06-26 16:45:28 +09:00
Hajime Hoshi c92412bf5d vector: change MoveTo to update the starting position
Successive MoveTo calls now overwrites the previous MoveTo command
if exists.
2025-06-26 16:07:07 +09:00
Hajime Hoshi b8ac670d61 vector: update comments and variable names 2025-06-26 14:31:10 +09:00
Hajime Hoshi 4dafa5a88d vector: refactoring: rename functions 2025-06-26 00:34:54 +09:00
Hajime Hoshi 1cbf0c63dc vector: change the precision of spliting Bézier curves
The old precision was overkill.
2025-06-25 11:27:30 +09:00
Hajime Hoshi fd1c99e2e5 all: update DebugUI to v0.2.0-alpha.4 2025-06-25 02:13:09 +09:00
Hajime Hoshi 2ba70652eb vector: refactoring 2025-06-25 00:41:47 +09:00
Hajime Hoshi 3ff920e422 vector: approximate cubic Bézier curve to multiple quad Bézier curves
This is a preparation for the future plan to render vector with Loop-Blinn
algorithm.

Updates #3153
2025-06-25 00:38:09 +09:00
Hajime Hoshi a96153805e internal/shader: add a builtin function frontfacing
Closes #3264
2025-06-23 00:07:00 +09:00
Hajime Hoshi 5f18a80a0f all: update debugui 2025-06-22 14:19:19 +09:00
Hajime Hoshi 4a42d22820 all: update debugui 2025-06-22 13:42:33 +09:00
Hajime Hoshi c5ad5f1902 internal/ui: add a commment about monitors
Updates #3094
2025-06-21 21:06:18 +09:00
Hajime Hoshi a4717f7f95 internal/shader: enable boolean values for uniform variables
Closes #3156
2025-06-21 18:43:34 +09:00
Hajime Hoshi 264de7cf4b internal/shader: implement variadic min/max functions
Closes #2677
2025-06-21 00:20:38 +09:00
Hajime Hoshi d46b823c2f internal/glfw: bug fix: ClipCursor doesn't work on Xbox 2025-06-19 15:03:32 +09:00
Hajime Hoshi 5554bc2ef5 internal/graphicsdriver/directx: refactoring 2025-06-19 01:05:39 +09:00
Hajime Hoshi f221a4a8fb internal/graphicsdriver/directx: refactoring: remove fence value initialization
After this change, a fence value is incremented just before its usage.
v2.9.0-alpha.7
2025-06-18 15:14:21 +09:00
Hajime Hoshi ed399cebfa internal/graphicsdriver/directx: replace D3D12_RESOURCE_STATE_PRESENT with a function 2025-06-18 14:46:51 +09:00
Hajime Hoshi 6739416e82 internal/graphicsdriver/directx: use C++ for ID3D12CommandQueue on Xbox 2025-06-18 00:05:30 +09:00
Hajime Hoshi ab315312bb internal/graphicsdriver/directx: bug fix: resizing a window froze the app 2025-06-17 14:27:07 +09:00
Hajime Hoshi 580a916202 Revert "internal/graphicsdriver/directx: bug fix: the fence value must be more than 0"
This reverts commit bd37d849c6.

Reason: this caused an issue where an application doesn't start on some machines
2025-06-17 14:19:31 +09:00
Hajime Hoshi bd37d849c6 internal/graphicsdriver/directx: bug fix: the fence value must be more than 0 2025-06-17 13:55:57 +09:00
Hajime Hoshi 5764ac1d42 internal/graphicsdriver/directx: create one fence for one frame
This should fix a potential issue where a fence value was increased
unexpectedly.
2025-06-17 00:14:59 +09:00
Hajime Hoshi d125a85c59 internal/graphicsdriver/directx: remove unnecessary initialization v2.9.0-alpha.6 2025-06-14 15:15:50 +09:00
Hajime Hoshi cb73fe26c0 ebiten: add comments 2025-06-13 00:16:11 +09:00