5268 Commits

Author SHA1 Message Date
Hajime Hoshi
4d51505eb5 internal/graphicsdriver/metal: bug fix: an app was frozen by fullscreening
Closes #3354
2025-12-22 16:15:50 +09:00
Hajime Hoshi
8197db788d internal/processtest: skip #3272 test for 32bit Windows
Updates #3272
2025-12-10 02:53:07 +09:00
Hajime Hoshi
f08cc0edff internal/graphicsdriver/metal: add an early return to prevent deadlock
Updates #3353
2025-12-05 01:10:51 +09:00
Hajime Hoshi
09eebf6cf5 internal/graphicsdriver: bug fix: stop recreating CAMetalDisplayLink after sleep
This change fixes the issue where an app freezes after waking up from
sleep.

Apparently, recreating CAMetalDisplayLink is not necessary.

Updates #3353
2025-12-04 13:51:17 +09:00
Hajime Hoshi
3cf2994c3b internal/graphicsdriver/metal: refactoring
Updates #3353
2025-12-04 12:57:48 +09:00
Hajime Hoshi
99a548aa99 internal/graphicsdriver/metal: bug fix: CAMetalDisplayLink should be created on its dedicated thread
Updates #3353
2025-12-04 12:40:43 +09:00
liuyueyangxmu
3e2866c664 all: refactoring: omit unnecessary reassignment (#3350)
Signed-off-by: liuyueyangxmu <liuyueyangxmu@outlook.com>
2025-11-26 20:21:06 +09:00
Hajime Hoshi
43f1312136 internal/graphicsdriver: add Graphics.ColorSpace
This is a preparation for automatic color encoding conversion.

Updates #3314
2025-11-23 23:36:08 +09:00
Hajime Hoshi
799a9d9ddd all: remove internal/restorable
Closes #3090
2025-11-23 22:16:36 +09:00
Hajime Hoshi
266d1e4a50 internal/atlas: fix comments 2025-11-23 19:46:21 +09:00
Hajime Hoshi
9e146c305e internal/restorable: remove unused variables
Updates #3090
2025-11-23 19:33:17 +09:00
Hajime Hoshi
a4f15d1926 internal/graphicsdriver/metal: better error message 2025-11-23 19:27:50 +09:00
Hajime Hoshi
e0ae1207f8 internal/restorable: remove unnecessary eviction
Updates #3090
2025-11-23 19:02:34 +09:00
Hajime Hoshi
3006cf7cb9 internal/restorable: remove (*Image).ImageType()
Updates #3090
2025-11-23 18:12:30 +09:00
Hajime Hoshi
85b1d6e709 internal/atlas: rename backend.restorable -> backendImage
Updates #3090
2025-11-23 17:56:22 +09:00
Hajime Hoshi
1fbc1223ff internal/restorable: remove ImageTypeVolatile
Updates #3090
2025-11-23 17:46:56 +09:00
Hajime Hoshi
bd4554d7a3 internal/restorable: remove AlwaysReadPixelsFromGPU
Updates #3090
2025-11-23 17:00:35 +09:00
Hajime Hoshi
d32c7209a1 internal/restorable: remove Disable
Updates #3090
2025-11-23 16:44:26 +09:00
Hajime Hoshi
2d2aae21d8 internal/restorable: remove Hint
Updates #3090
2025-11-23 16:37:53 +09:00
Hajime Hoshi
f2ee34c8eb ebiten: remove RunOptions.StrictContextRestoration
Updates #3090
2025-11-23 16:22:29 +09:00
Hajime Hoshi
01da138c97 internal/graphicsdriver: refactoring: move ColorSpace to internal/color
This is a preparation for new color encoding options.

Updates #3314
Updates #3349
2025-11-22 23:01:03 +09:00
Hajime Hoshi
929b4eb5c4 internal/graphicsdriver: refactoring: remove ColorSpaceDefault 2025-11-22 22:32:39 +09:00
Hajime Hoshi
0fc8f397a2 internal/clock: use atomic.Int64 for TPS 2025-11-17 01:51:37 +09:00
Hajime Hoshi
8c90f2a636 internal/ui: refactoring 2025-11-13 17:53:32 +09:00
Hajime Hoshi
8d702026ce internal/ui: bug fix: make Monitor functions concurrent safe
Updates #3339
2025-11-13 17:51:29 +09:00
Hajime Hoshi
fe970e1b68 internal/ui: bug fix: Monitor.Size should reflect the display orientation
Closes #3339
2025-11-13 08:54:09 +09:00
rustversion
fe9ab4a12b all: fix the inconsistent method names in the comments (#3342)
Signed-off-by: rustversion <rustverion@outlook.com>
2025-11-10 13:42:37 +09:00
Hajime Hoshi
3533c9a2a0 internal/graphicsdriver/opengl/gl: bug fix: always use OpenGL non-ES for Steam
Apparently, OpenGL ES caused an issue where Steam overlay didn't
work correctly. We are not sure the root cause, but there are similar
issues reported [1][2].

With Steam, it should be fine to assume that OpenGL non-ES is always
available.

Closes #3338

[1] https://github.com/ValveSoftware/steam-for-linux/issues/8122
[2] https://github.com/godotengine/godot/issues/53352
2025-11-02 02:59:15 +09:00
Hajime Hoshi
a1853bbc7c internal/atlas: use atomic.Bool for needToRestoreGPUResources 2025-10-27 21:13:43 +09:00
Hajime Hoshi
2ad956d7c1 internal/atlas: do not wait for reading pixels from GPU to be finished
Updatse #3215
Updates #3334
2025-10-27 18:01:13 +09:00
Hajime Hoshi
f0f0bb339d all: use errors.Join to catch all possible errors
Closes #3332
2025-10-17 23:39:13 +09:00
Hajime Hoshi
81908d51d6 internal/atlas: bug fix: deadlock at RestoreGPUResources
Updates #3327
2025-10-10 19:19:33 +09:00
Hajime Hoshi
7a30e6be6b internal/atlas: skip saving GPU resources when it is already saved
If the GL thread is already suspended, this would cause a dead lock.
This fix mitigates this issue by checking the save state.

Updates #3327
2025-10-10 19:00:10 +09:00
Hajime Hoshi
07f60cc39a internal/atlas: bug fix: skip SaveGPUResources when a frame doesn't start
Closes #3327
2025-10-10 18:32:39 +09:00
Hajime Hoshi
371607544a cmd/ebitenmobile: save GPU resources at onPause and restore GPU resources on context lost
This change adds a logic to save GPU resources at GLSurfaceView.onPause
as a precaution, and restore GPU resources from it when a context lost
happens. This can fix issues where a context lost often occurs when an
interstitial ad is shown.

This change doesn't add any new APIs and do this resource reservation
automatically.

Closes #3215
2025-10-10 16:26:56 +09:00
Hajime Hoshi
549a80d42f internal/atlas: refactoring move extending an image to atlas 2025-10-08 23:09:22 +09:00
Hajime Hoshi
e92594ef19 internal/ui: bug fix: consecutive releasing should not affect Is*JustReleased
Closes #3326
2025-10-08 20:29:53 +09:00
Hajime Hoshi
5e1cb7ca03 internal/graphicsdriver/opengl/gl: bug fix: the generator output a wrong Go file 2025-10-04 22:59:02 +09:00
Hajime Hoshi
55bb572a27 inpututil: bug fix: {Key,MousePress}KeyDuration returned a wrong value on browsers and mobiles
Closes #3322
2025-09-26 22:33:54 +09:00
Hajime Hoshi
9666878ad5 internal/inpututil: bug fix: {Key,MouseButton}PressDuration returned a wrong value on desktops
Closes #3322
2025-09-26 22:09:23 +09:00
Hajime Hoshi
7ca3a68eb4 internal/ui: handle an error when navigator.keyboard.getLayoutMap() fails 2025-09-24 22:55:30 +09:00
Hajime Hoshi
8d421df739 internal/ui: bug fix: move handling mod keys to ui.InputState
Closes #3320
2025-09-24 04:57:33 +09:00
Hajime Hoshi
27b6b3c633 internal/ui: bug fix: key/mouse button inputs were sometimes missed
If a key down and a key up happened in one tick, Ebitengine ignored
these events and users failed to notice the key press. This was
problematic in real world use caess, e.g. click by a tap on macOS
browsers.

This change fixes this issue by recording the tick for both a press
and a release, and determine whether the key/button is pressed or
not more precisely.

Updates #2898
Closes #3137
Closes #3249
Updates #3317
2025-09-23 18:04:39 +09:00
Hajime Hoshi
c15408bc6e internal/ui: update key/mousebutton states at event handlers instead of updateInputStateImpl
This is a preparation for more precise key state detections and
asynchronous event handlers.

Updates #1704
Updates #3249
2025-09-23 15:32:19 +09:00
Hajime Hoshi
74835fb5bd all: add #cgo optimization directives
Closes #3196
2025-09-22 12:27:34 +09:00
Hajime Hoshi
5afdb9588f internal/atlas: replace runtime.SetFinalizer with AddCleanup
Closes #3204
2025-09-22 01:52:06 +09:00
Hajime Hoshi
4daa59b2cd internal/atlas: do not access global variable references at deallocate
As deallocate is invoked from the finalizer, it is problematic to access
a global variable referring the object itself. Especially,
runtime.AddCleanup doesn't work well with the current deallocate
implmenentation.

This change removes the access to the global variables from deallocate.
The global variables are reset every frame so it is self not to
remove a deallocated image explicitly. Also, this change fixes
the logic to iterate the global variables' images to check if the
image is already deallocated or not.

Updates #3204
2025-09-22 00:18:20 +09:00
Hajime Hoshi
765193a40e internal/atlas: refactoring: rename smallImageSet to imageSmallSet and use slices.Delete 2025-09-21 23:51:59 +09:00
Hajime Hoshi
51cc3aed04 all: replace runtime.SetFinalizer with AddCleanup
Updates #3204
2025-09-21 23:14:53 +09:00
Hajime Hoshi
244510643c ebiten: keep TouchID int by using a generics function 2025-09-21 18:48:41 +09:00