Commit Graph

886 Commits

Author SHA1 Message Date
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
Hajime Hoshi
b8a5ea7bd6 ebiten: Add Vibrate and VibrateOptions, and implement this on browsers
Updates #1452
2021-10-24 01:05:33 +09:00
r3vit
57c45a13e4
Remove dot imports from tests - Remove dot imports (#1837)
Closes #1824
2021-10-02 19:58:48 +09:00
Hajime Hoshi
3c8c17eace examples/isometric: Recreate the offscreen when the screen size changes 2021-10-02 13:00:33 +09:00
Hajime Hoshi
0f363615b7 examples/isometric: Update the comment 2021-10-02 12:57:33 +09:00
Hajime Hoshi
291f5b89b8 examples/isometrics: Use an offscreen for a better result 2021-10-02 12:53:49 +09:00
Hajime Hoshi
84f2571ee1 examples/isometric: Refactoring 2021-10-02 09:28:18 +09:00
Hajime Hoshi
b78aef480e examples/isometric: Refactoring 2021-10-01 11:51:25 +09:00
Hajime Hoshi
2f33366f5f examples/isometric: Simplify the logic 2021-10-01 11:42:31 +09:00
Hajime Hoshi
f3318a2cec examples/isometric: Do not create an ebiten.Image every frame 2021-10-01 11:36:38 +09:00
Hajime Hoshi
234a3d8d2a examples/isometric: Remove unused variables 2021-10-01 11:15:52 +09:00
Trevor Slocum
1019e15ccd
Add isometric demo (#1823)
Based on a prototype by Justin Cichra (@jrcichra).

Closes #1112
2021-10-01 11:10:48 +09:00
Hajime Hoshi
52d917eff0 go generate 2021-09-25 03:45:17 +09:00
Hajime Hoshi
0d673a68ab examples/blocks/blocks: Support standard gamepad axes 2021-09-24 23:35:01 +09:00
Hajime Hoshi
159bc8dda1 examples/stars: Reduce the window size 2021-09-24 01:55:18 +09:00
Hajime Hoshi
2b6debf960 examples/windowsize: Bug fix: Wrong comment 2021-09-23 21:40:10 +09:00
Hajime Hoshi
f00bdc99f7 examples: Change the sample rate to 48000
Closes #1649
2021-09-23 01:36:00 +09:00
Hajime Hoshi
07c8cb0e23 examples: Misspelling (//go:generated -> //go:generate) 2021-09-20 15:23:43 +09:00
Hajime Hoshi
537bdb29f8 examples: Update comments 2021-09-20 15:16:09 +09:00
Hajime Hoshi
39dc58658f examples/windowsize: Add -autorestore
Closes #1610
2021-09-19 17:50:55 +09:00
Hajime Hoshi
69300f0c4e examples/windowsize: Rename -screentransparent -> -transparent 2021-09-19 17:49:03 +09:00
Hajime Hoshi
42cd923418 ebiten: Add FillRule
Closes #1715
2021-09-19 17:17:00 +09:00
Hajime Hoshi
4509f2aee4 text: Add FaceWithLineHeight
Closes #1760
2021-09-12 22:56:14 +09:00
Hajime Hoshi
82c41cea39 examples/gamepad: Fix the layout 2021-09-12 21:09:13 +09:00
Hajime Hoshi
ea12ede127 ebiten: Add StandardGamepadButtonValue
Closes #1721
2021-09-12 21:00:48 +09:00
Trevor Slocum
ffe9a6f72d
Minor style fixes (early returns) (#1792) 2021-09-04 00:22:37 +09:00
Hajime Hoshi
d967f0a591 examples/sprites: Make the window resizable 2021-08-08 15:31:49 +09:00
Hajime Hoshi
14f0fbf844 examples/windowsize: Reset TPS when resetting the Vsync mode 2021-08-05 03:01:11 +09:00
Hajime Hoshi
852c787743 examples/flappy: Bug fix: an audio context was created multiple times
Closes #1739
2021-08-04 14:54:06 +09:00
Hajime Hoshi
656d9dccc0 text: Add DrawWithOptions
Closes #1461
2021-07-27 17:36:21 +09:00
Hajime Hoshi
1706d9436a ebiten: Add FPSModeType, FPSMode, SetFPSMode, and ScheduleFrame
This change adds these APIs:

  * type FPSModeType
  * func FPSMode
  * func SetFPSMode
  * func ScheduleFrame

and deprecates these APIs:

  * func SetVsyncEnabled
  * func IsVsyncEnabled

Closes #1556
2021-07-24 16:09:13 +09:00
Hajime Hoshi
c28bcc26fc internal/clock: Rename UncappedTPS -> SyncWithFPS
Closes #1726
2021-07-22 22:46:24 +09:00
Hajime Hoshi
92bc5c1908 audio: Add (*Context).NewPlayer and (*Context).NewPlayerFromBytes
Closes #1708
2021-07-22 16:41:04 +09:00
Hajime Hoshi
1dc8002689 examples: Reduce global variables
Closes #1669
2021-07-22 01:38:55 +09:00
Hajime Hoshi
c54418c3e4 examples/flappy: Use A/B buttons for the standard gamepad layout
Also this change limits the available keys.
2021-07-20 20:53:19 +09:00
Hajime Hoshi
984275d0a0 examples/blocks: Skip the gamepad configuration if a standard layout is available 2021-07-20 03:48:01 +09:00
Hajime Hoshi
d32b58d050 examples/blocks/blocks: Unify the terms 'abstract' and 'virtual' 2021-07-20 03:02:37 +09:00
Hajime Hoshi
f192971080 ebiten: Rename HasGamepadStandardLayoutMapping -> IsStandardGamepadLayoutAvailable
Updates #1557
2021-07-20 02:46:12 +09:00
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
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
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
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
30e3047d29 examples/typewriter: Fix comments 2021-07-10 04:38:26 +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
b466a0cbd7 ebiten: Add EvenOdd to DrawTrianglesOptions and DrawShaderTrianglesOptions
Updates #844
Closes #1684
2021-07-05 03:35:55 +09:00
Hajime Hoshi
8ff42f55a1 internal/graphicsdriver/opengl: Give up restorign on browsers
Using restorable images is expensive as this sometimes requires to
load pixels from GPU. On browsers, just reloading the application
should be fine when the context lost happens.

Closes #1603
2021-06-26 16:54:21 +09:00
Hiroki KUMAZAKI
eb5fde74af
examples: Add an example "stars" (#1679) 2021-06-24 22:50:47 +09:00
Hajime Hoshi
a615be69c7 examples: Add //go:build 2021-06-24 21:49:37 +09:00
Hajime Hoshi
bd13e96727 examples/noise: Show FPS 2021-06-24 12:06:59 +09:00
Hajime Hoshi
49c3c30c79 ebiten: Add IsWindowBeingClosed / SetWindowClosingHandled / IsWindowClosingHandled
IsWindowBeingClosed reports whether the window is being closed by
the user.

SetWindowClosingHandled sets whether the window closing is handled
or not. If the state is true, the window is not closed immediately
by the user and the game can handle the closing state. In this case,
the Update function should return an error in order to end the game.

This change also adds examples/windowclosing.

Closes #1574
2021-06-14 02:29:11 +09:00
Hajime Hoshi
b54ad73a2b Add go:build comments with go1.17beta1 fmt 2021-06-11 01:11:46 +09:00
Hajime Hoshi
95a98950b8 examples/resources: Unify jab.wav to 48000 Hz
Updates #1649
2021-05-25 22:32:50 +09:00
Hajime Hoshi
ac526b1b83 examples/wav: Use 48000 Hz
Updates #1649
2021-05-25 22:09:48 +09:00
Hajime Hoshi
0247261d34 examples/flappy: Change the sample rate to 48000 2021-05-23 22:04:41 +09:00