Commit Graph

9448 Commits

Author SHA1 Message Date
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
51190c2ba9 all: update dependencies 2023-10-11 01:06:33 +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
e352181ec1 mobile: add RunOnJVM
RunOnJVM is just a wrapper of golang.org/x/mobile/app.RunOnJVM,
in order to reduce direct dependencies on golang.org/x/mobile.

Updates #2803
2023-10-08 02:21:56 +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
3d4dc239bc all: update dependencies 2023-10-06 12:36:36 +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
370e506dc9 .github/workflows: improve go-vet test targets 2023-10-05 02:26:35 +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
cc999a4c5b .github/workflows: skip vettools for Go 1.18 and 1.19
There is an issue in golang.org/x/tools@v0.12.0. See golang/go#62519
for the details.

As a temporary solution, just skip using vettools for Go 1.18 and 1.19.
2023-10-04 13:37:42 +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
b27238e989 .github/workflows: refactoring 2023-10-04 12:17:41 +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
Nathan Levett
8b587a1d4e
.github/workflows: dynamic Go versions in vuln workflow (#2800)
Swap from hard coded versions of go to dynamically acquiring
the latest stable versions from https://go.dev/dl/?mode=json

Closes #2573
2023-10-03 02:33:23 +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