Commit Graph

5073 Commits

Author SHA1 Message Date
Hajime Hoshi
a36f6210c0 all: use Go 1.20 APIs
Closes #2746
2024-09-12 00:22:45 +09:00
Hajime Hoshi
07d29fa729 cmd/ebitenmobile: bug fix: consider EbitenSurfaceView recreation
On Android Emulator (Small Desktop API 32), EbitenRenderer can be
easily recreated by resizing the window. Thus, EbitenRenderer should
not have any flags like strictContextRestoration. Also, the flag
onceSurfaceCreated_ doesn't work there.
2024-09-09 16:42:57 +09:00
Hajime Hoshi
6a51e5b003 internal/restorable: optimize WritePixels
This adds (*Image).makeStaleIfDependingOnWithRegion to reduce the
possibility of making an image stale.
2024-09-08 22:55:34 +09:00
Hajime Hoshi
af9bd6a282 all: specify src-regions correctly
This parameter was not important and actually not used with usual
shaders. However, now this information will be important for the
restorable package optimization later.

There was a performance issue that was caused by srcRegions, but
now this should not happen thanks to FilterUniformVariables.

Updates #1293
2024-09-08 22:24:15 +09:00
Hajime Hoshi
73565034a9 internal/restorable: refactoring 2024-09-08 19:29:41 +09:00
Hajime Hoshi
bbe3cba110 internal/restorable: remove draw-triangles history items at WritePixels 2024-09-08 18:20:40 +09:00
Hajime Hoshi
f32648b144 internal/restorable: skip adding stale regions when the image doesn't need to be restored 2024-09-08 17:51:09 +09:00
Hajime Hoshi
aa8e112414 internal/restorable: restore a stale image at clearing pixels 2024-09-08 17:48:23 +09:00
Hajime Hoshi
26f0479f16 internal/restorable: typo 2024-09-08 17:06:25 +09:00
Hajime Hoshi
9ef9ea0469 internal/restorable: refactoring 2024-09-08 17:03:18 +09:00
Hajime Hoshi
b36160d9e7 internal/restorable: bug fix: make all the images stale correctly 2024-09-08 16:11:57 +09:00
Hajime Hoshi
20f8df7fc1 internal/restorable: refactoring: remove lastTarget
This didn't improve performance very much. Rather, this made the code
a little hard to read and could have a potential issue.
2024-09-08 16:08:36 +09:00
Hajime Hoshi
167c3435f7 internal/restorable: refactoring 2024-09-08 16:03:56 +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
29ef2c84ef internal/atlas: add comments 2024-09-08 11:31:52 +09:00
Hajime Hoshi
1488e5e685 internal/graphicscommand: add attributes to images 2024-09-07 23:38:16 +09:00
Hajime Hoshi
4fa8265c58 internal: add comments 2024-09-07 23:24:55 +09:00
Hajime Hoshi
46cf09197b internal/graphicscommand: enable to show shader names 2024-09-07 22:06:41 +09:00
Hajime Hoshi
393437b8be internal/graphicscommand: imporve blend log 2024-09-07 21:29:50 +09:00
Hajime Hoshi
1b2a2afbfb internal/restorable: rename restoring -> restoration 2024-09-07 19:09:00 +09:00
Hajime Hoshi
d50a438c07 internal/restorable: optimize removeDuplicatedRegions
Updates #2375
Updates #2626
Updates #3083
2024-09-07 19:01:05 +09:00
Hajime Hoshi
35f4884a74 ebiten: add RunGameOptions.StrictContextRestration
This reverts commit a30f075896.

This change adds a new option StrictContextRestration to make the
restoration optional.

Closes #3083
2024-09-07 18:36:04 +09:00
Hajime Hoshi
935e7a6d5d Revert "internal/restorable: remove the case when the restoring is needed"
This reverts commit c08a2193a9.

Updates #3083
2024-09-07 16:54:20 +09:00
Hajime Hoshi
5e18f191c1 Revert "internal/restorable: remove drawTrianglesHistoryItem"
This reverts commit afe3f7a8ff.

Updates #3083
2024-09-07 16:54:20 +09:00
Hajime Hoshi
16d2052836 Revert "internal/restorable: remove alwaysReadPixelsFromGPU"
This reverts commit f3206721a3.

Updates #3083
2024-09-07 16:54:20 +09:00
Hajime Hoshi
81d35df33b Revert "internal/restorable: remove unused functions and variables"
This reverts commit 8169253a57.

Updates #3083
2024-09-07 16:54:20 +09:00
Hajime Hoshi
6453e552f3 Revert "internal/restorable: remove unnecessary functions and variables around shaders"
This reverts commit 4f3e00ec3a.

Updates #3083
2024-09-07 16:54:20 +09:00
Hajime Hoshi
34639d0028 Revert "internal/restorable: remove ImageTypeRestorable"
This reverts commit 8c2d4e1408.

Updates #3083
2024-09-07 16:54:20 +09:00
Hajime Hoshi
169b9fe51e Revert "internal/restorable: move DumpImages to internal/atlas"
This reverts commit 7c9266d8b6.

Updates #3083
2024-09-07 16:54:20 +09:00
Hajime Hoshi
a9d8f374c8 Revert "internal/restorable: move SwapBuffers to internal/atlas"
This reverts commit f610cb5724.

Updates #3083
2024-09-07 16:54:20 +09:00
Hajime Hoshi
c2c5480878 Revert "internal/atlas: move some functions in internal/restorable to internal/atlas"
This reverts commit 3651d73e0b.

Updates #3083
2024-09-07 16:54:20 +09:00
Hajime Hoshi
a324cfd3b6 Revert "internal/restorable: remove ImageType"
This reverts commit 21ef462c37.

Updates #3083
2024-09-07 16:54:20 +09:00
Hajime Hoshi
62ed5bed4b Revert "internal/restorable: integrate some functions into internal/atlas"
This reverts commit c5d0ec3de7.

Updates #3803
2024-09-07 16:54:20 +09:00
Hajime Hoshi
d533461936 Revert "internal/restorable: integrate ReadPixels into internal/atlas"
This reverts commit e804f9e58c.

Updates #3083
2024-09-07 16:54:20 +09:00
Hajime Hoshi
becada4afc Revert "internal/restorable: refactoring"
This reverts commit 81e1104613.

Updates #3083
2024-09-07 16:54:20 +09:00
Hajime Hoshi
19d2009a5f Revert "internal/restorable: integrate Shader.Dispose into internal/atlas"
This reverts commit bfa2c460a2.

Updates #3083
2024-09-07 16:54:20 +09:00
Hajime Hoshi
17a5488c49 Revert "internal/restorable: integrate Image.DrawTriangles into internal/atlas"
This reverts commit 3ee905bc4d.

Updates #3083
2024-09-07 16:54:20 +09:00
Hajime Hoshi
d733308eb1 Revert "internal/restorable: integrate Image.WritePixels into internal/atlas"
This reverts commit 6cc8150185.

Updates #3083
2024-09-07 16:54:20 +09:00
Hajime Hoshi
104cc18477 Revert "internal/restorable: integrate Image.Extend into internal/atlas"
This reverts commit 6151fd313f.

Updates #3083
2024-09-07 16:54:20 +09:00
Hajime Hoshi
54c117b0de Revert "internal/restorable: integrate Image functions into internal/atlas"
This reverts commit 59896e4447.

Updates #3083
2024-09-07 16:54:20 +09:00
Hajime Hoshi
5a5feb0401 Revert "internal/restorable: remove Image"
This reverts commit 812cd494de.

Updates #3083
2024-09-07 16:54:20 +09:00
Hajime Hoshi
0b01aeea16 Revert "internal/restorable: integrate the implementation into internal/atlas"
This reverts commit c404b448aa.

Updates #3083
2024-09-07 16:54:20 +09:00
Hajime Hoshi
81c75e1b0a Revert "internal/atlas: refactoring: remove ImageTypeVolatile"
This reverts commit def82fd5d3.

Updates #3083
2024-09-07 16:54:20 +09:00
Hajime Hoshi
6eb0271f83 internal/graphicscommand: better log for read/write pixels 2024-09-06 18:38:07 +09:00
Hajime Hoshi
0e6702c043 internal/file: update comments 2024-09-06 11:03:39 +09:00
Hajime Hoshi
e43bb3898b internal/file: bug fix: VirtualFS.Open(".") should always return a new entry
Closes #3081
2024-09-06 10:44:08 +09:00
Hajime Hoshi
b34f9977f6 internal/gamepaddb: update the database
This uses b4001f8b2d
2024-09-03 02:19:03 +09:00
Hajime Hoshi
3eda0dd387 internal/graphicsdriver/playstation5: add extern C 2024-09-01 20:08:52 +09:00
Hajime Hoshi
ca54ce69c4 internal/graphicsdriver/playstation5: bug fix: compile error 2024-09-01 20:00:41 +09:00
Hajime Hoshi
7f1e6cb538 internal/graphicsdriver/playstation5: add ebitengine_SetVertices 2024-09-01 19:47:21 +09:00
Hajime Hoshi
71370a01bd internal/beforemaintest: avoid os.Exit(0) 2024-09-01 13:58:39 +09:00
Hajime Hoshi
67441c4823 internal/testing: avoid os.Exit(0)
os.Exit(0) might cause test flakiness.

https://github.com/hajimehoshi/ebiten/actions/runs/10650734256/job/29522689113

```
panic: unexpected call to os.Exit(0) during test

goroutine 1 [running]:
os.Exit(0x0)
	/opt/hostedtoolcache/go/1.23.0/x64/src/os/proc.go:67 +0x8
github.com/hajimehoshi/ebiten/v2/internal/testing.MainWithRunLoop(0x19b28c0)
	/home/runner/work/ebiten/ebiten/internal/testing/testing.go:50 +0xa
github.com/hajimehoshi/ebiten/v2/internal/graphicscommand_test.TestMain(...)
	/home/runner/work/ebiten/ebiten/internal/graphicscommand/image_test.go:42
main.main()
	_testmain.go:55 +0x5
```
2024-09-01 13:31:40 +09:00
Hajime Hoshi
f98003bcd5 ebiten: add ColorSpace and RunGameOptions.ColorSpace
This works only for macOS Metal and WebGL so far.

Closes #2871
2024-08-28 03:03:57 +09:00
Hajime Hoshi
42209606b1 internal/ui: disable IME and enable it only when necessary
Closes #2918
2024-08-27 02:22:30 +09:00
Hajime Hoshi
dc68152f17 internal/shader: better error message for the fragment entry point 2024-08-25 19:38:57 +09:00
Hajime Hoshi
9693ce8382 internal/shader: allow less arguments at Fragment
Closes #3073
2024-08-25 19:17:41 +09:00
Hajime Hoshi
e2662a8af7 internal/shader: bug fix: wrong indexing 2024-08-25 18:58:05 +09:00
Hajime Hoshi
2cc809516f ebiten: add Vertex.Custom0 to Custom3
Closes #2640
2024-08-25 18:11:39 +09:00
Hajime Hoshi
bff760af01 internal/shader: bug fix: test failures
Updates #2640
2024-08-25 17:43:44 +09:00
Hajime Hoshi
fef487e09d internal/shaderir/hlsl: refactoring: more flexible generation
Updates #2640
2024-08-25 17:27:00 +09:00
Hajime Hoshi
ed45843c13 internal/graphicsdriver/opengl: assume custom attributes are vec4
Due to HLSL restrictions, all the attributes must have a semantics.
Always assuming custom attributes are vec4 makes things simpler.

Updates #2640
2024-08-25 17:11:28 +09:00
Hajime Hoshi
107189a00d internal/shader: use strings.TrimPrefix 2024-08-25 15:43:44 +09:00
Hajime Hoshi
7142a3bcd9 internal/graphicsdriver/opengl: bug fix: total must be reset 2024-08-25 15:29:22 +09:00
Hajime Hoshi
a42a8548b1 internal/shader: refactoring 2024-08-25 12:57:11 +09:00
Hajime Hoshi
6db3b11b36 internal/shader: refactoring 2024-08-25 12:29:24 +09:00
Hajime Hoshi
3547d999b1 internal/graphicsdriver/opengl/gl: bug fix: crash when log length is 0 2024-08-25 11:45:54 +09:00
Hajime Hoshi
dd63eef65e textinput: support every environment even without IME
Closes #3072
2024-08-24 01:06:52 +09:00
Hajime Hoshi
9ad7fe5bed internal/shader: refactoring 2024-08-23 11:05:14 +09:00
Hajime Hoshi
d3d42b3263 internal/shader: refactoring: varying variables 2024-08-23 10:57:59 +09:00
Hajime Hoshi
35f9b1c224 ebiten: add RunGameOptions.DisableHiDPI
Closes #2987
2024-08-20 00:02:57 +09:00
Hajime Hoshi
17322c9c3b all: reduce files for PS5 2024-08-17 23:06:01 +09:00
Hajime Hoshi
26038c2ac1 internal/ui: bug fix: an unexpected scroll bar was shown
Closes #3066
2024-08-16 23:57:52 +09:00
Hajime Hoshi
435c8b75eb internal/graphicsdriver/opengl: automatically adjust the array buffer layout
Updates #2640
2024-08-12 04:08:02 +09:00
Hajime Hoshi
9e208eee81 all: use QuadVerticesFromDstAndSrc when possible 2024-08-12 02:42:36 +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
Hajime Hoshi
6cd00f3b88 internal/graphicsdriver/opengl: exclude playstation5 2024-08-11 22:41:21 +09:00
Hajime Hoshi
9a751d7c26 internal/mipmap: refactoring 2024-08-11 22:33:21 +09:00
Hajime Hoshi
e6807794f2 internal/mipmap: refactoring 2024-08-11 22:29:15 +09:00
Hajime Hoshi
5e820be911 internal/buffered: refactoring
This is a preparation for adding members to Vertex.

Updates #2640
2024-08-11 22:25:45 +09:00
Hajime Hoshi
5f80f4b3de all: refactoring 2024-08-11 21:43:00 +09:00
Hajime Hoshi
89933bf0ab internal/graphicsdriver/playstation5: bug fix: compile error 2024-08-10 21:52:38 +09:00
Hajime Hoshi
332da38565 internal/graphicsdriver/playstation5: update DrawTriangles
A Go pointer in a C struct could cause some troubles.
2024-08-10 21:21:09 +09:00
Hajime Hoshi
a5235eea86 internal/graphicsdriver/opengl/gl: always prefer OpenGL ES to OpenGL
Closes #2944
2024-08-10 01:21:35 +09:00
Hajime Hoshi
9c80367f2f internal/gamepad: ignore EACCES error for /dev/input
Updates #3057
2024-08-08 11:35:39 +09:00
Hajime Hoshi
1f03971fa9 internal/debug: reland: rename functions 2024-08-07 23:48:35 +09:00
Hajime Hoshi
fab9482e0e Revert "internal/debug: rename functions"
This reverts commit 74722298a2.

Reason: This included an unexpected change in internal/gamepad
2024-08-07 23:47:51 +09:00
Hajime Hoshi
74722298a2 internal/debug: rename functions 2024-08-07 23:42:36 +09:00
Hajime Hoshi
2a34d1d47b internal/graphicsdriver/opengl/gl: use PureGo version for Android again
This is basically a revert for 297efea68b.
This updates PureGo for the Android issue.

Updates #3052
Updates ebitengine/purego#262
2024-08-05 23:34:56 +09:00
Hajime Hoshi
aba652c323 internal/graphicsdriver/playstation5: add DrawTriangles 2024-08-04 19:13:36 +09:00
Hajime Hoshi
9bd17de2d3 internal/graphicsdriver/opengl: remove unused members 2024-08-04 04:26:53 +09:00
Hajime Hoshi
37a6057230 internal/ui: bug fix: increase maxSkipCount
Closes #3055
2024-08-04 04:16:01 +09:00
Hajime Hoshi
af6072c1b4 internal/shader: add more tests
Updates #3011
2024-08-03 19:08:03 +09:00
Hajime Hoshi
7c4f532b83 internal/shader: bug fix: an index must be a constant for vectors
Updates #3011
2024-08-03 19:03:42 +09:00
Hajime Hoshi
719838b7ab .github/workflows: update wasmbrowsertest to fix timeout issue
The issue agnivade/wasmbrowsertest#60 was fixed.

Updates #1313
2024-08-02 23:03:01 +09:00
Hajime Hoshi
297efea68b internal/graphicsdriver/opengl/gl: use C version for Android
Unfortunately PureGo's dlopen didn't work on some Android devices.
Use the Cgo version instead in the same way as v2.7.

Closes #3052
2024-08-01 11:52:07 +09:00
Hajime Hoshi
856b339298 internal/ui: bug fix: show a black dot at the red button when needed
When SetWindowClosingHandled(true) is called, a black dot should be
shown at the red button to close the window.

Closes #3020
2024-07-31 23:54:18 +09:00
Hajime Hoshi
3106f98b52 internal/graphicsdriver/opengl/gl: add more error messages to load libraries 2024-07-31 21:35:24 +09:00
Hajime Hoshi
1843f6acc1 internal/ui: bug fix: dropping multiple files didn't work on Firefox and Safari
Closes #3045
2024-07-31 11:50:30 +09:00
Hajime Hoshi
95ad1b158c internal/file: refactoring
Updates #3045
2024-07-31 11:21:35 +09:00