Commit Graph

1047 Commits

Author SHA1 Message Date
Hajime Hoshi
41906115f4 examples/blend: use the face's metrics to calculate the position
For centering, using bounds is slightly inaccurate as the bounds
don't consider left/right-side bearings. Also, using bounds for
heights is slightly inaccurate as baselines for texts on the same
line would not be the same.

Updates #2143
2023-06-02 01:58:21 +09:00
Hajime Hoshi
f446288e0c update bitmapfont to v3 2023-05-30 11:17:36 +09:00
Hajime Hoshi
49582519c1 all: add a compiler directive kage:unit
This change adds a new compiler directive 'kage:unit' to Kage. This
takes one of these two values: 'pixel' and 'texel'. The default value
is 'texel'.

With the pixel-unit mode, all the built-in functions treats pixels
instead of texels, and the texCoord argument of Fragment is in pixels.
This simplifies shader programs as programs no longer have the notion
of texels.

With the texel-unit mode, the behavior is the same as the current
behavior.

Closes #1431
2023-04-23 22:11:57 +09:00
Hajime Hoshi
01bb42526a examples/shader: refactoring 2023-04-23 16:29:23 +09:00
Eric H
1fdc45e652
example: add a mouse capture example (#2642)
Closes #2641
2023-04-19 13:02:02 +09:00
Hajime Hoshi
bf18a5e998 examples/shader: bug fix: normalize pos correctly 2023-04-17 22:36:31 +09:00
Hajime Hoshi
820548ed68 example/shader: make default.go more deterministic 2023-04-17 22:27:27 +09:00
Hajime Hoshi
1c14ba8eeb examples/shader: add comments
Updates #1431
2023-04-13 14:16:55 +09:00
Hajime Hoshi
0776a54712 examples/shader: remove comments 2023-04-13 14:10:34 +09:00
Hajime Hoshi
2d6e13cda4 examples/shader: bug fix: wrong usages of position
Closes #2638
Updates #1431
2023-04-13 02:02:15 +09:00
Hajime Hoshi
3564a44638 examples/windowsize: add a new flag -runnableonunfocused 2023-04-01 03:13:47 +09:00
Hajime Hoshi
cbff3555db internal/graphicsdriver/opengl: drop WebGL 1 support
Closes #2191
2023-03-18 22:50:09 +09:00
Hajime Hoshi
8bd7ce5c20 vector: add anti-alias options to the utility functions
Closes #2606
2023-03-18 11:01:48 +09:00
Hajime Hoshi
e4aace6c40 examples/blend: shrink the window for small displays 2023-03-14 22:21:35 +09:00
Hajime Hoshi
3951df05c8 examples/audiopanning: fix the initial panning 2023-03-14 21:30:55 +09:00
Hajime Hoshi
84a86c86e4 examples/blend: disable resizing the window 2023-03-14 21:22:27 +09:00
Hajime Hoshi
903b5ab046 examples/blend: clean up 2023-03-13 02:11:05 +09:00
Hajime Hoshi
80cbf7cbae examples: bug fix: wrong sample rate 2023-03-13 00:23:57 +09:00
Hajime Hoshi
597fe171a4 examples/additive: remove examples/additive
This is duplicated with examples/blend.
2023-03-12 23:44:53 +09:00
Hajime Hoshi
c568668149 examples/subimage: add a comment
Updates #2471
2023-02-17 02:06:40 +09:00
Hajime Hoshi
68775cf065 examples/vector: specify alpha values explicitly 2023-02-14 19:26:14 +09:00
Hajime Hoshi
cb61633b70 examples/lines: specify color values explicitly 2023-02-14 19:14:38 +09:00
Hajime Hoshi
10f022e129 examples/lines: specify alpha values explicitly 2023-02-14 19:12:26 +09:00
Artem Sedykh
da54f19df5
add blend modes example (#2563) 2023-02-07 11:59:49 +09:00
quasilyte
ce36527d16
examples/camera: fix window title (#2564) 2023-02-06 17:31:23 +09:00
Hajime Hoshi
38a6583438 examples/audio: change the sample rate from 32000 -> 48000 2023-01-27 14:58:17 +09:00
Hajime Hoshi
0c76a0cbd7 examples/dropfile: bug fix: handle errors correctly 2023-01-25 15:25:06 +09:00
Hajime Hoshi
f009dd8dd2 ebiten: implement DroppedFiles to replace AppendDroppedFiles
Closes #2552
2023-01-25 14:27:11 +09:00
Hajime Hoshi
e03cb0d4df examples/dropfile: bug fix: go vet failed 2023-01-22 17:31:24 +09:00
Hajime Hoshi
8c25fac860 ebiten: add AppendDroppedFiles
Closes #1868
2023-01-22 17:22:25 +09:00
Hajime Hoshi
f054a7634a ebiten: deprecate (*Image).Size
Closes #2351
2023-01-20 01:26:37 +09:00
Hajime Hoshi
95f1ef0fb9 internal/ui: bug fix: recover the cursor shape when the cursor is visible
Closes #2527
2023-01-07 20:03:21 +09:00
Hajime Hoshi
dd7e125d9c ebiten: add KeyName for desktops and browsers
Updates #1904
2022-12-25 03:37:29 +09:00
Hajime Hoshi
0bec1e65fa ebiten: add RunGameOptions.SkipTaskbar
Closes #1518
2022-12-13 02:00:44 +09:00
Hajime Hoshi
8e5ae88738 examples/mascot: use RunGameWithOptions
Updates #2378
2022-12-13 01:06:48 +09:00
Hajime Hoshi
3024e07ecc ebiten: add RunGameOptions.ScreenTransparent
Closes #2378
2022-12-09 22:50:57 +09:00
Hajime Hoshi
d31b0189a2 ebiten: add RunGameOptions.InitUnfocused
Updates #2378
2022-12-09 21:27:32 +09:00
Hajime Hoshi
bb68ebfcad ebiten: add RunGameWithOptions to specify graphics library
This also adds mobile.SetGameWithOptions.

Updates #2378
2022-12-09 21:27:31 +09:00
Hajime Hoshi
760e6b9ebd examples/shader: bug fix: use pixels instead of texels for offsets
Closes #2483
2022-12-03 22:46:10 +09:00
Hajime Hoshi
746fbc7b5c examples/fontvector: refactoring 2022-11-25 23:44:48 +09:00
Hajime Hoshi
881d3b2018 examples/fontvector: adjust width 2022-11-25 23:29:28 +09:00
Hajime Hoshi
477bff3f62 add examples/vectorfont
Updates #1937
2022-11-25 18:49:26 +09:00
Hajime Hoshi
a042af98b1 text: improve rendering quality with HintingVertical
When HintingVertical is used, the interval between two glyphs is not
quantized (i.e. not a whole pixel). The text package didn't consider
this situation.

This change improves the quality by using more various glyph images
with 1/4 pixels granularity in vertical direction.

Closes #2469
2022-11-25 16:45:37 +09:00
Hajime Hoshi
f4b12462e6 ebiten: rename FloatLayouter -> LayoutFer
Updates #2285
2022-11-09 02:00:23 +09:00
Hajime Hoshi
8567c3c654 ebiten: add FloatLayouter
Closes #2285
2022-11-09 01:52:48 +09:00
Hajime Hoshi
156c34a316 ebiten: separate a package for ColorM: colorm
Closes #2171
2022-11-08 23:50:04 +09:00
Hajime Hoshi
d73e8f785d internal/graphicsdriver: render various destination regions as one command
Closes #2232
2022-11-04 20:49:44 +09:00
Artem Yadelskyi
86e694941f
examples: remove example build tag (#2433)
Closes #1462
2022-11-03 20:24:09 +09:00
Artem Yadelskyi
10415d417a
all: replace interface{} with any (#2430)
Closes #2429
2022-11-03 15:33:09 +09:00
Artem Yadelskyi
5b53cef59e
all: remove old // +build comments (#2431)
Closes #2325
2022-11-03 12:55:14 +09:00
Hajime Hoshi
ac6843639d ebiten: undeprecate SetVsyncEnabled / IsVsyncEnabled
This change deprecates FPSMode and SetFPSMode.

Closes #2342
2022-10-29 01:16:08 +09:00
Hajime Hoshi
b019a3723a internal/ui: optimize GPU usages when the screen doesn't have to be updated
This change skips rendering when 1) the screen is not cleared every frame
(`SetScreenClearedEveryFrame(false)`) and 2) Draw doesn't draw anything
onto the screen. The GPU usages decreased on some machines (e.g. GPU usage
was 10% with an empty Ebitengine project and became 2-3 % on a Windows
machine).

Updates #2341
2022-10-28 18:51:06 +09:00
Hajime Hoshi
6ba14fdb00 vector: rename functions
Fill* was confusing especially when the color is a transparent color.

Closes #2403
2022-10-22 20:29:31 +09:00
Hajime Hoshi
c34c072efa vector: change the specificatino of Path.ArcTo
Closes #2401
2022-10-22 02:03:27 +09:00
Hajime Hoshi
5e15bafde8 vector: add FillCircle and StrokeCircle
Updates #2387
2022-10-22 01:24:51 +09:00
Hajime Hoshi
6f7b1a81d7 vector: add StrokeLine, FillRect, and StrokeRect
Updates #2387
2022-10-21 22:35:01 +09:00
Hajime Hoshi
a75472b524 vector: add (*Path).Close
Updates #2387
2022-10-21 18:16:48 +09:00
Hajime Hoshi
f04e391cb4 all: rename emptyImage -> whiteImage 2022-10-21 15:26:56 +09:00
Hajime Hoshi
9ec23ddeb4 ebiten: add DrawTrianglesOptions.AntiAlias and DrawTrianglesShaderOptions.AntiAlias
Closes #2385
2022-10-21 02:07:41 +09:00
Hajime Hoshi
885a3fa7cc examples/vector: bug fix: wrong offscreen resetting 2022-10-20 14:13:06 +09:00
Hajime Hoshi
e4b056bac6 examples/vector: fill the background with a solid color 2022-10-18 23:45:52 +09:00
Hajime Hoshi
b79495761e ebiten: add Blend and deprecate CompositeMode
Updates #2382
2022-10-16 22:47:00 +09:00
Hajime Hoshi
bcc5dc1703 examples/lines: show FPS/TPS 2022-10-15 02:23:26 +09:00
Hajime Hoshi
d2f6d8593b vector: add LineCap
Closes #1843
2022-10-15 00:40:28 +09:00
Hajime Hoshi
599571c7a7 ebiten: add geoM argument to DrawFinalScreen
Updates #2046
2022-10-14 23:35:58 +09:00
Hajime Hoshi
596efc86fe examples/lines: more dynaic effect 2022-10-14 23:26:15 +09:00
Hajime Hoshi
225bf1bbb4 vector: add StrokeOptions.MiterLimit 2022-10-14 23:25:59 +09:00
Hajime Hoshi
a1a598471b vector: add LineJoin
Updates #1843
2022-10-14 22:11:00 +09:00
Hajime Hoshi
d2eeca3067 examples/flappy: typo 2022-10-14 16:51:32 +09:00
Hajime Hoshi
30cc36b1ba ebiten: add FinalScreenDrawer
FinalScreenDrawer is an interface for a custom screen rendering. If a
game implements FinalScreenDrawer and is passed to RunGame, its
DrawFinalScreen is called after Draw.

Also this adds `-crt` option to examples/flappy.

Closes #2046
2022-10-14 16:49:32 +09:00
Hajime Hoshi
0803342d01 examples/shader: remove the CRT effect 2022-10-14 16:14:46 +09:00
Hajime Hoshi
93c09633ee examples/shader: bug fix: wrong function usages
The tex-coord should have been modified by the source texture
region/size, rather than the destination texture's.
2022-10-14 16:04:09 +09:00
Hajime Hoshi
69c8fd745b vector: add AppendVerticesAndIndicesForStroke
Updates #1843
2022-10-10 23:19:29 +09:00
Hajime Hoshi
010bf69f5a examples/vector: improve readability of the debug message 2022-10-10 00:22:57 +09:00
Hajime Hoshi
5d9acfe7ec examples/vector: add switching anti-alias
This change is a proof-of-concept of anti-alias with a pseudo MSAA
effect.

Updates #663
2022-10-09 21:27:16 +09:00
Hajime Hoshi
cda6fa156f examples/flappy: reorder build tags 2022-09-20 23:56:27 +09:00
Hajime Hoshi
67400d242b examples/resource: use go:embed for images
Closes #1258
2022-09-17 23:27:45 +09:00
Hajime Hoshi
5305735055 examples/resource: use go:embed for audio and fonts
Updates #1258
2022-09-17 22:15:40 +09:00
Hajime Hoshi
289129c9e5 examples/shader: use go:embed
Updates #1258
2022-09-15 23:18:49 +09:00
Hajime Hoshi
d57cd39bb9 examples/resources/images/keyboard: fix comment 2022-09-15 23:18:49 +09:00
Hajime Hoshi
6e6145541d examples/keyboard/keyboard: use go:embed
Updates #1258
2022-09-15 22:58:57 +09:00
Hajime Hoshi
5404e4d68a all: replace io/ioutil with io and os
Closes #1770
2022-09-15 02:54:25 +09:00
Terra Brown
a1cc44833d
add errcheck static analysis (#2293)
Closes #2287
2022-09-10 01:52:46 +09:00
Hajime Hoshi
6b1502ee71 examples/audio: handle errors
Updates #2287
2022-09-09 16:52:03 +09:00
Hajime Hoshi
f7c44f086f replace Ebiten with Ebitengine in comments 2022-08-29 11:17:17 +09:00
Hajime Hoshi
610e9ce14c gofmt -s -w 2022-08-28 00:04:32 +09:00
Terra Brown
de35a5a6f1
ebiten: add Termination for a regular termination (#2272)
Closes #2266
2022-08-27 21:33:40 +09:00
Hajime Hoshi
b858f36d54 remove the dependency on file2byteslice
Specify the version explicitly instead.
2022-08-23 16:34:55 +09:00
Hajime Hoshi
4d03b9fd98 examples/audio: use ebitenutil.DrawCircle
Updates #2250
2022-08-18 15:42:45 +09:00
Hajime Hoshi
bcba362e7e inpututil: add AppendJustReleasedTouchIDs and TouchPreviousPosition
Closes #2057
2022-08-16 02:21:55 +09:00
Hajime Hoshi
e21c881644 examples/paint: refactoring: avoid calling input functions in Draw 2022-08-16 01:06:22 +09:00
Hajime Hoshi
1c548c0641 examples/keyboard: refactoring 2022-08-13 13:37:01 +09:00
Hajime Hoshi
e7c0a121c4 all: remove the build tag 'ebitencbackend'
This also automatically enables 'egl' when 'nintendosdk' is specified.

Updates #2242
2022-08-12 13:15:39 +09:00
Hajime Hoshi
05baee51d2 examples/highdpi: remove an old comment 2022-08-12 00:16:08 +09:00
Hajime Hoshi
094726915b
ebiten: add IsStandardGamepadAxisAvailable and IsStandardGamepadButtonAvailable (#2241)
Closes #2040
2022-08-11 12:35:20 +09:00
Hajime Hoshi
0217ed0544 ebiten: add WritePixels replacing ReplacePixels
Closes #2236
2022-08-08 03:50:27 +09:00
Hajime Hoshi
05dd36ec7b examples/fullscreen: enable to test on mobile browsers
Closes #2060
2022-08-07 19:31:56 +09:00
mattn
2bacecca24
fix typos (#2227) 2022-08-03 22:40:39 +09:00
mattn
3cd0daac67
go generate ./... with Go 1.19 (#2228) 2022-08-03 20:48:02 +09:00
Hajime Hoshi
e41a8be9e4 add tools.go 2022-07-30 02:16:53 +09:00
divVerent
21207f827c
do not require installing file2byteslice to update go generate'd files. (#2221)
The tool is already referenced in go.mod, so it is trivial to just go run it -
that way, go generate can use it without the user explicitly installing it first.
2022-07-29 20:43:23 +09:00
Hajime Hoshi
ca8c36499d ebiten: recommend errors.Is instead of comparing the returned value directly
Closes #2152
2022-07-24 23:25:48 +09:00
Hajime Hoshi
0f52381580 ebiten: rename TPS functions
* SetMaxTPS() -> SetTPS()
* MaxTPS() -> TPS()
* CurrentTPS() -> ActualTPS()
* CurrentFPS() -> ActualFPS()

Closes #2071
2022-07-17 11:30:12 +09:00
Hajime Hoshi
36b7b85477 examples: change the name convention: Num -> Count 2022-07-13 02:02:48 +09:00
Hajime Hoshi
5f17264c74 ebiten: rename Gamepad(Axis|Button)Num -> Gamepad(Axis|Button)Count 2022-07-13 01:27:14 +09:00
Hajime Hoshi
bd72ca971e examples/shader: bug fix: the CRT example crashed 2022-07-09 22:29:59 +09:00
Hajime Hoshi
be356390e0 examples/gamepad: add vibrations 2022-07-09 16:58:54 +09:00
Hajime Hoshi
75e84f6eda audio/mp3, audio/vorbis, audio/wav: add DecodeWithoutResampling
Updates #2055
2022-07-01 01:46:37 +09:00
Hajime Hoshi
4836266c2b examples/tiles: improve readability by calculating tileXNum on the fly 2022-06-10 23:54:45 +09:00
Hajime Hoshi
2c4ac5625b examples/flappy: add GoMain when Windows+Cgo
This is a hack to compile the example with -buildmode=c-archive (.a).

Updates #2084
2022-05-02 22:46:26 +09:00
Hajime Hoshi
b1bcbbeeea ebiten: add comments at DrawTriangles 2022-04-26 23:23:31 +09:00
Julian Merkle
d68f770561
examples/stars: refactor (#2070)
Minor adjustments because of:

* Function abs(int) is unused.
* Color fields are assigned without explicit names
* Color variable shadows the color package name
2022-04-13 18:42:04 +09:00
Hajime Hoshi
8f524b5c23 examples/vibrate: refactoring 2022-04-12 00:11:11 +09:00
Hajime Hoshi
55447679ee examples/vibrate: bug fix: touches didn't work correctly 2022-04-12 00:05:55 +09:00
Hajime Hoshi
699b58c02b examples/flappy: bug fix: touches didn't work
Closes #2067
2022-04-11 10:44:41 +09:00
Hajime Hoshi
b53f93c614 examples/windowclosing: update the message 2022-04-11 01:10:48 +09:00
Hajime Hoshi
e4d6381452 examples/fullscreen: forbid quiting on browsers 2022-04-10 20:04:52 +09:00
Hajime Hoshi
535e64f2bf examples/audioinfiniteloop, examples/audiopanning: avoid resamplings 2022-04-10 19:41:44 +09:00
Hajime Hoshi
a65631bccc examples/spriteshd: remove a call of SetWindowSize 2022-04-10 19:15:39 +09:00
Hajime Hoshi
648c8ed1f9 examples/flappy: use DecodeWithSampleRate instead of Decode 2022-04-10 14:55:48 +09:00
Hajime Hoshi
9b7328442b examples/minify: reorder renderings 2022-04-09 23:27:58 +09:00
Hajime Hoshi
d6fe8ed694 examples/fullscreen: handle F key to enter fullscreen
On browsers, fullscreen requires an explicit user input.
2022-04-09 16:23:23 +09:00
Hajime Hoshi
063960c9bd examples/font: simplify the logic 2022-04-09 16:08:20 +09:00
Hajime Hoshi
d58ef294b2 examples/text: add leading space characters 2022-04-04 00:18:35 +09:00
Hajime Hoshi
7a33837ed7 audio: change the type of SetBufferSize to time.Duration
Updates #2026
2022-03-25 20:47:01 +09:00
Hajime Hoshi
08783542eb audio: add Player.SetBufferSize
This change also adds examples/realtimepcm.

Closes #2026
2022-03-25 19:27:25 +09:00
Bertrand Jung
2453f8f0df
examples/shader: add CRT shader example (#2012)
Closes #2008
2022-03-10 00:02:07 +09:00
divVerent
99aef33970
examples/blur: fix the blur filter example to be a real box blur. (#2000)
Also add a note that this is not how games should implement a blur if avoidable.

Krita's blur and the original blur:
https://rm.cloudns.org/img/uploaded/29c0418f25bf56b802f746d2f269e215.png
The original image and the new blur (Krita's): 
https://rm.cloudns.org/img/uploaded/bd04828baf6c01fcf7301a6672a4c406.png

Note how Ebiten's blur has almost no vertical component.

Note how after the change it looks basically like Krita's.
2022-02-24 03:15:52 +09:00
Hajime Hoshi
2c2c4bc428 ebiten: add WindowResizingModeType and its constants and functions
This allows a new state to disallow resizing the window but allow
making the window fullscreen on macOS by a user.

This change adds the new type WindowResizingModeType. There are
these constants of this type:

 * WindowResizingModeDisabled
 * WindowResizingModeOnlyFullscreenEnabled
 * WindowResizingModeEnabled

Closes #1819
2022-02-11 04:59:04 +09:00
Hajime Hoshi
35b9dd0846 internal/ui: give up SetWindowAspectRatioFixed
Unfortunately, it is almost impossible to provide a consistent behavior
to keep the aspect ratio of the window on Windows. Instead of having an
incomplete API, let's remove this.

Closes #1988
2022-02-10 18:35:00 +09:00
Hajime Hoshi
891ca2a08d ebiten: add IsWindowAspectRatioFixed
This also updates examples/windowsize.

Closes #1804
2022-02-09 20:06:18 +09:00
Hajime Hoshi
7482cae978 internal/ui: bug fix: the aspect ratio must be updated whenever the window size is forcibly updated
This also adds a new flag -aspectratiofixed to examples/windowsize

Updates #1804
2022-02-09 19:56:50 +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
210036a5a5 examples/gamepad: do not get an SDL ID from a disconnected gamepad
The result of ebiten.GamepadSDLID should not be reliable for a
disconnected gamepad.
2022-01-22 21:27:58 +09:00
Elias Daler
12c144070f
internal/uidriver/glfw: fix window float enable/disable (#1962)
Closes #1960
2022-01-17 00:28:25 +09:00
Hajime Hoshi
e687865c8c ebiten: add ColorM.ScaleWithColor
Updates #1944
2022-01-10 17:36:46 +09:00
Hajime Hoshi
245cbc2f4d examples/vibrate: bug fix: compile error
Updates #1452
2022-01-10 16:19:33 +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
583c2cf17e examples/resources: reorder items 2021-12-31 05:30:37 +09:00
Jacob Salmela
e77985139b
examples/resources: bug fix: add a missing item Spritesheet_png (#1924)
the Spritesheet_png was not included with go generate so this adds that in

Signed-off-by: Jacob Salmela <me@jacobsalmela.com>
2021-12-31 05:28:41 +09:00
Hajime Hoshi
13c2d38b97 examples/flappy: add main_cbackend.go 2021-12-30 03:02:11 +09:00
ebiiim
4d988b2457
examples/airship: chore: fix typo (#1907) 2021-12-20 21:54:24 +09:00
Hajime Hoshi
12b5a6c3d6 examples: update README 2021-12-13 11:55:08 +09:00
Hajime Hoshi
39ef252c2e
ebiten: Add VibrationOptions to specify intensity (#1891)
Updates #1452
2021-12-04 22:14:02 +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
732b125349 text: Add AppendGlyphs and Glyphs
Closes #1767
Closes #1871
2021-11-12 02:31:53 +09:00
wasedaigo
851733397e
examples/audioinfiniteloop: Use const to represent bytePerSample (#1867)
Co-authored-by: wasedaigo <daigo@odencat.com>
2021-11-08 15:52:53 +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
7c6f2fd799 ebiten: Vibrate takes time durations instead of the options
Android and browsers can specify only a time duration for vibration.

VibrateOptions is renamed to GamepadVibrateOptions for gamepads.

Updates #1452
2021-10-24 05:02:49 +09:00