Hajime Hoshi
a8a21ba687
ebiten, vector: bug fix: race conditions
...
This change fixes these race conditions in
* (*ebiten.Image).invokeUsageCallbacks concurrent invocations
* (*ebiten.Image).usageCallbacks usages
* vector.theCallbackTokens usages
* vector's global shader initializations
Closes #3333
2025-10-21 03:24:21 +09:00
Hajime Hoshi
5f08f4ae1d
vector: bug fix: FillRect or other utility functions on a sub-image didn't work correctly
...
Closes #3330
2025-10-15 20:17:07 +09:00
Hajime Hoshi
fb60c54510
ebiten: refactoring
2025-07-19 22:17:30 +09:00
Hajime Hoshi
86fd3e8d66
ebiten: reduce boundary checks
...
Updates #3275
2025-07-19 21:51:46 +09:00
Hajime Hoshi
38b2e2c4ba
ebiten: skip DrawTriangles(Shader)32 when len(indices) == 0
...
Updates #3275
2025-07-19 20:23:54 +09:00
Hajime Hoshi
1a68cf08c5
ebiten: remove unnecessary fmt.Sprintf
2025-07-19 17:34:16 +09:00
Jordan Philyaw
08783e9e26
ebiten: clarify Image Set does nothing for out-of-bounds coordinates ( #3277 )
2025-07-19 14:17:34 +09:00
oliverbestmann
de1acb3e6d
ebiten: only check sub image cache once per tick ( #3276 )
...
This improves performance on issue #3275 from 2-5fps to 25fps.
Updates #3275
2025-07-19 03:05:39 +09:00
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
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
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
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
a4717f7f95
internal/shader: enable boolean values for uniform variables
...
Closes #3156
2025-06-21 18:43:34 +09:00
Hajime Hoshi
cb73fe26c0
ebiten: add comments
2025-06-13 00:16:11 +09:00
Hajime Hoshi
3c1148f14c
ebiten: intersect bounds before getting a subimage from cache
...
This should make the cache usage more efficient.
Updates #2902
2025-05-31 16:05:16 +09:00
Hajime Hoshi
15f2796970
ebiten: add sub-image caches to reduce allocations
...
Updates #2902
2025-05-31 13:17:15 +09:00
Hajime Hoshi
99286ab30c
ebiten: add a comment about performance of Set
2025-03-02 03:22:45 +09:00
Hajime Hoshi
bcb5a0a27e
ebiten: add DrawTriangles(Shader)32
...
This change also adds the methods to FinalScreen interface.
Closes #3201
2025-02-19 23:51:38 +09:00
quasilyte
1790af6ed8
ebiten: clarify the same images size rule for DrawTrianglesShaderOptions ( #3187 )
...
Since it's not allowed to have differently-sized images for DrawTrianglesShaderOptions in pixels mode, the comment should be updated.
2025-01-31 19:36:31 +09:00
Hajime Hoshi
810e45c030
ebiten: skip rendering when det is 0 at DrawImage and DrawRectShader
2024-10-17 21:04:43 +09:00
Hajime Hoshi
5fd619eea7
ebiten: bug fix: canSkipMipmap didn't work with negative scaling
...
This just means that an optimization didn't work, so this issue
should not be so serious.
2024-10-17 21:02:59 +09:00
Hajime Hoshi
1260d77999
ebiten: refactoring
2024-09-22 13:27:25 +09:00
SolarLune
a113687d56
ebiten: don't create a vertex copy in DrawTriangles() / DrawTrianglesShader() ( #3104 )
...
Closes #3103
2024-09-16 14:45:16 +09:00
Hajime Hoshi
4b1ae72f59
ebiten: add Draw{Image,Triangles}Options.DisableMipmaps
...
Mipmaps could be unexpectedly expensive even when we don't need mipmaps.
In order to improve performance, let's add an option to disable mipmaps.
Closes #3095
2024-09-12 22:40:16 +09:00
Hajime Hoshi
d84b030300
ebiten: give HintOverwriteDstRegion when BlendClear is used
2024-09-08 14:57:20 +09:00
Hajime Hoshi
4824dc0360
internal/restorable: resolve a stale state when possible
2024-09-08 14:28:16 +09:00
Hajime Hoshi
30a2817ab5
internal/restorable: add Hint to optimize drawImageHistoryItem size
2024-09-08 12:24:20 +09:00
Hajime Hoshi
41b762ba2c
ebiten: update comments
...
Updates #2640
2024-08-25 18:45:26 +09:00
Hajime Hoshi
2cc809516f
ebiten: add Vertex.Custom0 to Custom3
...
Closes #2640
2024-08-25 18:11:39 +09:00
Hajime Hoshi
b71f3f86a8
ebiten: add check that graphics.VertexFloatCount and Vertex match
2024-08-23 09:58:28 +09:00
Hajime Hoshi
b6ab7a10c1
internal/graphics: unify QuadVertices
...
This is a preparation for adding members to Vertex.
Updates #2640
2024-08-12 00:29:24 +09:00
Ernest Romero Climent
9d4f88c992
ebiten: update image.DrawTriangles* to re-use indices ( #3026 )
...
Reduces allocations and GC overhead for programs that
call this method hundreds of times per rendered frame.
2024-07-02 16:40:53 +09:00
Bertrand Jung
22fd1f107e
internal/graphics: renamed shader image count to specify src ( #3012 )
...
This just specifies that the constant refers to the number of source images passed to a shader.
This makes a distinction with the number of dst images, that could potentially be more than 1 in the future.
2024-06-10 02:02:47 +09:00
Hajime Hoshi
b121468991
ebiten: add FillRuleFillAll, FillRuleEvenOdd, and FillRuleNonZero
...
This change also deprecates the existing constants.
Closes #3006
2024-06-08 17:58:33 +09:00
Hajime Hoshi
e5d10c47e7
internal/graphicsdriver: reland: rename FillRule constants
...
Updates #3006
2024-06-08 12:16:20 +09:00
Hajime Hoshi
6ac1270cb0
Revert "internal/graphicsdriver: rename FillRule constants"
...
This reverts commit ab4a3af1b5 .
Reason: compile error on Windows
2024-06-08 12:10:27 +09:00
Hajime Hoshi
ab4a3af1b5
internal/graphicsdriver: rename FillRule constants
...
Updates #3006
2024-06-08 11:54:46 +09:00
Hajime Hoshi
6cdabf09d1
ebiten: guarantee invalid color values are not clamped
...
Closes #2798
2024-03-13 12:03:44 +09:00
Hajime Hoshi
3ca6184294
ebiten: add a new FillRule: NonZero
...
Closes #2782
2023-11-06 12:11:38 +09:00
Hajime Hoshi
4e93efa5ac
internal/graphicsdriver: reland: add FillRule and replace boolean values with this
...
Updates #2782
2023-11-04 19:09:50 +09:00
Hajime Hoshi
f695df5924
Revert "internal/graphicsdriver: add FillRule and replace boolean values with this"
...
This reverts commit 38cf964a3b .
Reason: build failure on Windows
2023-11-04 19:02:40 +09:00
Hajime Hoshi
38cf964a3b
internal/graphicsdriver: add FillRule and replace boolean values with this
...
Updates #2782
2023-11-04 18:57:31 +09:00
Hajime Hoshi
3fa8e6ac52
internal/graphics: refactoring: move some constants to internal/graphicscommand
2023-11-04 16:33:30 +09:00
Hajime Hoshi
d862a75fb3
internal/graphics: rename constants
...
Closes #2828
2023-11-04 16:06:35 +09:00
Hajime Hoshi
1f95c98969
internal/graphics: reland: change the definition of MaxVerticesCount
...
Updates #2612
2023-11-04 16:02:22 +09:00
Hajime Hoshi
3a632be0c7
Revert "internal/graphics: change the definition of MaxVerticesCount"
...
This reverts commit 3047ad202a .
Reason: Failed to build for 32bit architectures
Updates #2612
2023-11-04 15:10:31 +09:00
Hajime Hoshi
3047ad202a
internal/graphics: change the definition of MaxVerticesCount
...
Updates #2612
2023-11-04 14:38:34 +09:00