Commit Graph

4128 Commits

Author SHA1 Message Date
Hajime Hoshi
35e25a3636 rename internal/glfwwin -> internal/goglfw
Updates #2546
2023-01-21 22:09:21 +09:00
Hajime Hoshi
06bc569b73 internal/shader: bug fix: wrongly typed constants were unexpectedly used
Closes #2549
2023-01-20 02:26:39 +09:00
Hajime Hoshi
f054a7634a ebiten: deprecate (*Image).Size
Closes #2351
2023-01-20 01:26:37 +09:00
Hajime Hoshi
96a44eceaf internal/glfwwin: remove unused functions 2023-01-14 17:04:46 +09:00
Hajime Hoshi
72f026e254 internal/graphicsdriver/opengl/gl: bug fix: searching GL libraries failed on some machines
On a Debian machine, LD_LIBRARY_PATH might not be set and libGL.so might
not exist (libGL.so.1 exists instead). In this case, searching for a GL
library fails

This change fixes the issue by not using LD_LIBRARY_PATH and also including
`libGL.so.*` files as candidates for dlopen.

Closes #2539
2023-01-13 15:08:06 +09:00
Hajime Hoshi
08fba564f8 internal/ui: refactoring: define global sel_ objects 2023-01-09 01:41:13 +09:00
divVerent
abece041f4
internal/graphicsdriver/opengl: fix state tracking of glBindTexture / glActiveTexture interaction (#2526)
After switching texture units using glActiveTexture, a different texture may
be bound. For now, let's just force the active texture state variable to zero
so the next glBindTexture call isn't skipped.

Closes #2525
2023-01-07 23:13:14 +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
86fa9366f7 internal/ui: use 'set' instead of 'push' for cursors
We don't need to use a cursor stack.
2023-01-07 19:16:41 +09:00
Hajime Hoshi
847d1cae73 internal/graphicsdriver/opengl/gl/: refactoring 2023-01-07 17:01:00 +09:00
Hajime Hoshi
d615c2f42a internal/graphicsdriver/opengl/gl: bug fix: isES was not set 2023-01-07 03:46:30 +09:00
Hajime Hoshi
869ca1e01f internal/graphicsdriver/opengl/gl: fix a wrong comment 2023-01-07 03:41:02 +09:00
Hajime Hoshi
983e8abd46 internal/graphicsdriver/opengl/gl: bug fix: an unavailable library name might be chosen
Instead, let's try all the names with dlopen.

Updates #2523
2023-01-07 03:06:12 +09:00
Hajime Hoshi
df7b7b731e internal/graphicsdriver/opengl/gl: bug fix: libGL.so might not exist in Steam
Instead, libGL.so.1 might exist. Use LD_LIBRARY_PATH and list the
candidates.

Closes #2523
2023-01-07 00:03:07 +09:00
Hajime Hoshi
b860d8dc61 internal/graphicsdriver/metal/mtl: bug fix: test failures 2023-01-05 14:14:42 +09:00
Hajime Hoshi
c5848455f5 internal/graphicsdriver/metal: use MTLGPUFamily instead of MTLGPUFeatureSet 2023-01-05 13:37:37 +09:00
Hajime Hoshi
cf76e3c646 internal/graphicsdriver/opengl: better place to reset uniform variables
Updates #2517
2023-01-04 01:36:04 +09:00
Hajime Hoshi
599be725b9 internal/graphicsdriver/metal: fix comments 2023-01-03 23:16:01 +09:00
Hajime Hoshi
7418576c16 internal/ui: re-enable skipping to render the final screen when possible
With Metal, nextDrawable could return immediately when a command buffer
is empty. To avoid high CPU usage, this change adds a slight sleep in
this case.

With DirectX, Present waits for a while even though nothing is updated,
then that's fine.

Updates #2341
Updates #2342
Updates #2520
2023-01-03 23:09:28 +09:00
Hajime Hoshi
edb952c9e7 internal/graphicsdriver/metal: add comments 2023-01-03 22:10:33 +09:00
Hajime Hoshi
365740aca9 internal/ui: update comments
Updates #2521
2023-01-03 21:39:34 +09:00
Hajime Hoshi
67c9d65d82 internal/ui: refactoring 2023-01-03 21:17:47 +09:00
Hajime Hoshi
0bdfeec610 internal/ui: use a separate render thread for Nintendo Switch
Updates #2512
2023-01-03 21:12:18 +09:00
Hajime Hoshi
312dce950c internal/ui: bug fix: compile failures with -tags=nintendosdk
Needed to use NativeDisplayType for eglGetDisplay.
2023-01-03 20:38:45 +09:00
Hajime Hoshi
6344273b7c internal/ui: bug fix: compile failures with -tags=nintendosdk 2023-01-03 20:29:05 +09:00
Hajime Hoshi
73985c6c96 internal/ui: bug fix: compile failures with -tags=nintendosdk 2023-01-03 20:12:36 +09:00
Hajime Hoshi
723a44a822 internal/ui: rename ebitengine_Init -> ebitengine_Initialize 2023-01-03 19:23:38 +09:00
Hajime Hoshi
0e0205b2d0 internal/ui: use -overlay to provide the implementation for Nintendo Switch
Closes #2372
2023-01-03 19:10:15 +09:00
Hajime Hoshi
edf35b02cb internal/graphicsdriver/opengl: record last uniform variables and reset them before swapping buffers
This is basically a revert of 6b4c696b31.
This change resets the last uniform variables before swapping
buffers.

Updates #2517
2023-01-03 03:13:46 +09:00
Hajime Hoshi
da97657afb Revert "internal/ui: refactoring: remove unnecessary hack for unfocusing"
This reverts commit 3f753b7086.

Reason: this was actually necessary.

Updates #982
Updates #987
Closes #2521
2023-01-03 02:06:55 +09:00
Hajime Hoshi
70bcec189d internal/ui: refactoring 2023-01-03 01:43:55 +09:00
Hajime Hoshi
e4b15faefe internal/ui: bug fix: wrong condition 2023-01-03 01:28:51 +09:00
Hajime Hoshi
bbc82ef2db internal/ui: skip rendering onto the final framebuffer only for OpenGL
This was reverted at a049acd94e but now
I've confirmed this is not problematic only with OpenGL.

Updates #2341
Updates #2342
2023-01-03 01:24:53 +09:00
Hajime Hoshi
6b4c696b31 internal/graphicsdriver/opengl: bug fix: needed always to set uniform variables
Before this fix, setting uniform variables could be skipped when the
values were the same. This caused some issues when a number of drawing
commands were much small than usual (e.g. SetScreenClearedEveryFrame
with false).

This change fixes this by not doing such optimization. Unfortunately
it was impossible to create a minimum reproducible unit test since
we cannot test the final screen framebuffer's states so far.

Closes #2517
2023-01-03 00:43:10 +09:00
Hajime Hoshi
a049acd94e internal/ui: disable the optimization to skip rendering offscreen
This caused some issues in various environments. Until we find a good
solution, let's disable this.

Updates #2341
Updates #2342
Closes #2518
2023-01-02 23:14:03 +09:00
Hajime Hoshi
4d270de75e internal/atlas: renmae functions
Updates #2519
2023-01-02 20:18:05 +09:00
Hajime Hoshi
bb1021a549 internal/atlas: ensure the given sizes must be power of 2
Updates #2519
2023-01-02 19:17:27 +09:00
Hajime Hoshi
b4d8519f97 internal/packing: remove unused functions 2023-01-02 18:21:21 +09:00
Hajime Hoshi
471237b701 internal/ui: bug fix: ignore ERROR_BUSY when deleting a GL context
Closes #2518
2023-01-02 15:05:16 +09:00
Hajime Hoshi
7018318546 internal/ui: bug fix: compile error on the testing CI 2023-01-01 18:01:14 +09:00
Hajime Hoshi
bba32bc06e internal/ui: refactoring 2023-01-01 17:45:20 +09:00
Hajime Hoshi
fd1a90411a internal/nintendosdk: refactoring 2023-01-01 17:36:27 +09:00
Hajime Hoshi
afbd1aebf1 internal/ui: use -overlay to provide the implementation for Nintendo Switch
Updates #2372
2023-01-01 01:35:05 +09:00
Hajime Hoshi
58692f6d85 internal/gamepad: refactoring 2023-01-01 00:58:42 +09:00
Hajime Hoshi
77f32bd088 internal/gamepad: use -overlay to provide the implementation for Nintendo Switch
Updates #2372
2022-12-31 18:08:28 +09:00
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