Commit Graph

6763 Commits

Author SHA1 Message Date
Hajime Hoshi
51f83b1527 inpututil: Add APIs for the standard gamepad layout
This change adds these APIs to inpututil:

  * IsStandardGamepadButtonJustPressed
  * IsStandardGamepadButtonJustReleased
  * StandardGamepadButtonPressDuration

Closes #1557
2021-07-20 02:37:12 +09:00
Hajime Hoshi
aa694be6f6 ebiten: Add the standard gamepad layout
This change introduces the standard gamepad layout. This changes adds
these APIs:

  * func HasGamepadStandardLayoutMapping
  * func IsGamepadStandardButtonPressed
  * func GamepadStandardAxisValue
  * type StandardGamepadButton
  * type StandardGamepadAxis

The standard gamepad layout is based on the web standard. See
https://www.w3.org/TR/gamepad/#remapping.

On desktops, the SDL's gamecontrllerdb.txt is used. If the gamepad is
listed in the text file, the mapping works. GLFW's mapping featrue is
not used.

On browsers, the property of a gamepad 'mapping' is used. When the
mapping value is 'standard', the gamepad is recognized to have the
standard mapping.

On mobiles, the implementation is still WIP.

Updates #1557
2021-07-20 01:32:28 +09:00
Hajime Hoshi
f882dbda77 ebiten: Fix comments 2021-07-20 01:12:17 +09:00
Hajime Hoshi
fcfdf9b2ba Update URLs 2021-07-19 23:09:27 +09:00
Hajime Hoshi
f305a04453 cmd/ebitenmobile: Update URLs 2021-07-19 23:00:41 +09:00
Hajime Hoshi
a6fe7801ff internal/uidriver/glfw: Rename gamePad -> gamepad 2021-07-19 22:25:43 +09:00
Hajime Hoshi
6b949cede8 examples/gamepad: Always show signs for axis values 2021-07-19 02:19:42 +09:00
Hajime Hoshi
700052519c examples: Use GamepadAxisValue
Updates #1719
2021-07-19 01:31:20 +09:00
Hajime Hoshi
dbcb220742 ebiten: Add GamepadAxisValue replacing GamepadAxis
Updates #1718
Closes #1719
2021-07-19 01:22:35 +09:00
Hajime Hoshi
bd5cc145df ebiten: Refactoring: Use aliases for GamepadButton and MouseButton 2021-07-19 00:57:35 +09:00
Hajime Hoshi
af150ad67b examples/gamepad: Show SDL ID on the terminal 2021-07-18 15:41:20 +09:00
Hajime Hoshi
a9241a45c6 vector: Add Dir
Updates #844
2021-07-17 16:42:14 +09:00
Hajime Hoshi
70ef5e7d5b vector: Add Arc
Updates #844
2021-07-17 01:34:06 +09:00
Hajime Hoshi
873bb35587 vector: Add ArcTo
Updates #844
2021-07-16 22:52:32 +09:00
Hajime Hoshi
cea0aa72cb vector: Rename AppendVerticesAndIndices to AppendVerticesAndIndicesForFilling
Updates #844
2021-07-16 17:20:09 +09:00
Hajime Hoshi
e24eecd4a6 vector: Improve the quality of QuadTo and CubicTo
Updates #844
2021-07-16 17:11:38 +09:00
Hajime Hoshi
01d6fd3c72 cmd/ebitenmobile: Update gomobile 2021-07-16 15:16:40 +09:00
Hajime Hoshi
342bf6ae7e Update GLFW: suppress joystick issue at PollEvents
Updates #1229
2021-07-15 11:19:39 +09:00
Hajime Hoshi
ec5b034cbf Update GLFW: suppress joystick issue (again)
Updates #1229
2021-07-15 01:02:57 +09:00
Hajime Hoshi
66dbca7fdd Update GLFW: suppress joystick issue
Updates #1229
2021-07-14 23:54:48 +09:00
Hajime Hoshi
9e024dc337 vector: Rename arguments 2021-07-14 23:25:59 +09:00
Hajime Hoshi
50d2d7ed61 internal/graphicsdriver/opengl: Remove unused code using PBO
Updates #1678
2021-07-14 21:51:27 +09:00
Hajime Hoshi
b249fe889d Update Go to 1.17.0-rc1 for testing 2021-07-14 12:55:19 +09:00
Hajime Hoshi
7417eb677f Update Go versions on GitHub actions 2021-07-13 08:01:31 +09:00
Hajime Hoshi
5c4885c988 inpututil: Add AppendJustConnectedTouchIDs
Closes #1705
2021-07-10 23:30:04 +09:00
Hajime Hoshi
e8ea4046cb inpututil: Add AppendJustConnectedGamepadIDs
Updates #1705
2021-07-10 22:32:19 +09:00
Hajime Hoshi
a79c287bb7 inpututil: Add AppendPressedKeys
Updates #1705
2021-07-10 22:18:15 +09:00
Hajime Hoshi
502455f5b2 audio: Bug fix: Deadlock in ensurePlayer
Updates #1709
2021-07-10 19:52:15 +09:00
Hajime Hoshi
1e3df9f391 audio: Bug fix: readerdriver.NewContext might be called multiple times
Updates #1709
2021-07-10 19:50:48 +09:00
Hajime Hoshi
4b7064ac58 audio: Bug fix: Do not create players every call of IsReady
Close #1709
2021-07-10 19:21:32 +09:00
Hajime Hoshi
6d0ffeb7d8 cmd/ebitenmobile: Update gomobile (again) 2021-07-10 16:16:32 +09:00
Hajime Hoshi
679fb70092 cmd/ebitenmobile: Update gomobile 2021-07-10 16:14:43 +09:00
Hajime Hoshi
30e3047d29 examples/typewriter: Fix comments 2021-07-10 04:38:26 +09:00
Hajime Hoshi
6bc22d4587 Unify 'deprecated' comment formats 2021-07-10 03:19:23 +09:00
Hajime Hoshi
431cd33839 ebiten: Add AppendInputChars, AppendGamepadIDs, and AppendTouchIDs
These functions reduce unnecessary allocations of arrays.

Closes #1692
2021-07-10 03:03:24 +09:00
Hajime Hoshi
99a6b1b03e internal/driver: Change some functions to Append*
Updates #1692
2021-07-10 01:52:21 +09:00
Hajime Hoshi
5d2c8ad9be internal/uidriver/mobile: Bug fix: Use mutex at RuneBuffers 2021-07-10 01:39:32 +09:00
Hajime Hoshi
26bb1b5f31 ebiten: Refactoring: Stop using TouchIDs in TouchPosition 2021-07-10 01:38:54 +09:00
Hajime Hoshi
853c1f2b92 internal/shaderir/glsl: Bug fix: Remove uncalled functions
Some built-in functions like dFdx is not available in a vertex shader,
then a function that calls such built-in function should not be in
a vertex shader.

Closes #1701
2021-07-09 20:22:40 +09:00
Hajime Hoshi
b0106e95b9 internal/restorable: Bug fix: Test failed on macOS (Metal) 2021-07-09 20:21:04 +09:00
Hajime Hoshi
17869143c0 audio/internal/readerdriver: Do mixing on Ebiten side
Creating a new AudioQueue is more expensive than expected, and
this caused a little blocking the game when playing a lot of SEs.

Closes #1702
Updates #1680
2021-07-08 23:11:05 +09:00
Hajime Hoshi
4573883b03 internal/graphicsdriver/metal: Make FPS stable by 'presentsWithTransaction'
Closes #1196
2021-07-08 18:11:19 +09:00
Hajime Hoshi
ae0e30196b internal/graphicsdriver/metal: Bug fix: The store action must always be 'store'
Closes #1700
2021-07-08 17:39:37 +09:00
Hajime Hoshi
337d8d5113 internal/graphicsdriver/metal: Separate GCing the buffers
Updates #1196
2021-07-08 02:10:26 +09:00
Hajime Hoshi
edc2f8b961 internal/graphicsdriver/metal: Delay to get a texture for nextDrawable
See https://developer.apple.com/documentation/quartzcore/cametallayer

> To avoid stalls in your app, request a new drawable only when you
> need it, and release any references to it as quickly as possible
> after you’re done with it.

Updates #1196
2021-07-08 01:56:14 +09:00
Hajime Hoshi
b314b6b9b6 Revert "internal/graphicsdriver/metal: Do not retain MTLCommandBuffer for MTLBuffer"
This reverts commit e0fbfc2bb0.

Reason: Rendering issue

Closes #1699
2021-07-08 00:27:33 +09:00
Hajime Hoshi
6213c17abc internal/driver: Add Graphics.Initialize 2021-07-07 13:58:42 +09:00
Hajime Hoshi
519363930a internal/uidriver/glfw: Bug fix: Memory leak in Objective-C code
Use an autorelease pool block.

Closes #1698
2021-07-07 04:34:21 +09:00
Hajime Hoshi
e0fbfc2bb0 internal/graphicsdriver/metal: Do not retain MTLCommandBuffer for MTLBuffer
Before this change, a command buffer is retained indirectly by
a buffer, and this might extend the life of drawable unexpectedly.

This change stops using command buffers as a key of the buffers pool,
and use a counter increated by nextDrawable calls.

Updates #1196
2021-07-07 02:52:04 +09:00
Hajime Hoshi
80ac0646d5 internal/graphicsdriver/metal: Optimize the screen writing 2021-07-07 02:07:09 +09:00