Hajime Hoshi
e2f0878a4c
internal/ui: refactoring: remove sizeChanged
...
It is safe to call Layout every frame.
2022-02-14 02:17:52 +09:00
Hajime Hoshi
fcd4453e4f
ebiten: remove RunOnMainThread
...
Unfortunately, there are several issues in RunOnMainThread:
* RunOnMainThread cannot be portable: It is impossible to implement this
correctly on mobiles.
* RunOnMainThread doesn't make sense on mobiles: the rendering works on
a different thread (goroutine) on mobiles.
* RunOnMainThread can cause deadlocks very easily.
Until we find a better solution, let's remove this.
Closes #1945
2022-02-14 01:49:42 +09:00
Hajime Hoshi
e09c1bf8f1
internal/ui: refactoring: remove an error value from runOnAnotherThreadFromMainThread
2022-02-14 00:55:58 +09:00
Hajime Hoshi
ce3f83958e
internal/graphicscommand: rename RunOnMainThread -> RunOnRenderingThread
2022-02-14 00:20:49 +09:00
Hajime Hoshi
b695cb928a
internal/ui: remove RunWithoutMainLoop in non-mobile environments
2022-02-13 22:31:48 +09:00
Hajime Hoshi
82b9f7dc56
ebiten: refactoring: remove setScreenClearedEveryFrame
2022-02-13 20:40:46 +09:00
Hajime Hoshi
0c1c40995c
internal/ui: rename types and members: uiContext -> gameForUI
2022-02-13 20:20:46 +09:00
Hajime Hoshi
29382b424b
internal/ui: refactoring: remove some exposed functions
2022-02-13 20:09:13 +09:00
Hajime Hoshi
08defeeded
internal/ui: move more logics to internal/ui
2022-02-13 20:02:49 +09:00
Hajime Hoshi
9b2f0b6c56
internal/ui: rename ResetForFrame -> ResetForTick
...
Resetting happens every tick, not every frame.
2022-02-13 19:54:40 +09:00
Hajime Hoshi
a2cb9fda82
internal/ui: make adjustPosition concurrent-safe
2022-02-13 19:52:39 +09:00
Hajime Hoshi
31aa01131d
ebiten: refactoring: reduce call of ui.Get()
2022-02-13 19:40:48 +09:00
Hajime Hoshi
6a8e45e6c1
internal/ui: refactoring: simplify ResetForFrame
...
Updating the layout is already done every frame, so doing this in
ResetForFrame is not needed.
Updates #490
2022-02-13 19:31:35 +09:00
Hajime Hoshi
7b164882fc
internal/ui: refactoring: move AdjustPosition to the package internal/ui
2022-02-13 19:14:29 +09:00
Hajime Hoshi
08ae7006ef
internal/ui: refactoring: move some logics to internal/ui
2022-02-13 19:02:59 +09:00
Hajime Hoshi
2609d73a1a
internal/ui: refactoring: move some logics to internal/ui
2022-02-13 18:01:18 +09:00
Hajime Hoshi
b282b1805b
internal/ui: refactoring: add ui.SetError
...
This is a preparation to move uiContext to the package internal/ui.
2022-02-13 17:17:08 +09:00
Hajime Hoshi
ab1ad2c72f
.github/workflow: add a test to build with the build tag ebitencbackend
2022-02-13 16:57:48 +09:00
Hajime Hoshi
73d995740f
internal/ui: bug fix: compile error with ebitencbackend
2022-02-13 16:48:30 +09:00
Hajime Hoshi
e9cfbc1630
internal/ui: refactoring: remove Graphics()
2022-02-13 04:17:39 +09:00
Hajime Hoshi
1c57393393
internal/graphicsdriver/metal: refactoring
2022-02-13 01:00:20 +09:00
Hajime Hoshi
5f59807284
internal/gamepad: refactoring
2022-02-12 03:49:09 +09:00
Hajime Hoshi
ab5daa0f90
internal/ui: separate graphics_ios.go to each archtecture
...
This change removes the support of 32bit iOS. 32bit iOS is no longer
supported by Go 1.15.
2022-02-12 02:14:32 +09:00
Hajime Hoshi
162f62f54e
internal/graphicsdriver/metal/mtl: bug fix: test compile error
2022-02-11 23:23:22 +09:00
Hajime Hoshi
176e984a58
internal/ui: refactoring: remove dependency on the package mtl
2022-02-11 23:11:49 +09:00
Hajime Hoshi
6f3c6d6c1b
internal/graphicsdriver/meta: rename function
2022-02-11 22:47:13 +09:00
Hajime Hoshi
cc4e2f08be
internal/graphicsdriver/metal: rename files
2022-02-11 21:49:05 +09:00
Hajime Hoshi
76848f48e6
internal/ui: simplify build tags
2022-02-11 20:47:14 +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
f1987cae10
internal/ui: refactoring
2022-02-10 19:35:51 +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
0291986658
internal/ui: bug fix: make the window resizable after the window is created
...
Making the window resizable BEFORE the window is created doesn't
work correctly, especially when switching to enable resizing later.
Closes #1987
2022-02-10 00:53:22 +09:00
Hajime Hoshi
5899470511
internal/ui: enable vsync even when resizing the window
...
Now I couldn't see the issue. Probably the implementation of
internal/graphicsdriver/metal has changed since the last fix, but
I am not sure.
Updates #1740
Closes #1954
2022-02-09 23:59:38 +09:00
Hajime Hoshi
edca32e520
internal/ui: bug fix: do not set the minimum window width for macOS
...
Shrinking a window size by a cursor sometimes makes a smaller window
than 126px. To avoid such flaky behavior, do not set the limitation of
the minimum window width.
On Linux/UNIX, there should not be reasons to limit the window width.
Updates #165
2022-02-09 23:30:26 +09:00
Hajime Hoshi
ad675640b1
internal/ui: bug fix: the aspect ratio should update the window size limits
...
Updates #1804
2022-02-09 23:18:41 +09:00
Hajime Hoshi
f2da62a175
internal/ui: refactoring
2022-02-09 22:22:14 +09:00
Hajime Hoshi
57c123a412
internal/ui: add comments
...
Updates #1804
2022-02-09 22:16:31 +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
740dfd5aed
internal/glfw: refactoring: keep the original API when possible
...
Updates #1804
2022-02-09 19:36:47 +09:00
Hajime Hoshi
623c050537
ebiten: rename SetKeepWindowAspectRatio -> SetWindowAspectRatioFixed
...
Updates #1804
2022-02-09 19:29:55 +09:00
Tom Lister
18659ef4ab
internal/ui: add SetWindowKeepAspectRatio ( #1985 )
...
Updates #1804
2022-02-09 19:11:25 +09:00
Hajime Hoshi
180eb483bb
internal/ui: make currentMonitor return initMonitor when the window is not initialized yet
2022-02-09 00:26:49 +09:00
Hajime Hoshi
b2872f216a
internal/ui: update comments
...
Updates #1575
2022-02-08 20:27:46 +09:00
Hajime Hoshi
cd2ef6771a
internal/ui: bug fix: a wrong monitor was used at setWindowPositionInDIP
2022-02-08 20:20:36 +09:00
Hajime Hoshi
9f581327fa
intetrnal/ui: remove recreating a window after the fullscreen mode
...
As macOS's fullscreen is a native fullscreen, this hack is no longer
needed.
Updates #1004
2022-02-08 19:41:09 +09:00
Hajime Hoshi
f8097eb45d
internal/ui: give an initial window size at createWindow
...
This enables to skip setWindowSizeInDIPImpl in most cases.
Updates #1651
Updates #1914
2022-02-08 19:36:30 +09:00
Hajime Hoshi
320e7037f6
internal/ui: update comments
2022-02-08 19:23:38 +09:00
Hajime Hoshi
6dbc5ba558
internal/ui: refactoring: call updateWindowSizeLimits in createWindow
2022-02-08 16:06:12 +09:00
Hajime Hoshi
4c6c31e384
all: reorder build tags in an alphabetical order
2022-02-08 15:49:15 +09:00
Hajime Hoshi
9c8b4db81f
internal/ui: separate 'vibrate' part to internal/vibrate
2022-02-08 14:48:55 +09:00
Hajime Hoshi
d2d3673bd2
internal/ui: remove a redundant call of SetTitle
2022-02-08 04:30:58 +09:00
Hajime Hoshi
2fc09c7fcb
internal/ui: use the cursor position to choose the initial monitor for Linux/UNIX
...
Updates #1918
Closes #1982
2022-02-08 03:20:45 +09:00
Hajime Hoshi
294ee43716
internal/ui: remove a special logic for UNIX
...
The issue #1118 can no longer be reproduced.
Updates #1118
Updates #1982
2022-02-08 01:29:22 +09:00
Hajime Hoshi
cb4085277b
internal/ui: bug fix: adjust the window position correctly
...
Updates #1982
2022-02-07 23:52:16 +09:00
Hajime Hoshi
ed04021151
internal/ui: use the cursor position to choose the initial monitor for Windows
...
Updates #1918
Updates #1982
2022-02-07 23:31:46 +09:00
Hajime Hoshi
cafb71719c
internal/ui: use the cursor position to choose the initial monitor
...
Updates #1982
2022-02-07 22:37:10 +09:00
Hajime Hoshi
126dc81a96
internal/ui: add a comment
2022-02-07 00:51:48 +09:00
Hajime Hoshi
b78160262c
internal/ui: rename files
2022-02-07 00:37:32 +09:00
Hajime Hoshi
f18aef2b08
ebiten: refactoring: move the caller of SetGraphicsDriver to the package ui
2022-02-06 22:01:25 +09:00
Hajime Hoshi
df60c4c92d
internal/driver: rename to internal/graphicsdriver
2022-02-06 20:41:32 +09:00
Hajime Hoshi
52f4c409ac
internal/ui: refactoring: make Graphics a global function
2022-02-06 20:29:49 +09:00
Hajime Hoshi
0f09ddfbd2
internal/driver: remove Window
...
Closes #1983
2022-02-06 20:12:40 +09:00
Hajime Hoshi
80c03792cb
internal/driver: move the key definitions to internal/ui
...
Updates #1983
2022-02-06 19:14:18 +09:00
Hajime Hoshi
887a3ff749
internal/cbackend: bug fix: compile error again
2022-02-06 19:07:17 +09:00
Hajime Hoshi
0eecab8278
internal/cbackend: bug fix: compile error
2022-02-06 18:59:21 +09:00
Hajime Hoshi
3b7b66170f
internal/driver: remove an unused type Modifier
2022-02-06 18:49:33 +09:00
Hajime Hoshi
2fbfa5444b
internal/driver: remove Input
2022-02-06 18:34:31 +09:00
Hajime Hoshi
6f72b15912
internal/driver: move some definitions to internal/ui
...
Updates #1983
2022-02-06 18:13:45 +09:00
Hajime Hoshi
149736c3cf
internal/uidriver/*: integrate the packages into internal/ui
...
Updates #1983
2022-02-06 17:23:04 +09:00
Hajime Hoshi
67bb58849e
internal/uidriver/mobile: add build tags
2022-02-06 15:59:05 +09:00
Hajime Hoshi
12a70952a9
internal/glfw: remove an unreached code
2022-02-06 05:24:25 +09:00
Hajime Hoshi
93b2a0756b
internal/gamepaddb: allow the standard layout mapping for any platforms
...
Closes #1957
2022-02-06 03:38:02 +09:00
Hajime Hoshi
19bfc97a5e
mobile/ebitenmobileview: bug fix: compile error
2022-02-05 23:26:44 +09:00
Hajime Hoshi
2b902bacd9
internal/driver: remove an unused file
2022-02-05 23:14:00 +09:00
Hajime Hoshi
67663795fd
internal/gamepaddb: move driver.StandardGamepadButton to gamepaddb.StandardButton
2022-02-05 23:11:09 +09:00
Hajime Hoshi
627509e974
internal/gamepad: move driver.GamepadButton to gamepad.Button
2022-02-05 23:03:30 +09:00
Hajime Hoshi
1bee10f999
internal/gamepad: move constants from internal/driver
2022-02-05 22:42:14 +09:00
Hajime Hoshi
3bdd8097b5
internal/uidriver: refactoring: remove the gamepad part
...
Use the gamepad package instead.
2022-02-05 22:32:31 +09:00
Hajime Hoshi
e6e0c6d850
internal/uidriver/glfw: refactoring
2022-02-05 21:52:06 +09:00
Hajime Hoshi
bf1cb035eb
internal/gamepad: port the gamepad part for c-backend
2022-02-05 19:11:57 +09:00
Hajime Hoshi
5443fc312a
internal/uidriver/cbackend: add a new file
2022-02-05 18:00:32 +09:00
Hajime Hoshi
3470caf5b1
internal/uidriver/cbackend: refactoring: separate the gamepad part
2022-02-05 17:59:27 +09:00
Hajime Hoshi
1570c506ae
internal/gamepad: port the implementation for Android
2022-02-05 17:27:24 +09:00
Hajime Hoshi
8d9937801b
internal/gamepad: refactoring
2022-02-05 02:11:24 +09:00
Hajime Hoshi
d0e8efca33
internal/gamepad: port the implementation for Android
2022-02-04 23:23:22 +09:00
Hajime Hoshi
ee1b5e2044
internal/uidriver/mobile: stop requesting a frame on gamepads
...
In general, it is impossible to treat gamepad inputtings as events.
With FPSModeVsyncOffMinimum, the application cannot update with
gamepad inputtings.
2022-02-04 22:46:41 +09:00
Hajime Hoshi
577b4eed0d
internal/uidriver/mobile: separate the gamepad part
2022-02-04 14:54:20 +09:00
Hajime Hoshi
f6d8f42c36
internal/gamepad: refactoring: use unix.InotifyEvent
2022-02-04 04:59:40 +09:00
Hajime Hoshi
ef45058037
internal/gamepad: implement for Linux
...
Updates #1452
2022-02-04 04:26:33 +09:00
Hajime Hoshi
d2afbd43cc
internal/gamepaddb, mobile/ebitenmobileview: refactoring
2022-02-03 04:35:55 +09:00
Hajime Hoshi
e1c65d395c
internal/uidriver/glfw: add a comment
...
Updates #1982
2022-02-03 01:41:09 +09:00
Hajime Hoshi
9999b65261
internal/uidriver/glfw: bug fix: a callback must be registered at createWindow
2022-02-03 01:00:24 +09:00
Hajime Hoshi
80f178b5e8
internal/uidriver/glfw: initialize the callback at init
2022-02-03 00:31:49 +09:00
Hajime Hoshi
a19bbd3b09
internal/uidriver/glfw: use shoten sleeping time at waitForFramebufferSizeCallback
...
Updates #1918
2022-02-03 00:28:14 +09:00
Hajime Hoshi
85bebece04
internal/uidriver/js: bug fix: compile error
2022-02-02 02:27:08 +09:00
Hajime Hoshi
f3f8f6177c
internal/gamepad: add gamepad_null.go
2022-02-02 02:18:02 +09:00
Hajime Hoshi
ea39fca10c
internal/gamepad: rename functions *Num -> *Count
2022-02-02 02:01:46 +09:00
Hajime Hoshi
a8576008f0
internal/gamepads: refactoring: remove a struct member
2022-02-02 00:32:29 +09:00
Hajime Hoshi
96ddec1753
internal/gamepad: refactoring reorder implementations for consistency
2022-02-01 13:54:33 +09:00