Commit Graph

4915 Commits

Author SHA1 Message Date
Hajime Hoshi
10d9660125 shaderprecomp: implement for Windows
Closes #2861
2024-05-06 16:03:57 +09:00
Hajime Hoshi
5d4a68b0ea internal/shaderir/hlsl: refactoring: separate calculation uniform offsets 2024-05-05 20:47:35 +09:00
Hajime Hoshi
a41af4528b internal/graphicsdriver/directx: refactoring 2024-05-05 18:58:13 +09:00
Hajime Hoshi
caab1ee29f internal/graphicsdriver/metal: refactoring 2024-05-05 17:18:06 +09:00
Hajime Hoshi
c46f62e184 all: add a new package shaderprecomp
The current implementation is only for macOS so far.

Updates #2861
2024-05-05 03:51:04 +09:00
Hajime Hoshi
d7df5ebcbd internal/builtinshader: move a clearing shader to builtinshader 2024-05-05 02:18:14 +09:00
Hajime Hoshi
ca9a80600d internal/graphicsdriver/metal: release MTLLibrary 2024-05-04 19:26:12 +09:00
Hajime Hoshi
c3b9afe8c4 internal/ui: bug fix: compile error for browsers 2024-05-04 00:30:43 +09:00
Hajime Hoshi
1ebfa8b911 internal/ui: refactoring: remove unused code 2024-05-04 00:26:40 +09:00
Hajime Hoshi
c658a25171 all: replace execabs with os/exec
os/exec no longer searches executablse in the current directory as of
Go 1.19. See https://go.dev/blog/path-security and https://go.dev/issue/43724.
2024-05-03 23:39:38 +09:00
Hajime Hoshi
903ab6727b internal/ui: better panic message at ReadPixels before RunGame
Closes #2979
2024-05-03 16:36:19 +09:00
Hajime Hoshi
35e29a29e7 internal/ui: bug fix: wrong property names were specified
Closes #2975
2024-04-30 23:32:54 +09:00
Hajime Hoshi
0af5b41d48 internal/atlas: refactoring 2024-04-29 23:34:37 +09:00
Hajime Hoshi
bb799da51f internal/ui: use atomic.Int32 instead of atomic.Store/LoadInt32
Updates #2422
2024-04-29 21:53:43 +09:00
Hajime Hoshi
59fb259181 internal/graphicsdriver/gl: use PureGo for Linux and UNIX
Updates #2284
2024-04-29 21:25:15 +09:00
Hajime Hoshi
f34932151d all: use atomic.Bool instead of atomic.Store/LoadUint32
Updates #2422
2024-04-29 21:16:01 +09:00
Hajime Hoshi
c390f0a9fa internal/shader: bug fix: treat a built-in function as an invalid argument
Closes #2965
2024-04-29 16:44:33 +09:00
Hajime Hoshi
bc9e9d8562 ebiten: move the builtin shader to internal/builtinshader
Updates #2861
2024-04-20 21:23:37 +09:00
Hajime Hoshi
21a906bc82 internal/gamepaddb: refactoring: GLFW gamepads are requried only for Windows
Updates #2964
2024-04-18 14:25:47 +09:00
Hajime Hoshi
c7eb7371f4 internal/gamepad: refactoring 2024-04-18 13:39:29 +09:00
Hajime Hoshi
c74e7fa943 internal/gamepaddb: bug fix: platform was not initialized correctly
After 6552ae1dbe, the order of the init
function calls changed, and then the platform was not initialized
correctly.

This change fixes this issue by not relying on an init function to
get the platform.

Closes #2964
2024-04-18 13:28:53 +09:00
Hajime Hoshi
9cd7b34a77 internal/glfw: reorder constants 2024-04-14 17:30:21 +09:00
Hajime Hoshi
6df42f1a4b internal/glfw: bug fix: disabling cursor doesn't work well on remote desktop
This change applies the bug fix at glfw/glfw#1276

Updates #2961
2024-04-14 16:43:39 +09:00
Hajime Hoshi
86e0bcc264 internal/glfw: bug fix: limit the DWM swap interval to Vista and 7
This change applies the bug fix at glfw/glfw#1072.

Updates #2961
2024-04-14 15:35:00 +09:00
Hajime Hoshi
d5f15f9354 internal/glfw: bug fix: posting an empty event from different goroutine fails
This change applies the bug fix at glfw/glfw#1649

After this change, an Ebitengine application always shows the menu
bar, but this should be fine for Ebitengine applications.
2024-04-14 14:44:42 +09:00
Hajime Hoshi
6ff9e2b44c internal/glfw: bug fix: too early event emitting
This change applies the bug fix at glfw/glfw#2046.
2024-04-14 14:30:06 +09:00
Hajime Hoshi
4dfb3d2fc1 internal/glfw, internal/gamepad: update GLFW to v3.3.10
Closes #2960
2024-04-14 14:11:45 +09:00
Hajime Hoshi
4647e9de53 internal/glfw, internal/gamepad: update GLFW to v3.3.9
Updates #2960
2024-04-14 01:14:22 +09:00
Hajime Hoshi
4a964da0aa internal/shaderir: fix type mismatches 2024-04-12 23:42:06 +09:00
Hajime Hoshi
3cf3b27729 internal/graphicsdriver/opengl: refactoring: rename variables
A framebuffer's width and height are unclear. Rename them to
viewportWidth and viewportHeight.
2024-04-10 23:38:25 +09:00
lvyaoting
f6927232f2
all: fix function names in comment (#2957)
Signed-off-by: lvyaoting <lvyaoting@outlook.com>
2024-04-08 14:27:27 +09:00
Hajime Hoshi
9c070eb2f3 Revert "internal/graphicsdriver/gl: use PureGo for Linux and UNIX"
This reverts commit 5701206229.

Reason: error on Android:

```
/Users/runner/go/pkg/mod/github.com/ebitengine/purego@v0.8.0-alpha.0.20240404024320-d0aedd0f4393/func.go:301:4: too few values in struct literal of type syscall15Args
```

https://github.com/hajimehoshi/ebiten/actions/runs/8582651053/job/23521003819
2024-04-07 03:00:13 +09:00
Hajime Hoshi
9dc103491a internal/ui: bug fix: a window was shown unexpectedly at start-up
Closes #2951
2024-04-07 02:55:48 +09:00
Hajime Hoshi
5701206229 internal/graphicsdriver/gl: use PureGo for Linux and UNIX
Updates #2284
2024-04-07 02:08:40 +09:00
Hajime Hoshi
d6f7b50387 internal/ui: bug fix: setting a size failed for an invisible window
Updates #2725
Closes #2951
2024-04-06 22:26:01 +09:00
Hajime Hoshi
caecd81f4e Revert "internal/graphicsdriver/directx: add 'tearing' for EBITENGINE_DIRECTX"
This reverts commit b6252a41f2.

Reason: We need more investigation about tearing and vsync=off

Updates #2858
2024-03-30 20:08:06 +09:00
Hajime Hoshi
24238e16af internal/gamepaddb: refactoring
Updates #2936
2024-03-29 13:25:30 +09:00
Kenny
941c97eba2
internal/gamepaddb: generate respective controller dbs for each platform (#2943)
Replace singular embedded controller database file with separate generated
files for each supported platform. The controller database file is some
~500KB, so this change should reduce the overall binary size per
platform.

Closes #2936
2024-03-29 13:17:16 +09:00
Hajime Hoshi
fd2c79398e Revert "internal/atlas: refactoring: ensure ReadPixels to be processed in a frame"
This reverts commit 55702a7c28.

Reason: This didn't work with the single-thread mode.

Updates #1704
Closes #2939
2024-03-26 13:10:00 +09:00
Hajime Hoshi
459ad709a6 internal/gamepaddb: omit the database for consoles
Updates #2936
2024-03-25 03:08:19 +09:00
Hajime Hoshi
04c4676b7c internal/png: update with Go 1.22 2024-03-24 20:36:31 +09:00
Hajime Hoshi
6552ae1dbe internal/gamepaddb: do not include the database for browsers
This reduces Wasm binary size by 525kb.
2024-03-24 20:16:11 +09:00
Hajime Hoshi
dc8baf96f9 internal/gamepaddb: update the database 2024-03-24 19:18:49 +09:00
Hajime Hoshi
d04d6271d0 internal/ui: bug fix: reset some input states on blur events on browsers
Closes #2874
2024-03-24 16:03:17 +09:00
Hajime Hoshi
f4029aaa77 ebiten: add (*Monitor).Size() to replace ScreenSizeInFullscreen()
Also, this change fixes redundant checks the case when a monitor
does not exist. Now Ebitengine checks a monitor existence at the
initialization.

Closes #2145
Closes #2795
2024-03-23 23:32:43 +09:00
Hajime Hoshi
b6252a41f2 internal/graphicsdriver/directx: add 'tearing' for EBITENGINE_DIRECTX
Now tearing happens only when 'tearing' is specified and vsync is off.

Closes #2858
2024-03-23 17:53:13 +09:00
Hajime Hoshi
ea6fce45ff internal/shader: bug fix: crash on assignment mismatches 2024-03-23 15:30:49 +09:00
Hajime Hoshi
66667fe877 internal/shader: bug fix: test failures
Updates #2934
2024-03-23 15:15:33 +09:00
Hajime Hoshi
7842942b24 internal/shader: bug fix: need to covert constant type correctly for assignments
Closes #2934
2024-03-23 15:08:34 +09:00
Hajime Hoshi
e7bb66bb2f internal/shader: bug fix: ++/-- statements didn't work for vec2 on browsers
Closes #2933
2024-03-22 23:15:33 +09:00
Mykhailo Lohachov
1586c6764a
internal/shaderir: Kage update support for shift operators (#2916)
Closes #2755
2024-03-22 18:14:03 +09:00
Hajime Hoshi
b7dd45c0e4 internal/gamepad: ignore the very first MotionEvent with 0 value for Android
On Android, MotionEvent with 0 values might come for axes when connecting
a gamepad, even though a user didn't touch any axes. This is problematic
especially for tirgger axes, where the default value should be -1.

This change fixes the issue by adding a new state `axesReady` to check
if an axis is really touched or not. If an axis is not touched yet,
a button value for a standard (trigger) button always returns 0.

This change also removes an old hack to initialize axis values for
triggers.

Closes #2598
2024-03-21 22:28:48 +09:00
Hajime Hoshi
9faa3f4601 internal/gamepaddb: refactoring 2024-03-16 17:57:52 +09:00
Hajime Hoshi
696938987d internal/gamepad: use locks for consistency
Perhaps Gamepad's m might not be needed, but let's use the lock for
consistency for the current situation.
2024-03-16 16:31:49 +09:00
Hajime Hoshi
209dc50f72 internal/gamepaddb: refactoring 2024-03-16 15:37:42 +09:00
Hajime Hoshi
047858aa59 internal/gamepaddb: rename functions 2024-03-16 15:16:29 +09:00
Hajime Hoshi
bb6430d3ba internal/shader: bug fix: unexpected crash for out of range
Closes #2926
2024-03-13 11:37:00 +09:00
Hajime Hoshi
7389f9ddb2 ebiten: add KeyIntlBackslash
Updates #2921
2024-03-12 12:49:02 +09:00
Hajime Hoshi
63e97c7064 internal/shader: bug fix: needed to resolve const and non-const types
Closes #2922
2024-03-10 19:49:19 +09:00
Hajime Hoshi
c9a973c6c1 internal/ui: bug fix: needed to focus the window at launch
Updates #2725
Closes #2924
2024-03-10 12:44:28 +09:00
Hajime Hoshi
9a7dcb1077 internal/shader: bug fix: failed to return an array in HLSL
Closes #2923
2024-03-10 11:59:50 +09:00
Hajime Hoshi
927e025982 internal/shader: bug fix: wrong type conversion for min, max, and clamp
Closes #2922
2024-03-10 11:30:06 +09:00
Hajime Hoshi
c0d9954b3e exp/textinput: use native pixels for a candidate window position 2024-03-03 23:35:34 +09:00
Hajime Hoshi
3e4c47eb70 internal/ui: refactoring 2024-03-03 23:27:02 +09:00
Hajime Hoshi
cc3db584f2 internal/shader: allow integer types for clamp
Closes #2788
2024-02-25 21:21:27 +09:00
Hajime Hoshi
4b9508c523 internal/shader: bug fix: wrong type checks on min/max
Updates #2788
2024-02-25 21:17:54 +09:00
Hajime Hoshi
e8cdf885c0 internal/shader: allow integer types for min and max
Updates #2788
2024-02-25 20:18:19 +09:00
Hajime Hoshi
face5fd870 internal/shader: allow integer types for abs and sign
Updates #2788
2024-02-25 18:16:44 +09:00
Mykhailo Lohachov
012fe52b6f
internal/atlas: use bit manipulation for function power of 2 -like functions (#2915)
Closes #2914
2024-02-25 02:06:52 +09:00
Hajime Hoshi
64cb6cf8a9 internal/atlas: reduce test flakiness 2024-02-24 23:03:12 +09:00
Hajime Hoshi
732eedf2e0 all: use github.com/ebitengine/gomobile instead of golang.org/x/mobile
Closes #2748
Closes #2899
2024-02-24 22:07:27 +09:00
Hajime Hoshi
40f3cbe1e3 internal/ui: bug fix: DeviceScaleFactor should be initialized asap on Android
Closes #2913
2024-02-24 19:48:20 +09:00
Hajime Hoshi
df68cbfc5b internal/gamepaddb: update the database 2024-02-21 20:36:46 +09:00
TotallyGamerJet
e6a17e58c9
internal/glfw: rewrite cocoa_time_darwin.c and posix_thread_unix.c into Go-ish (#2912)
Updates #1162
2024-02-20 22:37:13 +09:00
Hajime Hoshi
24256af624 internal/atlas: bug fix: test flakiness due to GC 2024-02-15 03:00:49 +09:00
Hajime Hoshi
820c996329 internal/shader: bug fix: wrong lhs in an assignment
Closes #2910
2024-02-15 02:29:21 +09:00
Hajime Hoshi
6d898d752e ebiten: add (*Monitor).DeviceScaleFactor()
This replaces ebiten.DeviceScaleFactor().

Updates #2795
2024-02-12 17:09:03 +09:00
Hajime Hoshi
67d947d37a internal/ui: remove Bounds 2024-02-12 15:24:00 +09:00
Hajime Hoshi
fca8ebb9af internal/shader: bug fix: non-name on the left side of :=
Closes #2891
2024-02-11 21:21:16 +09:00
Hajime Hoshi
75103f39dd internal/shader: bug fix: error on a function name in a function call
Updates #2891
2024-02-11 21:09:49 +09:00
Hajime Hoshi
60725eba86 ebiten: add RunGameOptions.X11ClassName and X11InstanceName
Closes #2904
2024-02-11 19:31:29 +09:00
Hajime Hoshi
0adc1ad681 internal/ui: make virtual keyboard keys work at least on Android
Updates #2898
2024-02-03 21:11:54 +09:00
Hajime Hoshi
7dd22fdc61 internal/ui: refactoring: rename uiKeyToJSKey to uiKeyToJSCode 2024-02-03 15:13:12 +09:00
Hajime Hoshi
872ffc148d internal/atlas: add TestGCShader
Updates #2897
2024-01-29 23:14:33 +09:00
Hajime Hoshi
f74d66e89a internal/atlas: bug fix: fix GC tests
Updates #2897
2024-01-29 21:01:58 +09:00
Hajime Hoshi
d2a9e5b1e8 internal/atlas: bug fix: fix tests
Updates #2897
2024-01-29 20:52:43 +09:00
Hajime Hoshi
f37ebe549b internal/atlas: bug fix: fix tests
Updates #2897
2024-01-29 20:52:02 +09:00
Hajime Hoshi
9a8dde6503 internal/atlas: bug fix: a finalizer was never called
As the finalizer function had a reference to the target image, the
image's reference count never became 0. Then, the image was never
finalized.

This change fixes this issue by using a member function pointer instead
of an anonymous function.

Closes #2897
2024-01-29 20:39:44 +09:00
Hajime Hoshi
6736bb56ec internal/ui: make a separate package to hide a console
Updates #2896
2024-01-28 22:42:58 +09:00
Hajime Hoshi
373e61d054 internal/ui: call hideConsole at init 2024-01-28 22:05:47 +09:00
Hajime Hoshi
11394d246f internal/ui: bug fix: check the error of TimeBeginPeriod 2024-01-28 14:25:17 +09:00
Hajime Hoshi
7e4cdf5211 internal/ui: use a more precise timer for Windows
When SetScreenClearedEveryFalse(false) and SetVsyncEnabled(false),
Draw might not be called as often as expected on Windows due to its
timer precision. This change improves the situation.

Updates #2889
2024-01-28 14:15:20 +09:00
Hajime Hoshi
770fcff4c2 internal/graphicsdriver/directx: bug fix: Go 1.22 + 32bit Windows + DirectX 12 didn't work well
Apparently, a pseudo padding was needed for D3D12_RESOURCE_DESC,
but this is still mysterious.

This change also add Go 1.22 to the GitHub Actions.

Closes #2867
2024-01-27 18:06:53 +09:00
Pedro Tiple
6fafe734da
internal/graphicscommand: refactoring: remove a hard-coded part for ShaderImageCount (#2895)
This change allows increasing ShaderImageCount without breaking the image display.
Simply made the uniform processing dynamic based on ShaderImageCount.
2024-01-26 13:03:04 +09:00
Hajime Hoshi
8551cd350f internal/ui: bug fix: need to sleep when swapping buffers is skipped
Closes #2890
2024-01-24 12:20:30 +09:00
Hajime Hoshi
006f14ac19 internal/graphicsdriver/playstation5: bug fix: link error 2024-01-22 00:14:00 +09:00
Hajime Hoshi
52e0f10ff7 internal/graphicsdriver/playstation5: bug fix: compile error 2024-01-22 00:05:02 +09:00
Hajime Hoshi
f0509096f8 internal/graphicsdriver/playstation5: add ebitengine_IsErrorNil 2024-01-21 23:54:02 +09:00
Hajime Hoshi
e0ccd013ac internal/graphicsdriver/directx: bug fix: depth should be passed by math.Float32bits
As depth was always 0, there was not an actual problem.
2024-01-21 21:43:09 +09:00
Hajime Hoshi
5887142da7 internal/grpahicsdriver/metal/mtl: use 3 drawings for fullscreen
Hajime found that renderings were delayed with 2 drawing in fullscreen
though FPS might be lowered. This is mysterious but there is no other
good solution.

Updates #2883
2024-01-19 18:29:47 +09:00