Hajime Hoshi
34941ca083
all: separate the rendering thread from the main thread
...
Updates #1704
Closes #2512
2022-12-30 22:57:34 +09:00
Hajime Hoshi
0fc21470e2
internal/ui: move some context-dependent processes to updateFrameImpl
...
This is a preparation to introduce an independent thread for rendering.
Updates #2512
2022-12-30 22:06:36 +09:00
Hajime Hoshi
b9fb4e9f50
internal/ui: remove an unnecessary hack for macOS
...
Now macOS always uses the native fullscreen even for a transparent
window, we no longer need a hack to call SwapBuffers explicitly.
Updates #1004
2022-12-30 16:25:05 +09:00
Hajime Hoshi
0a03df297b
internal/ui: make it explicit to call swapBuffers only w/ OpenGL
2022-12-30 15:44:01 +09:00
Hajime Hoshi
0e137e8dd7
internal/ui: bug fix: compile error on mobiles
2022-12-30 15:44:01 +09:00
Hajime Hoshi
8902d95b2d
internal/ui: remove unused function runOnAnotherThreadFromMainThread
2022-12-30 13:52:05 +09:00
Hajime Hoshi
e1992347b7
internal/graphicscommand: rename SetRenderingThread -> SetRenderThread
2022-12-30 13:51:32 +09:00
Hajime Hoshi
fa4916d063
internal/ui: refactoring
2022-12-30 13:28:00 +09:00
Hajime Hoshi
3f753b7086
internal/ui: refactoring: remove unnecessary hack for unfocusing
...
The sleeping for an unfocused state also happens in (*userInterfaceImpl).update().
Updates #982
Updates #987
2022-12-30 00:41:46 +09:00
Hajime Hoshi
7e7deeab22
internal/ui: bug fix: SetWindowIcon crashed in the single-thread mode
...
Updates #1468
Closes #2513
2022-12-30 00:01:11 +09:00
Hajime Hoshi
b597ed1e27
internal/ui: remove unnecessary swapBuffer call
...
This was introduced at 9e161864f6
, the
background is now unclear. Things work even without this hack.
Updates #157
Updates #158
2022-12-29 21:48:37 +09:00
Hajime Hoshi
42c08698fb
internal/ui: give up re-rendering on resizing the window
...
It seems difficult to implement this correctly as long as the rendering
thread is the same as the main thread.
Closes #2144
Updates #2512
2022-12-29 21:27:44 +09:00
Hajime Hoshi
dd853050e9
internal/ui: refactoring
2022-12-29 21:09:30 +09:00
Hajime Hoshi
4d89b5de07
internal/ui: refactoring
2022-12-29 20:47:32 +09:00
Hajime Hoshi
e5b9569142
internal/ui: bug fix: the env variable should be used only when the library is not specified
...
Updates #2378
2022-12-29 15:44:55 +09:00
Hajime Hoshi
8d020ad414
internal/graphicsdriver/metal: refactoring
2022-12-29 15:27:51 +09:00
Hajime Hoshi
5e17791e4e
internal/ui: bug fix: an offscreen was broken with SetScreenClearedEveryFrame(false)
...
Updates #2500
Closes #2510
2022-12-29 14:57:07 +09:00
Hajime Hoshi
cba6905c57
internal/glfwwin: bug fix: MapVirtualKeyW is not defined on Xbox
2022-12-29 00:53:03 +09:00
Hajime Hoshi
7736161d8d
update Oto (bug fix: strange sounds when volume is 0)
2022-12-29 00:02:47 +09:00
Hajime Hoshi
0756be0b68
cmd/ebitenmobile: use an independent thread for rendering on iOS
...
Closes #2508
2022-12-28 23:37:13 +09:00
Hajime Hoshi
c638727759
internal/thread: remove Stop and use context.Context instead
2022-12-28 17:11:55 +09:00
Hajime Hoshi
01eb1a0bca
internal/ui: refactoring
2022-12-28 16:44:22 +09:00
Hajime Hoshi
e9248c6f33
internal/ui: rename t -> mainThread
2022-12-28 15:59:53 +09:00
Hajime Hoshi
089ba9ee20
internal/thread: update comments
2022-12-28 14:46:54 +09:00
Hajime Hoshi
ece60af1b7
internal/graphicsdriver/metal: stop using presentsWithTransaction
...
presentsWithTransaction caused many troubles. The critical thing was
that nextDrawable sometimes took more than one second when a user
inputs with NSTextView.
Fortunately, applications work well even without presentsWithTransaction.
Updates #1029
Updates #1196
Updates #1745
Updates #1974
2022-12-27 19:00:56 +09:00
Hajime Hoshi
5e7ec81f5c
internal/ui: rename functions
2022-12-27 12:54:01 +09:00
Hajime Hoshi
41a68bf17b
internal/ui: remove unused functions
2022-12-26 22:43:20 +09:00
Hajime Hoshi
0c072894b5
internal/microsoftgdk: improve forward compatibility
2022-12-25 22:00:22 +09:00
Hajime Hoshi
8b588587cc
internal/graphicsdriver/directx: do not cache a vertex shader when an error occurs
2022-12-25 04:27:15 +09:00
Hajime Hoshi
dd7e125d9c
ebiten: add KeyName for desktops and browsers
...
Updates #1904
2022-12-25 03:37:29 +09:00
Hajime Hoshi
e6346c01d2
internal/ui: stop panicking at Key.String
2022-12-25 00:33:08 +09:00
Hajime Hoshi
8e1bd4eaba
internal/graphicsdriver/directx: refactoring
2022-12-24 18:05:47 +09:00
Hajime Hoshi
fda0b1cbcb
internal/graphicsdriver/directx: reuse a compiled vertex shader if possible
...
D3DCompile can be a very slow function, and let's skip this if possible.
2022-12-24 17:44:54 +09:00
Hajime Hoshi
88fe3d1287
internal/shaderir: rename TextureNum to TextureCount
2022-12-24 15:55:05 +09:00
Hajime Hoshi
88e5d5e059
Revert "internal/shaderir: refactoring: remove Program.TextureNum"
...
This reverts commit c2bea16776
.
Reason: test compilation errors
2022-12-24 15:53:16 +09:00
Hajime Hoshi
c2bea16776
internal/shaderir: refactoring: remove Program.TextureNum
2022-12-24 15:15:41 +09:00
Hajime Hoshi
f9650fbb8c
internal/graphics: update error messages
2022-12-24 14:34:02 +09:00
Hajime Hoshi
7af300a468
update Oto to v2.4.0-alpha.9
2022-12-24 14:33:12 +09:00
Hajime Hoshi
e4576a3de5
internal/restorable: bug fix: concurrent map write
2022-12-24 03:14:04 +09:00
Hajime Hoshi
71492554a7
internal/restorable: compile shaders in parallel
2022-12-24 02:00:42 +09:00
Hajime Hoshi
1b4f68d775
internal/graphicsdriver/directx: call D3DCompile in parallel
...
D3DCompile can be very slow on some old machines.
See also https://bugs.chromium.org/p/angleproject/issues/detail?id=422
2022-12-24 01:22:33 +09:00
Hajime Hoshi
de8184ac10
internal/graphicsdriver/directx: implement suspend/resume for Xbox
2022-12-23 17:28:03 +09:00
Hajime Hoshi
8dc582aca4
update Oto (reverting the fix for pausing/resuming)
...
Updates #2074
2022-12-21 12:05:46 +09:00
Hajime Hoshi
d3655940bd
internal/ui: bug fix: input states must be updated before the hook
...
Closes #2502
2022-12-21 11:46:58 +09:00
Hajime Hoshi
8ccfa7bec1
update Oto (to reduce clicking noises on pausing/resuming)
...
Updates #2074
2022-12-21 02:25:14 +09:00
Hajime Hoshi
a5b6f39ed7
internal/ui: bug fix: reset the input state immediately after reading
...
Before this change, the input state was reset at the end of a tick.
This means that wheel deltas or input chars in a tick might be reset
unexpectedly.
This change fixes the issue by reseting the input state immediately
when reading, so that wheel events and input-char events are preserved.
Updates #2496
Updates #2501
2022-12-21 00:27:28 +09:00
Hajime Hoshi
f989f8a9fa
update Oto (reduce noises when changing volumes)
2022-12-20 11:59:30 +09:00
Hajime Hoshi
38f802cb40
internal/ui: simplify the logic of skipping rendering
2022-12-20 11:34:47 +09:00
Hajime Hoshi
59295cc85f
internal/ui: bug fix: input state should be reset for each tick, not frame
...
Before this change, input states were reset for each frame. When FPS
is bigger than TPS, the input state was reset more often than expected
and then some inputs were missing.
This change fixes the issue by resetting input states not for each frame
but for each tick.
This change also updates some comments of the input API.
Updates #2496
Closes #2501
2022-12-20 10:07:19 +09:00
Hajime Hoshi
d80f1112ed
ebiten: bug fix: wrong detection of mod keys
...
Updates #2501
2022-12-20 03:40:14 +09:00