Commit Graph

3112 Commits

Author SHA1 Message Date
Hajime Hoshi
12de3a7749 internal/uidriver/mobile: bug fix: specify a shared AVAudioSession for CHHapticEngine
Closes #1976
2022-01-26 23:53:56 +09:00
Hajime Hoshi
eabd82cda0 internal/uidriver/mobile: make Vibrate async 2022-01-26 22:36:31 +09:00
Hajime Hoshi
8f1f9e3a5f internal/uidriver/glfw: do not set the window size on fullscreen
The window size and the framebuffer size of fullscreen doesn't match.

Updates #1960
2022-01-26 16:23:34 +09:00
Hajime Hoshi
5ee493e85a internal/uidriver/glfw: bug fix: needed to adjuts the units between the framebuffer and the window
Updates #1960
Closes #1975
2022-01-26 04:58:08 +09:00
Hajime Hoshi
f76d1c8d50 Revert "internal/uidriver/glfw: bug fix: needed to set the window position after restoring from fullscreen"
This reverts commit 99a15d81f4.

Reason: The true culprit was 12c144070f

Updates #1975
2022-01-26 04:57:28 +09:00
Hajime Hoshi
99a15d81f4 internal/uidriver/glfw: bug fix: needed to set the window position after restoring from fullscreen
Closes #1975
2022-01-26 04:29:12 +09:00
Hajime Hoshi
da1d6ddf17 internal/uidriver/glfw: refactoring: SetTitle after restoring from fullscreen is no longer needed 2022-01-26 04:15:09 +09:00
Hajime Hoshi
d0a6ce6567 internal/graphicsdriver/metal: disable presentsWithTransaction in the fullscreen mode
Updates #1745
Closes #1974
2022-01-26 03:55:14 +09:00
Hajime Hoshi
11d01f4de1 internal/cbackend: add EbitenVibrateGamepad
Updates #1452
2022-01-26 03:32:52 +09:00
Hajime Hoshi
fb3a022327 ebiten: use the DB's name for GamepadName
Updates #1949
2022-01-25 21:14:03 +09:00
Hajime Hoshi
cdf2335f5a refactoring: better error handlings on Windows 2022-01-23 18:30:40 +09:00
Hajime Hoshi
a049c403cf internal/gamepad: bug fix: go-vet failed (misuse of unsafe.Pointer)
Updates #1452
2022-01-23 02:08:30 +09:00
Hajime Hoshi
580307f150 internal/gamepad: bug fix: go-vet failed
Updates #1452
2022-01-23 01:56:14 +09:00
Hajime Hoshi
ff24f7718c internal/uidriver/glfw: use an original implementation for macOS
Updates #1452
2022-01-23 01:48:24 +09:00
Hajime Hoshi
84c680c6ed internal/shader: ban the operator div on a matrix
The operator div on a matrix doesn't work on Metal.
2022-01-21 03:37:34 +09:00
Hajime Hoshi
2e5b4954f3 internal/shader: bug fix: forbid mat + float
mat + float doesn't work on Metal.
2022-01-21 02:42:22 +09:00
Hajime Hoshi
99f003a17a internal/shader: bug fix: mat *= vec is not allowed
Updates #1971
2022-01-21 02:03:50 +09:00
Hajime Hoshi
0415773b94 internal/shader: bug fix: allow the *= operator for a vector and a matrix
Updates #1971
2022-01-21 01:59:58 +09:00
Hajime Hoshi
8b8b96c9e7 internal/shader: bug fix: wrong test (int*float) 2022-01-21 01:31:46 +09:00
Hajime Hoshi
8d2bf6525c internal/shader: bug fix: wrong type checkings for operator *
Updates #1971
2022-01-21 01:06:02 +09:00
Hajime Hoshi
8321cecfdd internal/atlas: typo 2022-01-19 23:44:59 +09:00
Hajime Hoshi
0a537b7ad2 internal/shader: bug fix: a number literal must be represented as floats in some contexts 2022-01-17 21:14:07 +09:00
Hajime Hoshi
4940159e5b internal/shader: bug fix: operators between vec/mat and float should work
Closes #1963
2022-01-17 20:52:44 +09:00
Hajime Hoshi
f5edc189e6 internal/uidriver/glfw: bug fix: wrong lock usages 2022-01-17 01:29:29 +09:00
Elias Daler
12c144070f
internal/uidriver/glfw: fix window float enable/disable (#1962)
Closes #1960
2022-01-17 00:28:25 +09:00
Bertrand Jung
c4fbcdd1ae
internal/uidriver/glfw: use FreeConsole instead of hiding (#1961)
Closes #485
2022-01-16 22:31:17 +09:00
Hajime Hoshi
260f7e07df internal/shader: bug fix: deduction checks for the % operator were lacked 2022-01-14 03:51:04 +09:00
Hajime Hoshi
bf48a0b11a internal/shaderir: bug fix: test failures 2022-01-12 01:57:06 +09:00
Hajime Hoshi
08ddb4233b internal/shaderir/glsl: bug fix: % was not available on old GLSLs
Use a new utility function modInt instead.

Closes #1951
2022-01-12 01:41:09 +09:00
Hajime Hoshi
d110716dc0 internal/shader: bug fix: check types correctly for assign operators
Closes #1950
2022-01-12 00:39:39 +09:00
Hajime Hoshi
83bd0772d4 internal/shader: bug fix: % should be valid only for integers
Closes #1947
2022-01-11 23:53:09 +09:00
Hajime Hoshi
ca3f84fdd6 internal/uidriver/cbackend: rename an argument
Updates #1452
2022-01-11 04:12:08 +09:00
Hajime Hoshi
eb6e2026dc internal/uidriver/glfw: remove unused go:generate comments 2022-01-10 22:05:17 +09:00
Hajime Hoshi
d4b722eb06 ebiten: rename VibrateOptions.Intensity -> Magnitude
Updates #1452
2022-01-10 16:02:26 +09:00
Hajime Hoshi
edff1f0dd9 internal/gamepaddb: enable mappings for iOS
Updates #1557
Closes #1722
2022-01-09 17:57:09 +09:00
Hajime Hoshi
8334ca9a18 iternal/gamepaddb: update TODO comments 2022-01-09 04:02:00 +09:00
Hajime Hoshi
4106fb15fe internal/gamepaddb: implement the mappings for Android
Updates #1557
2022-01-09 03:29:19 +09:00
Hajime Hoshi
1b498a03cc Revert "internal/graphicsdriver/metal: Bug fix: Vsync didn't work on macOS"
This reverts commit 1dd13ae06e.

Reason: This caused FPS drop on macOS 12.0.1

Updates #1885
Closes #1939
2022-01-09 01:02:53 +09:00
Hajime Hoshi
d1a5a161d7 internal/atlas: typo 2022-01-08 23:33:59 +09:00
Hajime Hoshi
e66d87e03d internal/buffered, interal/mipmap: typo 2022-01-08 23:32:58 +09:00
Hajime Hoshi
9d72d8c65a internal/buffered, interal/mipmap: typo 2022-01-08 23:31:20 +09:00
Hajime Hoshi
0680ca413d internal/atlas: bug fix: the offscreen must be an independent image
Closes #1938
2022-01-08 23:25:06 +09:00
Hajime Hoshi
3b0ce21a56 Revert "internal/graphicsdriver: bug fix: render semi-transparent vectors correctly"
This reverts commit 202f642395.

Reason: TestImageEvenOdd failed

Updates #1933
2022-01-06 03:19:46 +09:00
Hajime Hoshi
202f642395 internal/graphicsdriver: bug fix: render semi-transparent vectors correctly
Closes #1933
2022-01-06 03:00:25 +09:00
Hajime Hoshi
116203c5a5 cmd/ebitenmobile: update gomobile version (reland)
This switches from .framework to .xcframwork for iOS.

Closes #1922
2022-01-05 17:31:46 +09:00
Hajime Hoshi
c67e4385de internal/thread: bug fix: do not close 'terminate' channel
The `terminate` channel is resued on mobiles (see (*UserInterface).Update
in internal/uidriver/mobile). The channel must not be closed.

Closes #1932
2022-01-05 17:21:53 +09:00
Hajime Hoshi
6b34ddecfa internal/graphicsdriver/opengl/gles: add GLES_SILENCE_DEPRECATION to suppress warnings 2022-01-05 01:54:00 +09:00
Hajime Hoshi
ebb4851a32 internal/uidriver/js: bug fix: context might be nil before the loop starts
Closes #1928
2022-01-03 15:17:30 +09:00
Changkun Ou
626c91e360
ebiten: add RunOnMainThread(func()) (#1927)
Closes #1926
2022-01-03 03:30:29 +09:00
Hajime Hoshi
220a8f48ac internal/uidriver/glfw: refactoring: remove initTitle 2021-12-29 22:26:56 +09:00
Hajime Hoshi
5ee2ff56ca interna/uidriver: refactoring: remove initFPSMode 2021-12-29 22:21:27 +09:00
Hajime Hoshi
374871c031 internal/shader: bug fix: a meaningless statement should raise an error (a non-call expression statement)
Updates #1898
2021-12-27 23:14:05 +09:00
Hajime Hoshi
481a2145ae internal/shader: bug fix: a meaningless statement should raise an error
Closes #1898
2021-12-27 22:05:58 +09:00
Hajime Hoshi
dd4d2f6aa0 internal/glfw/glfw: update for GLFW 3.3.6
Closes #1896
2021-12-27 01:57:55 +09:00
Hajime Hoshi
a89e9d9368 internal/gamepaddb: update the database file
Updates #1903
2021-12-27 01:18:03 +09:00
Hajime Hoshi
f182b185d9 internal/graphicscommand: bug fix: overflow when len(vertices) > len(indices)
Closes #1913
2021-12-26 06:15:12 +09:00
Hajime Hoshi
011e5061df internal/cbackend: simplify the audio API 2021-12-23 22:20:04 +09:00
Hajime Hoshi
e6131894a7 internal/cbackend: add AudioBufferSizeInSeconds 2021-12-23 02:55:54 +09:00
Hajime Hoshi
1799ed0b28 add a build tag 'ebitencbackend' and internal/cbackend
This enables to create a C archive with Ebiten without an actual driver
implementation. This enables Ebiten work on a platform Go doesn't support.
See also Hitsumabushi project: github.com/hajimehoshi/hitsumabushi.

The backend C API is not stable and might change later. Then, the build
tag 'ebitencbackend' is not documented on purpose.

Closes #1900
2021-12-22 21:12:48 +09:00
Hajime Hoshi
b0b52c6297 internal/driver: typo 2021-12-22 18:47:52 +09:00
Hajime Hoshi
39ef252c2e
ebiten: Add VibrationOptions to specify intensity (#1891)
Updates #1452
2021-12-04 22:14:02 +09:00
Hajime Hoshi
bdf78dab27 internal/uidriver/glfw: Clean up build tags 2021-11-27 18:52:33 +09:00
Hajime Hoshi
ef5f8a9018 internal/uidriver/glfw: Adjusting the view size is not needed on macOS 12
Updates #1745
2021-11-27 18:47:05 +09:00
Hajime Hoshi
e6f2764d08 internal/uidriver/glfw: Refactoring: Remove toChangeSize
Updates #1884
2021-11-27 18:00:39 +09:00
Hajime Hoshi
22e64c7df0 internal/uidriver/glfw: Bug fix: Rendering should be updated after restoring from fullscreen
u.toChangeSize affects the result of u.updateSize. When the callback
for WindowSetSize is invoked, toChangeSize should be true.

In order to simplify the logic, we have to remove toChangeSize later.

Closes #1884
2021-11-27 17:53:40 +09:00
Hajime Hoshi
1dd13ae06e internal/graphicsdriver/metal: Bug fix: Vsync didn't work on macOS
This fix works only for Metal. There is not a good solution for
OpenGL so far unfortunately.

Closes #1885
2021-11-27 02:52:48 +09:00
Hajime Hoshi
73bf7a0939 internal/uidriver/glfw: Bug fix: Return a tentative scale when glfw.GetPrmaryMonitor returns 1
Updates #1878
2021-11-24 22:35:10 +09:00
Hajime Hoshi
b4f87f9651 internal/uidriver/mobile: Implement Vibrate for Android
This change also adds AndroidManifest.xml for the example. This is
used for `gomobile install` command.

Updates #1452
2021-11-19 01:49:22 +09:00
Hajime Hoshi
8ae6793d4d internal/shader: Check the number of arguments 2021-11-14 17:34:06 +09:00
Hajime Hoshi
9be4ce928b internal/shader: Add more tests for const
Updates #1847
2021-11-14 17:06:54 +09:00
Hajime Hoshi
36ce3b836e internal/shader: Bug fix: Treat a non-typed consntat argument as a float
Closes #1874
2021-11-14 15:47:59 +09:00
Hajime Hoshi
ee414ed849 Revert "internal/uidriver/glfw: Refactoring"
This reverts commit c4df397d87.

Reason: Compile error
2021-11-12 22:29:03 +09:00
Hajime Hoshi
c4df397d87 internal/uidriver/glfw: Refactoring 2021-11-12 22:19:32 +09:00
Hajime Hoshi
b6cf95f5bb internal/uidriver/js: Optimization: Reduce the call of js.Value.Get 2021-11-12 02:48:58 +09:00
Hajime Hoshi
1f7e7e2816 internal/uidriver/mobile: Remove the warnings
Closes #1872
2021-11-11 02:28:05 +09:00
Hajime Hoshi
5d5ce370f1 internal/uidriver/mobile: Implement Vibrate on iOS
Updates #1452
2021-11-11 00:50:02 +09:00
Hajime Hoshi
00e2b15e2a shaderir: Bug fix: A wrong argument for fmt.Sprintf
This change also improves the result of espcae analysis.

Closes #1863
2021-11-02 00:05:07 +09:00
Hajime Hoshi
7661147e31 internal/graphicsdriver/opengl: Avoid allocations by escaping to heap 2021-10-31 22:34:14 +09:00
Hajime Hoshi
113796efae internal/uidriver/glfw: Bug fix: Crashed a transparent button with the green button
Updates #1822
Closes #1857
2021-10-31 18:21:19 +09:00
Hajime Hoshi
0238549cfb internal/atlas, initernal/graphics: Better buffer size calculation 2021-10-31 17:20:39 +09:00
Hajime Hoshi
d236d73a1f internal/atlas, initernal/graphics: Bug fix: Needed to reset 'notFullyUsedTime' 2021-10-31 17:18:07 +09:00
Hajime Hoshi
15f62bfeb5 internal/graphicsdriver/opengl: Optimization: Cache texture variable names 2021-10-31 05:40:44 +09:00
Hajime Hoshi
9d51356eef internal/graphicsdriver/opengl: Optimization 2021-10-31 05:17:23 +09:00
Hajime Hoshi
b74a4a0275 internal/graphicsdriver/opengl: Optimization: Avoid heap allocations 2021-10-31 02:10:44 +09:00
Hajime Hoshi
7b7791156c internal/graphicsdriver/opengl: Remove unreached return 2021-10-31 01:38:01 +09:00
Hajime Hoshi
98083ccd0a internal/graphicsdriver/opengl: Avoid heap allocation of a local variable
If a variable is passed to an argument interface{}, the variable might be
allocated on the heap unexpectedly.
2021-10-31 01:11:12 +09:00
Hajime Hoshi
a082db04fd internal/jsutil: Optimization: Avoid using empty interface{} conversions 2021-10-30 18:53:21 +09:00
Hajime Hoshi
a826ecb29b internal/jsutil: Move a function to internal/graphicsdriver/opengl 2021-10-30 18:33:43 +09:00
Hajime Hoshi
06f4142ca0 internal/driver: Optimization: Replace interface{} with driver.Uniform
Converting a value from/to interface{} can create a value in heap
and this is not efficient.
2021-10-30 02:58:28 +09:00
Hajime Hoshi
1f82bb297c internal/graphicsdriver/opengl: Optimization: Avoid the empty interface 2021-10-30 02:28:57 +09:00
Hajime Hoshi
60f2c7ace6 internal/graphicsdriver/opengl: Optimization: Avoid creating slices for every frame (uniform variables) 2021-10-30 00:22:31 +09:00
Hajime Hoshi
b4f45edff8 internal/graphicsdriver/opengl: Optimization: Avoid creating slices for every frame 2021-10-30 00:13:57 +09:00
Hajime Hoshi
76324254c1 internal/graphicsdriver/opengl: Avoid creating objects for debugging 2021-10-30 00:04:03 +09:00
Hajime Hoshi
b1a442f86a internal/graphicscommand: Optimization: Pool drawTrianglesCommand objects 2021-10-29 23:41:47 +09:00
Hajime Hoshi
d3ac199aa9 internal/graphicsdriver/opengl: Optimization: Avoid fmt.Sprintf 2021-10-29 21:43:40 +09:00
Hajime Hoshi
3c1f8da7f8 internal/graphicsdriver/opengl: Optimization: Avoid interface conversion 2021-10-29 21:35:40 +09:00
Hajime Hoshi
5b7724f575 internal/uidriver/mobile: Bug fix: Compile error 2021-10-25 03:01:33 +09:00
Hajime Hoshi
2aa232878d ebiten: Add VibrateGamepad and implement this on browsers
Updates #1452
2021-10-25 02:30:42 +09:00
Hajime Hoshi
dde53df6ae internal/uidriver/glfw: Bug fix: Compile error 2021-10-24 15:23:25 +09:00
Hajime Hoshi
99bfdef416 internal/graphicsdriver/opengl/gl: Support OpenBSD 2021-10-24 15:09:16 +09:00