Hajime Hoshi
243c224003
internal/restorable: bug fix: wrong panic on mixing DrawTriangles and WritePixels
...
When DrawTriangles is called and then WritePixels is called on a
sub-image, a panic happened. However, this panic actually happens
only when the graphics driver requires restoring (e.g. OpenGL ES
on Android). The situation was very limited, but this was a real
problem on Android.
This panic was introduced to prevent a rendering bug by a inmature
graphics drivers, but we should no longer need this. This change
just removes the panic.
Updates #292
2022-09-13 06:18:55 -07:00
Hajime Hoshi
40362aa62d
internal/restorable: bug fix: readPixelsFromGPU might be called for a non-stale image
...
Actually readPixelsFromGPUIfNeeded can invoke this.
Closes #2322
2022-09-13 15:34:43 +09:00
Hajime Hoshi
4824cbc755
internal/graphicscommand: bug fix: IsInvalidated was not concurrent-safe
...
This function was not called actually, so this is not a real problem.
However, this could be a potential problem for a future GLES driver (#292 ).
Updates #292
Closes #2321
2022-09-13 12:23:19 +09:00
Hajime Hoshi
6ea455f4e1
internal/graphicsdriver/opengl/gles: remove cString
2022-09-13 00:17:33 +09:00
Hajime Hoshi
e46bfd8d30
internal/graphicsdriver: rename files
...
Updates #292
2022-09-12 23:03:54 +09:00
Hajime Hoshi
7d6ee39c15
internal/gamepad: bug fix: a wireless Xbox controller didn't work correctly on macOS
...
The button and hat values must be adjusted by their minimum values.
See also GLFW's implementation.
Closes #266
2022-09-12 01:55:05 +09:00
Hajime Hoshi
89598df520
internal/gamepad: refactoring
...
Updates #2311
2022-09-11 22:44:06 +09:00
Hajime Hoshi
4629306f4b
internal/gamepad: bug fix: wrong SDL ID on iOS
...
The gamepad database already worked well with this fix.
Closes #2311
2022-09-11 22:29:38 +09:00
Hajime Hoshi
14a3a0f6bc
internal/graphicsdriver/opengl/gl: better error message
2022-09-10 14:21:59 +09:00
Hajime Hoshi
fe11facbb8
internal/graphicsdriver/opengl/gl: better error message
2022-09-10 14:14:42 +09:00
Hajime Hoshi
d8eaf0a394
internal/graphicsdriver/opengl/gl: reland: integrate files for ebitengine/purego
...
Closes #2313
2022-09-10 13:37:20 +09:00
Hajime Hoshi
45a9cdda30
Revert "internal/graphicsdriver/opengl/gl: integrate files for ebitengine/purego"
...
This reverts commit be8edb984f
.
Reason: Test failures. See #2313
Updates #2313
2022-09-10 03:45:14 +09:00
Hajime Hoshi
be8edb984f
internal/graphicsdriver/opengl/gl: integrate files for ebitengine/purego
2022-09-10 03:31:16 +09:00
Hajime Hoshi
fccb43e15b
internal/graphicsdriver/directx: remove .errcheck_excludes_windows
...
These DirectX functions don't return any value and should not affect
the last error. Then it should be fine to ignore the returning values
from syscall.Syscall*.
Updates #2287
2022-09-10 03:03:18 +09:00
Hajime Hoshi
f2255b8fa6
internal/graphicsdriver/opengl/gl: remove .errcheck_excludes_windows
...
Updates #2287
2022-09-10 02:44:24 +09:00
Hajime Hoshi
b1fff313ac
internal/glfwwin: remove .errcheck_excludes_windows
...
The third returning value of Syscall is GetLastError, and the functions
like glGetIntegerv should not change the error state. Then it is safe
to ignore the errors.
Updates #2287
2022-09-10 02:18:37 +09:00
Hajime Hoshi
b5acb1e53d
internal/gamepad: remove .errcheck_excludes_windows
...
Updates #2287
2022-09-10 02:11:08 +09:00
Terra Brown
a1cc44833d
add errcheck static analysis ( #2293 )
...
Closes #2287
2022-09-10 01:52:46 +09:00
Hajime Hoshi
e505098e55
internal/ui: handle error at forceUpdateOnMinimumFPSMode
...
Updates #2287
2022-09-09 22:49:34 +09:00
Hajime Hoshi
4c76356803
internal/gamepad: refactoring
2022-09-09 22:31:47 +09:00
Hajime Hoshi
47558d20c5
internal/gamepaddb: enable the database for Android
...
Before this fix, the button and axis IDs are from the OS. These
didn't match with the SDL game controller databaes unfortunately.
This fix changes the assignments of the buttons and the axes to match
with the database.
Closes #2312
2022-09-09 22:20:39 +09:00
Hajime Hoshi
a9653d1e7a
internal/gamepaddb: fix hat assignments for Android
...
Now Ebitengine's original mapping works, but the database doesn't
work due to differences of button assignments. Fix this later.
Updates #2309
2022-09-08 00:20:31 +09:00
Hajime Hoshi
4a851bcf27
internal/gamepaddb: fix the assignment of axes for Android
...
Updates #2309
2022-09-07 23:09:58 +09:00
Hajime Hoshi
f414e25b9d
internal/gamepaddb: fix some button assignments for Android
...
Updates #2309
2022-09-07 15:54:14 +09:00
Hajime Hoshi
d66c599938
cmd/ebitenmobile: remove counting buttons and use a constant instead
...
Updates #2309
2022-09-07 15:43:11 +09:00
Hajime Hoshi
db1255cdf8
internal/gamepad: rename ButtonNum -> ButtonCount
2022-09-07 15:40:52 +09:00
Hajime Hoshi
b5d755b07a
Revert "internal/gamepaddb: fix button assignments on Android"
...
This reverts commit e161b28bff
.
Reason: this would break backward compatibility
Updates #2309
2022-09-07 15:37:22 +09:00
Hajime Hoshi
e161b28bff
internal/gamepaddb: fix button assignments on Android
...
Updates #2309
2022-09-07 15:34:29 +09:00
Hajime Hoshi
f383580d7b
internal/gamepad: bug fix: wrong ID usages on Android
...
* IDs should have been decoded to a byte slice before checking the
value.
* Ebitengine doesn't treat HID devices on Android so far, so checking
whether the device was HID or not didn't make sense.
Updates #2309
2022-09-07 01:05:14 +09:00
divVerent
34a500c305
internal/gamepad: ignore EPERM when opening gamepads ( #2308 )
...
This seems required for the Snap sandbox when probing a non-gamepad device node.
Closes #2307
2022-09-06 21:29:32 +09:00
Hajime Hoshi
bb406c9b8f
internal/graphicsdriver/metal: bug fix: go vet failed
...
view must not be copied.
Updates #2282
2022-09-06 19:09:21 +09:00
Hajime Hoshi
35f597e682
internal/graphicsdriver: refactoring: remove FilterScreen
...
Closes #2282
2022-09-06 19:04:15 +09:00
Hajime Hoshi
bd43b42ee5
internal/ui: reland the screen shader in Kage
...
This change relads a part of the change to use the screen shader
instead of FilterScreen, but with the issue on iOS fixed.
Let's remove FilterScreen later.
Updates #2282
2022-09-06 18:48:19 +09:00
Hajime Hoshi
c19f45b91c
internal/shader: bug fix: test failures
...
Updates #2304
2022-09-05 02:52:16 +09:00
Hajime Hoshi
4ade34bc02
internal/shaderir: bug fix: wrong argument check on pow
...
Closes #2304
2022-09-05 02:35:48 +09:00
Hajime Hoshi
1d487be57b
internal/ui: refactoring: remove unused members from EbitengineWindowDelegate
...
Closes #2297
2022-09-03 23:48:40 +09:00
divVerent
9bc571af5e
internal/gamepad: fix a typo that caused oddly cut off gamepad names. ( #2300 )
...
This change allows gamepad names up to 256 characters, which is usually
enough. Before, names were cut off after 7 characters, matching the string
"Unknown" that is used if querying the name fails.
Closes #2300
2022-09-03 20:44:03 +09:00
Hajime Hoshi
55f6e8c3a1
internal/ui: rename EbitenWindowDelegate -> EbitengineWindowDelegate
2022-09-02 23:34:02 +09:00
Hajime Hoshi
0a92204e04
internal/ui: remove comments
2022-09-02 20:39:16 +09:00
Hajime Hoshi
7045605fdf
internal/ui: bug fix: restore the window position after fullscreen exit on macOS
...
glfw.PollEvents was necessary to enable SetPos and SetSize after
exiting from fullscreen on macOS.
Closes #2296
2022-09-02 20:31:48 +09:00
Hajime Hoshi
4e4533c89d
internal/ui: bug fix: do not call setFrame in windowDidExitFullScreen
...
Calling setFrame in windowDidExitFullScreen caused unexpected results
like a strange window size after fullscreen. Let's remove this.
By removing this, setting window position and size during fullscreen
will no longer work again. Let's fix this later.
Closes #2295
2022-09-02 17:48:23 +09:00
Hajime Hoshi
37bae461d1
internal/graphicsdriver/directx: bug fix: processtest failures
...
The command allocators should be reset only when the frame index was
updated.
Closes #2249
2022-09-02 12:48:06 +09:00
Hajime Hoshi
1762869791
internal/processtest/testdata: typo
2022-09-02 03:23:30 +09:00
Hajime Hoshi
c126dea7fb
Revert "internal/graphicsdriver/directx: bug fix: do not reset command allocators at Begin"
...
This reverts commit 9d303e8dc5
.
Reason: A GPU memory leak (#2292 ). Though this reverting reveals the error #2249
again, a memory leak is more critical. Then revert the change once, and then
take time to investigate how to resolve #2249 .
Closes #2292
Updates #2249
2022-09-02 02:27:40 +09:00
Hajime Hoshi
cdf83ad2fc
internal/atlas: dispose images at ReadPixels
...
Without resolveDeferred() at ReadPixels, many images are never disposed
in tests.
Updates #2292
2022-09-01 23:54:57 +09:00
Hajime Hoshi
7fab62158d
internal/glfwwin: bug fix: do not allow maximizing window when the max size is specified
...
Closes #2289
2022-09-01 22:48:38 +09:00
Kacper Drobny
9c177c1b8e
internal/ui: allow maximizeWindow when no max boundaries are set ( #2291 )
...
Closes #2290
2022-09-01 22:34:17 +09:00
Hajime Hoshi
ae41530f1c
internal/graphicscommand: move availableFilename to graphicscommand
2022-08-31 13:26:14 +09:00
Hajime Hoshi
d66c552912
internal/graphicscommand: bug fix: 0-sized image was included in dumped internal images
...
Updates #2270
2022-08-31 12:22:36 +09:00
Terra Brown
26a58d20b3
internal/graphicscommand: enable EBITENGINE_INTERNAL_IMAGES_KEY
on browsers ( #2283 )
...
Closes #2270
Co-authored-by: Hajime Hoshi <hajimehoshi@gmail.com>
2022-08-31 03:10:10 +09:00
Hajime Hoshi
63e3c4adea
Revert "internal/graphics: remove FilterScreen and use an original Kage program instead"
...
This reverts these commits
* 3259ef3daf
* 7c55065490
* 5bb70f485e
Reason: iOS crash. Probably we have to prepare a special rendering
pipeline for the final screen.
Closes #2278
2022-08-30 01:56:06 +09:00
Hajime Hoshi
f7c44f086f
replace Ebiten with Ebitengine in comments
2022-08-29 11:17:17 +09:00
Hajime Hoshi
ec68534c73
internal/graphicsdriver/opengl: introduce EBITENGINE_OPENGL
replacing ebitenginewebgl1
...
This change inroduces a new environment variable `EBITENGINE_OPENGL`
to replace the build tag `ebitenginewebgl1`.
2022-08-28 01:45:58 +09:00
Hajime Hoshi
313c70f4b4
internal/graphicsdriver/directx: support 32bit Windows
...
Closes #2088
2022-08-28 00:04:55 +09:00
Hajime Hoshi
610e9ce14c
gofmt -s -w
2022-08-28 00:04:32 +09:00
Hajime Hoshi
fd5d142453
internal/restorable: bug fix: needed to copy the stale region when extending an image
...
Updates #2274
2022-08-27 23:29:50 +09:00
Hajime Hoshi
b2f874a244
image/rectangle: read pixels only for necessary parts
...
Closes #2274
2022-08-27 23:23:33 +09:00
Terra Brown
de35a5a6f1
ebiten: add Termination
for a regular termination ( #2272 )
...
Closes #2266
2022-08-27 21:33:40 +09:00
Terra Brown
232cadf15a
internal/graphicscommand: browser screenshot/image dump support ( #2269 )
...
Closes #2265
2022-08-27 12:51:30 +09:00
Hajime Hoshi
3259ef3daf
internal/ui: fix comments
2022-08-26 22:55:22 +09:00
Hajime Hoshi
7c55065490
internal/ui: simplify the screen shader
2022-08-26 22:49:17 +09:00
Hajime Hoshi
5bb70f485e
internal/graphics: remove FilterScreen and use an original Kage program instead
...
Updates #2046
2022-08-26 17:41:29 +09:00
Hajime Hoshi
3b50e57f19
internal/ui: move convertUniforms to ui.Shader
...
This is a preparation to use a Kage program as the screen filter.
Update #2046
2022-08-26 17:41:26 +09:00
Hajime Hoshi
b858f36d54
remove the dependency on file2byteslice
...
Specify the version explicitly instead.
2022-08-23 16:34:55 +09:00
Hajime Hoshi
b28b323920
internal/shaderir: use parentheses for vector equal operators
2022-08-21 04:19:56 +09:00
Hajime Hoshi
833473316f
internal/ui: forbide RestoreWindow when the window size limits are specified
...
Closes #2259
2022-08-20 22:36:37 +09:00
Hajime Hoshi
31141d5112
internal/ui: forbid maximizing window when a window size is limited
...
Closes #2258
2022-08-20 22:24:13 +09:00
Hajime Hoshi
e150745598
internal/ui: bug fix: do not register a framebuffer-size callback on macOS
...
When a decorating state is switched, a framebuffer-size callback was
invoked but with wrong parameters on macOS.
This callback was originally implemented for i3 window manager, and
was not needed for macOS. Then, let's not use this on macOS. Probably
we can also skip this registering on Windows.
Updates #1960
Closes #2257
2022-08-20 19:10:42 +09:00
Hajime Hoshi
85d54515cd
internal/shader: check types for && and || correctly
...
Updates #2256
2022-08-19 17:34:03 +09:00
Hajime Hoshi
d6047f3988
internal/shader: add type checks to compare two values
...
Closes #2187
2022-08-19 17:03:29 +09:00
Hajime Hoshi
f63b87f675
internal/shader: refactoring
2022-08-19 15:24:00 +09:00
Hajime Hoshi
a4b9d3c241
internal/gamepaddb: update the database
...
Adopts 74ebd51889
2022-08-19 02:54:03 +09:00
Hajime Hoshi
590147acda
internal/shader: add type checks for the builtin function texture2D
...
Note that texture2D is usually not called by users.
Closes #2184
2022-08-19 02:27:40 +09:00
Hajime Hoshi
63eee0600e
internal/shader: add type checks for the builtin function transpose
...
Updates #2184
2022-08-19 01:57:24 +09:00
Hajime Hoshi
7a94cbbd62
internal/shader: add refract
...
Closes #2255
2022-08-19 01:48:35 +09:00
Hajime Hoshi
13ae8f5872
internal/shader: add type checks for the builtin function faceforward
...
Updates #2184
2022-08-19 01:48:30 +09:00
Hajime Hoshi
73f12fa704
internal/shader: add type checks for the builtin function smoothstep
...
Updates #2184
2022-08-19 01:27:01 +09:00
Hajime Hoshi
f3ea274d20
internal/shader: add type checks for the builtin function mix
...
Updates #2184
2022-08-19 01:19:20 +09:00
Hajime Hoshi
ec851a85f5
internal/shader: add type checks for the builtin function step
...
Updates #2184
2022-08-19 00:25:04 +09:00
Hajime Hoshi
34cc6405dd
internal/shader: add type checks for the builtin function clamp
...
Updates #2184
2022-08-19 00:14:38 +09:00
Hajime Hoshi
82a9aac689
internal/shader: add type checks for the builtin function cross
...
Updates #2184
2022-08-18 23:45:01 +09:00
Hajime Hoshi
7af6c99954
internal/shader: add type checks for some builtin functions
...
Updates #2184
2022-08-18 23:21:25 +09:00
Hajime Hoshi
3aad4fada1
internal/shaderir: add comments
...
Updates #2253
2022-08-18 17:46:53 +09:00
TotallyGamerJet
05470f7706
internal/graphicsdriver/metal: remove C for macOS ( #2243 )
...
Updates #1162
2022-08-18 01:39:34 +09:00
Hajime Hoshi
fb775d806c
internal/shader: disallow 'discard' in other functions than the fragment entry point
...
Closes #2248
2022-08-17 23:39:52 +09:00
Hajime Hoshi
9d303e8dc5
internal/graphicsdriver/directx: bug fix: do not reset command allocators at Begin
...
Closes #2249
2022-08-17 22:37:26 +09:00
Hajime Hoshi
e9e48919df
internal/processtest: rename test
2022-08-17 22:04:51 +09:00
Hajime Hoshi
b211b79a5c
internal/shader: use a return statement in a fragment shader entrypoint
...
Updates #2247
2022-08-17 22:02:13 +09:00
Hajime Hoshi
bf4648eb35
internal/shaderir: fix a wrong comment
2022-08-17 17:43:59 +09:00
Hajime Hoshi
cf92158e33
ebiten: bug fix: add an indirect function call for a fragment shader
...
Closes #2245
Closes #2247
2022-08-17 16:37:37 +09:00
Hajime Hoshi
bb2df24f83
internal/graphicsdriver/directx: use DXGI_PRESENT_TEST when the screen is invisible
...
This change also reduces FPS to about 10 when the screen is invisible
in order to save CPU power.
Closes #2181
2022-08-17 00:10:44 +09:00
Hajime Hoshi
5b182efe7e
internal/ui: forbide SetWindowSize
when the window is maximized
...
On Windows, changing the size of a maximized window results in
unexpected states. Let's forbid this.
On macOS, a maximized window is just a regular window so it is
OK to allow resizing by `SetWindowSize`.
On Linux or other Unix, the behavior depends on window systems
and it is hard to expect what would happen, so forbid this just in
case.
Closes #1986
2022-08-15 16:29:20 +09:00
Hajime Hoshi
bc8e2fe6ac
internal/glfw: bug fix: the window should be focused when closing is handled
...
Closes #2165
2022-08-12 22:34:19 +09:00
Hajime Hoshi
dd292552d5
audio: move the implementation for NintendoSDK to Oto
...
Updates #2242
2022-08-12 20:53:55 +09:00
Hajime Hoshi
8081d0636a
internal/cbackend: rename to nintendosdk
...
Updates #2242
2022-08-12 17:19:37 +09:00
Hajime Hoshi
e7c0a121c4
all: remove the build tag 'ebitencbackend'
...
This also automatically enables 'egl' when 'nintendosdk' is specified.
Updates #2242
2022-08-12 13:15:39 +09:00
Hajime Hoshi
dac6548c0c
all: rename ebitenginecbackend to nintendosdk
...
Updates #2242
2022-08-12 02:05:29 +09:00
Hajime Hoshi
0578a831cc
internal/microsoftgdk: initialize GDK on the Ebitengine side
...
Updats #2084
2022-08-11 21:45:13 +09:00
Hajime Hoshi
91797a6589
internal/microsoftgdk: remove dummy.c
...
Simply this was not needed.
Updates #2084
2022-08-11 21:23:13 +09:00
Hajime Hoshi
094726915b
ebiten: add IsStandardGamepadAxisAvailable and IsStandardGamepadButtonAvailable ( #2241 )
...
Closes #2040
2022-08-11 12:35:20 +09:00