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
Hajime Hoshi
1e5086fd5a
internal/buffered: bug fix: enable TestGC again
...
The logic should be called in a game's Update explicitly.
Updates #2805
Closes #2806
2023-10-10 03:06:09 +09:00
Hajime Hoshi
4701a61e4b
internal/buffered: skip a flaky test
...
Updates #2805
2023-10-10 02:22:12 +09:00
Hajime Hoshi
cc5174f104
internal/buffered: bug fix: images created in init() were not GCed
...
Closes #2805
2023-10-10 00:31:44 +09:00
Hajime Hoshi
738f13f73f
internal/ui: remove unnecessary build tags
2023-10-09 23:39:06 +09:00
Hajime Hoshi
f269b61903
internal/atlas: introduce a managed byte slice pool
...
A managed byte slice from the new byte slice pool has a function
to release and put it back to the pool explicitly, and this doesn't
rely on GCs.
Updates #1681
Closes #2804
2023-10-09 20:32:32 +09:00
Hajime Hoshi
34d577a5ff
Revert "internal/atlas: reintroduce a byte pool"
...
This reverts commit 7e17b25c56
.
Reason: the current byte pool suppresses allocations to some extent, but doesn't suppress GCs.
Updates #1681
2023-10-09 14:40:05 +09:00
Hajime Hoshi
7e17b25c56
internal/atlas: reintroduce a byte pool
...
The old byte pool depnded on lifetimes of command queues, and this
was tricky.
The new byte pool uses runtime.SetFinalizer so this should be much
easier to use.
Updates #1681
2023-10-09 03:28:29 +09:00
Hajime Hoshi
2405b7e825
internal/restorable: remove unnecessary copying
...
After 6e5361c328
, WritePixels can
expect that the given pixel byte slice is always new, and now can
be assumed immutable. Do not copy the slice for restoring.
Actually, these copying were introduced at 38ce46328a
in order to reuse the same slice regions.
2023-10-09 01:17:43 +09:00
Hajime Hoshi
6e5361c328
internal/restorable: use clearImage to avoid allocations
...
Bytes from a pool in a command queue is now pretty hard to use correctly
as the lifetime of a queue is not clear.
Remove the byte pools once. Let's reconsider pool usages later.
This change also removes imagesWithBuffers as this is no longer needed.
imagesWithBuffers was necessary to ensure all the bytes from the pool
of the command queue was used before the queue flushes the commands,
as the command queue cleared the pool after flushing. The lifetimes
were pretty ticky.
2023-10-09 00:42:58 +09:00
Hajime Hoshi
cc8cf688f4
internal/restorable: use clearImage to avoid allocations
2023-10-08 23:59:31 +09:00
Hajime Hoshi
e768e8ad40
internal/graphicscommand: refactoring: add commandqueue.go
2023-10-08 19:54:28 +09:00
Hajime Hoshi
9ed3c89594
internal/graphicscommand: remove an image from imageWithBuffers whenever possible
2023-10-08 19:43:58 +09:00
Hajime Hoshi
810b62f83e
internal/graphicscommand: introduce commandQueuePool and commandQueueManager
...
This removes the restriction of the number of command queues.
Updates #1704
2023-10-08 19:23:57 +09:00
Hajime Hoshi
d2dd62b6db
internal/graphicscommand: remove unnecessary references to drawTrianglesCommand
2023-10-08 17:18:16 +09:00
Hajime Hoshi
fd1083808c
internal/graphicscommand: switch the queue before flushing
...
This is a preparation to do something (e.g. handling inputs) during
being blocked by Flush.
Updates #1704
2023-10-08 16:10:07 +09:00
Hajime Hoshi
53525342b1
internal/graphicscommand: bug fix: Flush didn't return error when sync=false
2023-10-08 04:30:14 +09:00
Hajime Hoshi
cede5027d3
internal/glfw: merge internal/cglfw into internal/glfw
...
Closes #2703
2023-10-07 23:59:55 +09:00
Hajime Hoshi
ad0b61c022
internal/cglfw: fix errors to be close to internal/glfw
...
Updates #2703
2023-10-07 22:48:44 +09:00
Hajime Hoshi
6dc375f7a6
internal/cglfw: let Terminate return an error
...
This change also removes flushErrors, which is only for GLFW
debuggings.
2023-10-07 22:35:40 +09:00
Hajime Hoshi
7bcefa1035
internal/cglfw: remove acceptError
2023-10-07 22:14:34 +09:00
Hajime Hoshi
98dc59c89f
internal/cglfw: let functions return errors
...
Updates #2703
2023-10-07 20:28:03 +09:00
Hajime Hoshi
ee1c179c83
internal/cglfw: let functions return errors in native_linbsd.go
...
Updates #2703
2023-10-07 20:28:03 +09:00
Hajime Hoshi
6a5d46dc43
internal/cglfw: use stderr for logs
2023-10-07 20:28:03 +09:00
Hajime Hoshi
82bceba847
internal/cglfw: let functions return errors in native_darwin.go and glfw_unix.go
...
Updates #2703
2023-10-07 18:37:06 +09:00
Hajime Hoshi
cb023af4b6
internal/cglfw: use stderr instead of log
2023-10-07 18:36:20 +09:00
Hajime Hoshi
aef7b0dd38
internal/glfw: rename files
...
Updates #2703
2023-10-07 17:23:33 +09:00
Hajime Hoshi
a971e32ec1
internal/cglfw: rename files
...
Updates #2703
2023-10-07 17:13:28 +09:00
Hajime Hoshi
82f2319020
internal/hook: rename hooks -> hook
2023-10-06 13:58:00 +09:00
Hajime Hoshi
e7ad5c52fe
internal/glfw: merge internal/goglfw into internal/glfw
...
This also changes APIs in internal/glfw to return errors.
Updates #2703
2023-10-05 03:09:51 +09:00
Hajime Hoshi
ef1e495aba
internal/winver: fix a panic message
2023-10-05 01:25:09 +09:00
Hajime Hoshi
aa55953c11
internal/ui: replace (*userInterface).err with (*globalState).err
2023-10-05 00:45:04 +09:00
Hajime Hoshi
0af42e6620
internal/vettools: bug fix: vettool itself failed with vettool check
2023-10-04 12:56:14 +09:00
Hajime Hoshi
73524d8df5
.github/workflows: move vettools to internal to avoid a nested module
2023-10-04 12:16:32 +09:00
Hajime Hoshi
0e722669ef
internal/glfw: add const definitions
...
This is one of the steps to merge internal/glfw and internal/goglfw.
Updates #2703
2023-10-04 03:04:47 +09:00
Hajime Hoshi
84030a3f77
internal/ui: refactoring: remove unused functions
2023-10-04 02:54:55 +09:00
Hajime Hoshi
491b578866
ebiten: add KeyF13 to KeyF24
...
Closes #2801
2023-10-04 00:45:49 +09:00
Hajime Hoshi
33c51eeee4
internal/goglfw: remove files for macOS
...
Updates #2776
2023-10-03 22:44:38 +09:00
Hajime Hoshi
b2a6e79a5a
internal/graphicsdriver/opengl/gl: rename procaddr_others.go to procaddr_linbsd.go
2023-10-02 01:02:51 +09:00
Hajime Hoshi
386bda3c84
internal/graphicsdriver/opengl/gl: add do-not-edit comment
2023-10-02 00:21:53 +09:00
Hajime Hoshi
50508e1a8d
internal/thread: add comments
2023-10-02 00:06:41 +09:00
Hajime Hoshi
95b4eeafce
all: remove unnecessary build tag restrictions
2023-10-01 23:27:57 +09:00
Hajime Hoshi
8c7eb70635
internal/ui: bug fix: wrong monitor was detected on fullscreen
...
Updates #2225
Updates #2794
2023-09-30 13:41:12 +09:00
Hajime Hoshi
22118ba962
internal/ui: add a comment
...
Updates #2796
2023-09-30 02:55:04 +09:00
Hajime Hoshi
dce18d7c23
internal/ui: bug fix: SetWindowIcon(nil) didn't reset the window icon
...
Closes #2796
2023-09-30 02:46:40 +09:00
Hajime Hoshi
13dfb28a98
internal/ui: copy a slice at SetIconImages
...
This changes makes ebiten.SetIconImages a little safer.
2023-09-30 01:46:01 +09:00
Hajime Hoshi
7204ca86e3
internal/ui: refactoring: remove an unused member
2023-09-30 01:39:34 +09:00
Hajime Hoshi
aab22f4c1e
internal/ui: bug fix: use correct regions at (*monitors).monitorFromPosition
...
Updates #2781
2023-09-30 00:30:06 +09:00
Hajime Hoshi
2fbef2106d
internal/ui: refactoring
...
Updates #2781
2023-09-30 00:11:15 +09:00
Hajime Hoshi
03d6811a65
internal/ui: bug fix: initialMonitorByOS could return nil on macOS
...
initialMonitorByOS could return nil when a cursor was at an extreme
position like the bottom of the display. Apparently, a cursor position
could take an inclusive range of the monitor size.
This change fixes this issue by fixing the comparison.
Even if initialMonitorByOS returns nil, a fallback primary monitor
should be used, so this is not a critical issue.
Updates #2794
2023-09-29 16:54:47 +09:00
Hajime Hoshi
14a2c703df
internal/ui: fix wrong panic messages
2023-09-29 15:36:43 +09:00
Hajime Hoshi
91abfe2c10
internal/ui: bug fix: compilie error on Windows
...
Updates #2794
2023-09-29 12:54:41 +09:00