Commit Graph

4656 Commits

Author SHA1 Message Date
Hajime Hoshi
6339872da8 internal/graphicscommand: disable asynchronous rendering when vsync is on
Asynchronouse rendering was introduced at #2664, but apparently this
caused a delay between a game's update and its rendering.

Disable this when vsync is on. When vsync is off, we should not have
to care the delay since new renderings keep to come. Rather,
asynchronous renderings improves FPS.

Updates #2664
Updates #2822
2023-10-28 14:59:25 +09:00
Hajime Hoshi
98f2798b07 internal/ui: call a graphics driver's SetFPSMode only when necessary
It was odd to call this in the swapBufferForGL function.
2023-10-28 14:50:40 +09:00
Hajime Hoshi
61498e899a internal/graphicsdriver/metal: typo 2023-10-28 02:43:57 +09:00
Hajime Hoshi
d91f328083 internal/graphicsdriver/metal: bug fix: use 3 for drawable count when vsync is off
Updates #2822
2023-10-28 02:39:47 +09:00
Hajime Hoshi
80301eb29e internal/graphicsdriver/metal: change the maximum drawable count to 2
Updates #2822
2023-10-28 02:15:02 +09:00
Hajime Hoshi
457f6bb964 Revert "internal/ui: bug fix: panic at ReadPixels before running"
This reverts commit 2f6df3d4d6.

Reason: regression by calling (*ebiten.Image).At from a different goroutine

Updates #2820
2023-10-27 14:29:41 +09:00
Hajime Hoshi
2f6df3d4d6 internal/ui: bug fix: panic at ReadPixels before running
Closes #2820
2023-10-27 12:18:34 +09:00
Hajime Hoshi
4eb9b3a152 internal/ui: remove unused members 2023-10-27 10:49:45 +09:00
Hajime Hoshi
55702a7c28 internal/atlas: refactoring: ensure ReadPixels to be processed in a frame
This enables to call (*Image).At from HandleInput, which might be
called outside of a frame.

Updates #1704
2023-10-25 00:48:09 +09:00
Hajime Hoshi
a3ba83c5da internal/ui: bug fix: an error was ignored 2023-10-24 14:44:53 +09:00
Hajime Hoshi
f2acc3d9f7 internal/ui: refactoring 2023-10-24 14:38:23 +09:00
Hajime Hoshi
2eca476054 internal/ui: bug fix: EndFrame was not called when layoutGame returned 0s 2023-10-24 02:31:05 +09:00
Hajime Hoshi
b94c3fa9bb internal/atlas: split EndFrame into EndFrame and SwapBuffers
This enables to do something asynchronously while executing SwapBuffers
in a different goroutine.

This is a preparation for HandleInput.

Updates #1704
2023-10-24 00:22:04 +09:00
Hajime Hoshi
c2ad36bdce internal/ui: use BlendSourceOver at Fill when possible
Closes #2817
2023-10-21 01:24:49 +09:00
Hajime Hoshi
39688dd27d internal/processtest: improve test issue2815
WritePixels for 1x1 image is optimized at internal/ui, and Ebitengine
doesn't read pixels from GPU in this case. Enlarge the tested image,
and use DrawImage to ensure to invalidate the internal cache.

Updates #2815
2023-10-20 02:48:21 +09:00
Hajime Hoshi
e80e981bf5 internal/atlas: let callers retry ReadPixels instead of blocking
This is a preparation to implement HandleInput, which might call
(*Image).At in its callback.

Updates #1704
2023-10-20 02:30:32 +09:00
Hajime Hoshi
913824beba internal/atlas: close channels on the sender side just in case 2023-10-19 12:14:54 +09:00
Hajime Hoshi
ad51e22252 internal/atlas: bug fix: ReadPixels crashed when inFrame was false
This change fixes the issue by letting ReadPixels return a channel
and executing this asynchronously when needed.

Closes #2815
2023-10-19 03:56:54 +09:00
Hajime Hoshi
7a921e03da internal/atlas: bug fix: inFrame was not correctly updated
Updates #2814
2023-10-19 02:08:28 +09:00
Hajime Hoshi
7d517bfb63 internal/buffered: move buffering to internal/atlas
Closes #2814
2023-10-19 01:56:18 +09:00
Hajime Hoshi
da979a3ab2 internal/buffer, internal/mipmap: remove Shader 2023-10-19 00:52:32 +09:00
Hajime Hoshi
19ee79e2cb internal/buffered: remove unnecessary deferred functions for shaders 2023-10-18 23:36:41 +09:00
Hajime Hoshi
3f1b7e78b8 internal/buffered: remove unnecessary deferred functions 2023-10-18 23:20:02 +09:00
Hajime Hoshi
58847e023d internal/buffered: refactoring 2023-10-18 23:03:05 +09:00
Hajime Hoshi
b0f88bce7d internal/buffered: remove unnecessary deferred functions 2023-10-18 22:30:01 +09:00
Hajime Hoshi
315450474a internal/atlas: add comments 2023-10-18 01:01:21 +09:00
Hajime Hoshi
630789757f all: add files for PlayStation 5
The implementation is WIP.

Updates #2799
2023-10-16 00:54:08 +09:00
Hajime Hoshi
bdd68ca01a internal/ui: reland: use errors.New instead of fmt.Errorf 2023-10-16 00:25:51 +09:00
Hajime Hoshi
565e944691 Revert "internal/ui: use errors.New instead of fmt.Errorf"
This reverts commit ed49d8cc9a.

Reason: compile error
2023-10-16 00:24:41 +09:00
Hajime Hoshi
ed49d8cc9a internal/ui: use errors.New instead of fmt.Errorf 2023-10-16 00:23:37 +09:00
Hajime Hoshi
e1f18b53f5 internal/ui: refactoring 2023-10-16 00:02:25 +09:00
Hajime Hoshi
47e70f2544 internal/ui: use errors.New instead of fmt.Errorf 2023-10-15 23:27:04 +09:00
Hajime Hoshi
742f3a6dac internal/ui: refactoring: reduce functions 2023-10-15 20:14:23 +09:00
Hajime Hoshi
18714e22a1 internal/ui: reland: return errors when getting a graphics driver fails 2023-10-15 18:34:08 +09:00
Hajime Hoshi
bd10f19567 Revert "internal/ui: return errors when getting a graphics driver fails"
This reverts commit d4e31aedd6.

Reason: compile error with -tags=nintendosdk
2023-10-15 18:32:47 +09:00
Hajime Hoshi
d4e31aedd6 internal/ui: return errors when getting a graphics driver fails 2023-10-15 18:26:13 +09:00
Hajime Hoshi
8274b32301 internal/graphicslibrary: refactoring: remove IsGL and IsDirectX 2023-10-15 17:30:16 +09:00
Hajime Hoshi
0378230b3e internal/ui: refactoring: reduce theUI 2023-10-15 17:02:15 +09:00
Hajime Hoshi
83a4133577 internal/ui: refactoring: remove globalState 2023-10-15 16:51:16 +09:00
Hajime Hoshi
a16a03c9db internal/ui: refactoring 2023-10-15 16:38:05 +09:00
Hajime Hoshi
a89aaa0756 internal/ui: refactoring: remove fpsMode from globalState 2023-10-15 16:19:41 +09:00
Hajime Hoshi
beabe9c6ee internal/ui: bug fix: compile failure with -tags=nintendosdk 2023-10-15 03:58:29 +09:00
Hajime Hoshi
27fd10595b internal/ui: refactoring: reduce global functions and prefer Get() 2023-10-15 03:40:48 +09:00
Hajime Hoshi
69f1fa5f29 internal/ui: unify the receivers for UI 2023-10-15 02:51:23 +09:00
Hajime Hoshi
77bdbac244 Revert "internal/ui: remove an unused function"
This reverts commit df3a1c3cdd.

Reason: compile failure: UpdateInputFromEvent was used from textinput
2023-10-15 02:23:27 +09:00
Hajime Hoshi
df3a1c3cdd internal/ui: remove an unused function 2023-10-15 01:32:39 +09:00
Hajime Hoshi
2a8d8d71fc internal/ui: merge init functions
The Go specification doesn't determine the order of init functions.
In order to reduce unexpected behavior, merge some init functions.
2023-10-15 00:17:09 +09:00
Hajime Hoshi
567e2fa04c ebiten: add BlendOperationMin and BlendOperationMax
Closes #2395
2023-10-13 01:56:33 +09:00
Hajime Hoshi
7018e7dfb1 internal/ui: rename files 2023-10-11 02:03:58 +09:00
Hajime Hoshi
54c6c6b728 internal/glfw: bug fix: always use draw.Draw for any images
Closes #2807
2023-10-11 01:03:06 +09:00