Hajime Hoshi
a57560105f
internal/ui: refactoring: add userInterfaceImplNative for each OS
2022-08-10 11:44:03 +09:00
Hajime Hoshi
d0fa68691c
internal/ui: enable some functions even on fullsceen
...
This is thanks to a GLFW v3.3.8 change:
9950cc52df
Updates #1590
2022-08-10 09:00:33 +09:00
Hajime Hoshi
a84a738360
internal/ui: bug fix: collectionBehavior mattered for fullscreen
...
Closes #2238
2022-08-10 01:06:26 +09:00
Hajime Hoshi
205245b094
internal/shader: implement a new built-in function discard
...
Closes #1969
2022-08-09 11:31:59 +09:00
Hajime Hoshi
2826555044
internal/cbackend: remove CloseAudio
2022-08-08 12:38:27 +09:00
Hajime Hoshi
0217ed0544
ebiten: add WritePixels replacing ReplacePixels
...
Closes #2236
2022-08-08 03:50:27 +09:00
Hajime Hoshi
34aa52459e
internal/ui: rename ReplacePixels -> WritePixels
...
Updates #2236
2022-08-08 03:32:26 +09:00
Hajime Hoshi
bd1b9cdb9b
internal/mipmap: rename ReplacePixels -> WritePixels
...
Updates #2236
2022-08-08 03:32:21 +09:00
Hajime Hoshi
7061b34222
internal/buffered: rename ReplacePixels -> WritePixels
...
Updates #2236
2022-08-08 03:32:11 +09:00
Hajime Hoshi
8ce84c6596
internal/atlas: rename ReplacePixels -> WritePixels
2022-08-08 03:24:46 +09:00
Hajime Hoshi
af894d5c83
internal/restorable: rename ReplacePixels -> WritePixels
...
Updates #2236
2022-08-08 03:16:26 +09:00
Hajime Hoshi
7542bbc29c
internal/graphicscommand: bug fix: test failures
...
Updates #2236
2022-08-08 03:10:50 +09:00
Hajime Hoshi
70f5e84098
internal/graphicsdriver: rename ReplacePixels to WritePixels
...
Updates #2236
2022-08-08 03:05:04 +09:00
Hajime Hoshi
ea04e2a9de
ebiten: remove returning error from ReadPixels
...
- As ReadPixels should often be used at Draw, error handling would be hard.
- Make the API consistent with ReplacePixels.
Updates #1995
2022-08-08 02:48:25 +09:00
Hajime Hoshi
869147eda0
internal/graphicscommand: rename pixelCommand -> readPixelCommand
...
Updates #1995
2022-08-08 01:47:07 +09:00
Hajime Hoshi
81bd5b488c
ebiten: add (*Image).ReadPixels
...
Closes #1995
2022-08-08 01:42:26 +09:00
Hajime Hoshi
72d5002e72
remove go2cpp support
...
Closes #2126
2022-08-07 22:17:53 +09:00
Hajime Hoshi
abcacc26d8
internal/glfwwin: update for GLFW v3.3.8
...
Closes #2214
2022-08-07 15:03:33 +09:00
Hajime Hoshi
98894d66fb
internal/ui: revert the fix for #2183
...
- `CGEventSourceKeyState` cannot treat right modifier keys correctly.
- Unpaired keyup and keydown are very common (especially on browsers)
and this is not a serious issue.
Updates #2183
2022-08-06 11:19:56 +09:00
Hajime Hoshi
6d87be7169
internal/ui, internal/mipmap: refactoring: replace At with ReadPixels
...
Updates #1995
2022-08-06 00:32:42 +09:00
Hajime Hoshi
6c22f3f1a8
internal/buffered: refactoring: replace At with ReadPixels
...
Updates #1995
2022-08-05 23:58:01 +09:00
Hajime Hoshi
bf5f7ee34d
internal/restorable: refactoring: replace At with ReadPixels
...
Updates #1995
2022-08-05 23:37:27 +09:00
Hajime Hoshi
7b6ce7dcba
internal/ui: bug fix: reset key states when the window is not focused on macOS
...
Updates #2183
2022-08-05 20:22:50 +09:00
Hajime Hoshi
e81c46a0d7
internal/ui: bug fix: vkKey definitions were not found on iOS
2022-08-05 19:10:42 +09:00
Hajime Hoshi
50f66963b0
internal/ui: refactoring
2022-08-05 19:07:47 +09:00
Hajime Hoshi
a7135ce10b
internal/ui: fix build tags
2022-08-05 19:07:37 +09:00
Hajime Hoshi
a6004517dc
internal/ui: use a direct method to get key states instead of events on macOS
...
Closes #2183
2022-08-05 19:04:01 +09:00
mattn
2bacecca24
fix typos ( #2227 )
2022-08-03 22:40:39 +09:00
mattn
3cd0daac67
go generate ./... with Go 1.19 ( #2228 )
2022-08-03 20:48:02 +09:00
Hajime Hoshi
764ec8c794
internal/atlas: refactoring
2022-08-02 01:13:46 +09:00
Herczog Zoltán
fabf3fb374
internal/graphicsdriver/metal: remove supportsMetal check ( #2223 )
...
Closes #2211
2022-07-31 21:20:53 +09:00
Vseslav Kochenov
3ac37e250f
ebiten: add ReadDebugInfo
for getting debug info (only graphics libray so far) ( #2222 )
...
Closes #2177
2022-07-31 02:56:16 +09:00
Hajime Hoshi
2aa595de52
Revert "internal/graphicsdriver/directx: bug fix: check the error at CreateGraphicsPipelineState at initialization"
...
This reverts commit c183555cc8
.
Reason: this didn't help anything on the reporter's machine
2022-07-31 00:46:26 +09:00
Hajime Hoshi
95fb4370db
internal/glfwwin: remove the call of RemovePropW
...
This is unnecessary, and doesn't work on Xbox.
Also DestroyWindow doesn't work on Xbox so skip this on Xbox.
Updates #2084
2022-07-30 18:42:43 +09:00
divVerent
21207f827c
do not require installing file2byteslice to update go generate'd files. ( #2221 )
...
The tool is already referenced in go.mod, so it is trivial to just go run it -
that way, go generate can use it without the user explicitly installing it first.
2022-07-29 20:43:23 +09:00
Hajime Hoshi
c183555cc8
internal/graphicsdriver/directx: bug fix: check the error at CreateGraphicsPipelineState at initialization
...
CreateGraphicsPipelineState someitmes causes an error
DXGI_ERROR_DEVICE_HUNG, but we failed to know why.
Instead of fixing this, check the error earlier and use the fallback
grpahics library OpenGL in this case.
Updates #2198
2022-07-29 16:20:09 +09:00
Hajime Hoshi
3eeb401d22
internal/gamepaddb: refactoring
2022-07-29 12:17:55 +09:00
Hajime Hoshi
bacb630c5b
internal/gamepaddb: bug fix: don't panic with invalid inputs
...
Closes #2218
2022-07-29 12:14:20 +09:00
Hajime Hoshi
ca8c36499d
ebiten: recommend errors.Is instead of comparing the returned value directly
...
Closes #2152
2022-07-24 23:25:48 +09:00
Hajime Hoshi
9ea399e7cc
internal/graphicsdriver/directx: typo
2022-07-20 01:24:08 +09:00
Hajime Hoshi
7025f195a7
internal/graphicsdriver/directx: check DirectX availability earlier for Wine
...
Closes #2114
2022-07-20 01:22:45 +09:00
Hajime Hoshi
e861080145
internal/graphicsdriver/directx: early error check for Wine
...
Updates #2114
2022-07-19 23:55:44 +09:00
Hajime Hoshi
f8acd5e7ee
internal/graphicsdriver/directx: bug fix: D3D12CreateDevice could be called without creating a device
2022-07-19 03:22:46 +09:00
Hajime Hoshi
0f9ec45709
internal/graphicsdriver/directx: refactoring
2022-07-18 23:36:42 +09:00
Hajime Hoshi
0f52381580
ebiten: rename TPS functions
...
* SetMaxTPS() -> SetTPS()
* MaxTPS() -> TPS()
* CurrentTPS() -> ActualTPS()
* CurrentFPS() -> ActualFPS()
Closes #2071
2022-07-17 11:30:12 +09:00
Hajime Hoshi
356c625601
internal/gamepad: improve resetting vibrations
2022-07-16 02:44:54 +09:00
Hajime Hoshi
90ac7d047d
internal/graphicsdriver/opengl/gl: bug fix: wrong build tag syntax
2022-07-15 23:34:09 +09:00
Hajime Hoshi
9e1a2bcb30
internal/gamepad: reorder function implements
2022-07-15 21:52:26 +09:00
Hajime Hoshi
d6547f12c6
internal/gamepad: implement gamepad vibrations for Xbox
...
Updates #2084
2022-07-15 21:33:23 +09:00
Hajime Hoshi
d231a35d3b
internal/gamepad: bug fix: release IDirectInputDevice8W on disconnecting
...
Closes #2205
2022-07-15 15:44:40 +09:00
Hajime Hoshi
520a30f3c7
internal/gamepad: bug fix: memory leak on Xbox
...
Updates #2084
2022-07-15 15:12:56 +09:00
Hajime Hoshi
c14403f195
internal/gamepad: bug fix: Y axis values are opposite on Xbox
...
Updates #2084
2022-07-15 14:55:38 +09:00
Hajime Hoshi
b31ce0a568
internal/graphicsdriver/directx: update comments
2022-07-15 13:33:45 +09:00
Hajime Hoshi
b48c2aa103
internal/graphicsdriver/directx: bug fix: too many constant buffers could be allocated
...
Closes #2204
2022-07-15 03:40:24 +09:00
Hajime Hoshi
e3d025bf4f
internal/graphicsdriver/directx: fix a wrong constant usage
2022-07-15 02:49:01 +09:00
Hajime Hoshi
8d74039617
internal/graphicsdriver/directx: increment numDescriptorsPerFrame
...
16 seems too conservative. Let's double it.
Updates #2188
2022-07-15 02:42:23 +09:00
Hajime Hoshi
9a35366380
internal/graphicsdriver/directx: batch ResourceBarrier commands ( #2203 )
...
Updates #2188
2022-07-15 02:34:38 +09:00
Hajime Hoshi
41edd98675
Revert "internal/graphicsdriver/directx: batch ExecuteCommandList"
...
This reverts commit f92107c2ee
.
Reason: Performance regression
Updates #2188
2022-07-15 01:06:08 +09:00
Hajime Hoshi
f92107c2ee
internal/graphicsdriver/directx: batch ExecuteCommandList
...
Updates #2188
2022-07-15 00:51:02 +09:00
Hajime Hoshi
82d31c5fb7
internal/graphicsdriver/directx: remove redundant resetting of allocators
...
Updates #2202
2022-07-15 00:13:28 +09:00
Hajime Hoshi
479483b76d
internal/graphicsdriver/directx: bug fix: need to reset command allocators
...
Closes #2202
2022-07-14 21:21:55 +09:00
Hajime Hoshi
b3267a7126
internal/graphicsdriver/directx: bug fix: wrong offsets
...
* Wrong offsets were speicified when creating a constant buffer view and
a shader resource view.
* Wrong root descriptor tables were speicified. For one draw command,
one descriptor table for a constant buffer and textures should be used.
Updates #2198
Closes #2201
2022-07-14 03:01:40 +09:00
Hajime Hoshi
42d5d91829
internal/graphicsdriver/directx: unmap constant buffers appropriately
...
Updates #2198
2022-07-14 01:54:34 +09:00
Hajime Hoshi
6f182d1124
internal/graphicsdriver/directx: fix a suspicious error chceck
2022-07-14 01:45:21 +09:00
Hajime Hoshi
7bf179472b
internal/restorable: change the naming convention: Num -> Count
2022-07-13 02:11:12 +09:00
Hajime Hoshi
921aeb4ea7
audio: rename channelNum -> channelCount
2022-07-13 02:08:38 +09:00
Hajime Hoshi
16ff5c5039
internal/shaderir: change the naming convention: Num -> Count
2022-07-13 02:02:48 +09:00
Hajime Hoshi
dce34d2306
internal/shader: change the naming convention: Num -> Count
2022-07-13 02:02:48 +09:00
Hajime Hoshi
afed6a83c6
internal/graphics: change the naming convention: Num -> Count
...
This change also renames ebiten.MaxIndicesNum -> ebiten.MaxIndicesCount.
2022-07-13 02:02:44 +09:00
Hajime Hoshi
2203c3c448
internal/ui: remove the keypress event and the charCode preperty usages
...
These APIs are deprecated.
Closes #2199
2022-07-12 23:36:58 +09:00
Hajime Hoshi
55adc2113e
internal/clock: Update -> UpdateFrame
2022-07-12 13:18:49 +09:00
Hajime Hoshi
e05df6a778
internal/ui: refactoring
2022-07-12 12:47:34 +09:00
Hajime Hoshi
d4e1787154
internal/clock: refactoring
2022-07-12 12:42:16 +09:00
Hajime Hoshi
c5e952d196
internal/ui: refactoring: reduce members from globalState
2022-07-12 12:35:07 +09:00
Hajime Hoshi
08e54ae1a6
internal/ui: rename the TPS functions
...
Updates #2071
2022-07-12 12:25:57 +09:00
Hajime Hoshi
b8367da7e2
internal/graphics: optimize imageSrcNUnsafeAt
2022-07-11 01:07:06 +09:00
Hajime Hoshi
b27b7ec483
internal/graphicsdriver/directx: use CreateEventEx to follow the official example
2022-07-10 22:44:40 +09:00
Hajime Hoshi
4c121ae5eb
internal/graphicsdriver/directx: bug fix: a wrong fence value was passed to SetEventOnCompletion
2022-07-10 22:24:39 +09:00
Hajime Hoshi
a22125a075
internal/graphicsdriver/directx: bug fix: ResizeBuffers failed without the flag
...
Closes #2193
2022-07-10 19:55:28 +09:00
Hajime Hoshi
4afabe34ae
internal/shader: optimization: remove unnecessary local variables
...
Updates #2034
Updates #2188
2022-07-10 19:01:58 +09:00
Hajime Hoshi
b6a340a96f
internal/shader: optimization: use a regular return for a function with one output parameter
...
Updates #2034
Updates #2188
2022-07-10 18:18:46 +09:00
Hajime Hoshi
8c879c7bcf
internal/shader: refactoring
2022-07-10 16:02:50 +09:00
Hajime Hoshi
bf0f3d304b
internal/graphicsdriver/directx: add optimization flag to D3DCompile
...
Updates #2034
Updates #2188
2022-07-10 02:55:16 +09:00
Hajime Hoshi
0035ba0bd1
internal/graphicsdriver/directx: allow tearing when vsync is off
...
Updates #2034
Updates #2188
2022-07-10 01:17:36 +09:00
Hajime Hoshi
a32a137fa8
internal/graphicsdriver/directx: skip unnecessary flushing commands
...
Updates #2034
Updates #2188
2022-07-10 00:24:14 +09:00
Hajime Hoshi
b2a1b9a9a2
internal/shader: bug fix: float constant didn't work with assign operators
2022-07-09 22:29:42 +09:00
Hajime Hoshi
55c7a2df6c
internal/graphicsdriver/opengl/gl: bug fix: wrong build tags
2022-07-09 16:15:56 +09:00
Hajime Hoshi
28fd3ec9e5
add the ebitengine version build tags besides the ebiten version
...
Closes #2111
Updates #2190
2022-07-09 15:38:03 +09:00
Hajime Hoshi
428b1263d9
add ebitenginecbackend build tag besides ebitencbackend
...
Updates #2111
Updates #2190
2022-07-09 15:23:52 +09:00
Hajime Hoshi
204fb5935b
add new environment variables with the EBITENGINE_ suffix
...
Updates #2111
Updates #2190
2022-07-09 15:00:28 +09:00
Hajime Hoshi
a5179b9491
internal/shaderir/glsl: bug fix: test failures with OpenGL
...
Updates #2186
2022-07-09 02:43:48 +09:00
Hajime Hoshi
c01821ca5c
internal/shader: use all functions for vector comparisons
...
Updates #2186
2022-07-09 02:30:16 +09:00
Hajime Hoshi
3d5031571d
internal/graphicsdriver/directx: add the original source at D3DCompile errors
2022-07-09 01:59:51 +09:00
Hajime Hoshi
6dcd2ff11c
internal/shader: bug fix: wrong assignment rule for booleans
2022-07-08 02:19:42 +09:00
Hajime Hoshi
87be157b23
internal/shader: refactoring
2022-07-08 01:09:42 +09:00
Hajime Hoshi
a3590cb258
internal/shader: add type checks to bool/int/flaot
...
Updates #2184
2022-07-08 00:22:55 +09:00
Hajime Hoshi
faa2ad5c6f
internal/shader: add type checks for mat2/mat3/mat4
...
Updates #2184
2022-07-07 23:05:26 +09:00
Hajime Hoshi
f89277fd85
internal/shader: add type checks to vec2/vec3/vec4
...
Updates #2184
2022-07-07 00:20:02 +09:00
Hajime Hoshi
a866fe7391
internal/graphicscommand: improve debug command messages for shaders
2022-07-06 19:29:19 +09:00
Hajime Hoshi
8522bfd0bf
internal/graphicscommand: bug fix: replacePixelsCommand should not read pixels
...
Reading pixels, writing pixels, and using the image as a source might
cause a flaky behavior with Metal. Stop reading pixels if possible.
Closes #2180
2022-07-05 23:30:26 +09:00
Hajime Hoshi
dd805c9414
internal/atlas: remove a wrong comment
...
(*restrable.Image).ReplacePixels can take overlapped regions.
See TestOverlappedPixels.
Updates #2180
2022-07-05 13:59:23 +09:00
Hajime Hoshi
08ebab0558
internal/ui: better fix for initialMonitorByOS
...
Updates #2179
2022-07-04 14:42:21 +09:00
Hajime Hoshi
47c65a92ae
internal/graphicsdriver/directx: bug fix: ignore DXGI_STATUS_OCCLUDED
...
When a screen is locked, an Ebitengine application crashed as the
swap chain's Present returned DXGI_STATUS_OCCLUDED.
Let's ignore the error and continue to run the applications. In the
ideal world, an application should stop running during the screen lock,
so let's revisit this later.
This fix also fixes the issue that a Win32API GetCursorPos returned
an error ERROR_ACCESS_DENIED when the screen was locked.
Closes #2179
2022-07-04 12:55:36 +09:00
Hajime Hoshi
fb23e4b578
internal/processtest/testdata: fix col and row
...
Updates #2154
2022-07-04 12:07:39 +09:00
Hajime Hoshi
5411e8136b
ebiten: bug fix: use DrawTriangles as an implementation of Set
...
Closes #2154
2022-07-04 12:02:47 +09:00
Hajime Hoshi
7d725f3e58
Revert "internal/graphicscommand: bug fix: using an image just after ReplacePixels might fail on Metal"
...
This reverts commit c31cc4ecff
.
Reason: This didn't fix the issue.
Updates #2154
2022-07-04 11:50:06 +09:00
Hajime Hoshi
c31cc4ecff
internal/graphicscommand: bug fix: using an image just after ReplacePixels might fail on Metal
...
Inserting a dummy rendering command after ReplacePixels and before
DrawTriangles solved the issue. This is a very dirty hack, but
there seems no other better way.
Closes #2154
2022-07-03 15:59:18 +09:00
Hajime Hoshi
afe1a93648
internal/graphicscommand, internal/graphicsdriver/metal: remove unused code
2022-07-03 15:23:52 +09:00
Hajime Hoshi
12533c2cce
Revert "internal/graphicsdriver/metal: bug fix: need to commit replace-pixels commands at DrawTriangles"
...
This reverts commit ac802cf0d0
.
Reason: This caused flickerings, and didn't solve #2154
Updates #2154
Closes #2174
2022-07-03 12:17:58 +09:00
Hajime Hoshi
ac5c48f575
internal/gamepad: support Xbox
...
Updates #2084
2022-07-02 01:02:24 +09:00
Hajime Hoshi
a6f6fdbfb7
internal/gamepad: update for Xbox
...
Updates #2084
2022-07-01 20:43:49 +09:00
Hajime Hoshi
97039ff714
internal/gamepad: implement gamepad detection callbacks for Xbox
...
Updates #2084
2022-07-01 17:15:11 +09:00
Hajime Hoshi
298d6488cc
internal/affine: add test
...
Updates #2170
2022-07-01 01:46:37 +09:00
Hajime Hoshi
8cdfa4f66c
internal/affine: create a fast path for ChangeHSV
...
When hue = 0 and saturation = 1, this should be the same as scaling.
Closes #2170
2022-06-30 11:32:12 +09:00
Hajime Hoshi
a9c9e18ff4
internal/graphicscommand: better strings for ColorM
2022-06-30 11:13:02 +09:00
Hajime Hoshi
0eb2f76422
internal/buffered: refactoring
2022-06-25 01:42:40 +09:00
Hajime Hoshi
bf27f25e26
internal/gamepad: bug fix: build failures on FreeBSD
2022-06-25 01:36:13 +09:00
Hajime Hoshi
c490347cef
internal/buffer: bug fix: shader manipulations must be buffered
...
Closes #2162
2022-06-25 01:31:20 +09:00
Hajime Hoshi
2d23168aca
iinternal/gamepad: start implementation for Xbox
...
Updates #2084
2022-06-25 00:02:12 +09:00
Hajime Hoshi
3fb3997160
internal/gamepad: separate the Xbox part
...
Updates #2084
2022-06-24 22:49:37 +09:00
Hajime Hoshi
847c4f067a
internal/gamepad: make nativeGamepad(s) interfaces
...
This is a preparation to switch the gamepad implementation for Xbox.
Updates #2084
2022-06-24 21:52:48 +09:00
Hajime Hoshi
f1037d8bff
internal/ui: handle gamepad errors
2022-06-24 20:20:49 +09:00
Hajime Hoshi
0cd43bd081
internal/gamepad: stop embedding a member into a struct
...
This is a preparation to switch the gamepad implementation for Xbox.
Updates #2084
2022-06-24 19:01:50 +09:00
Hajime Hoshi
712940cb02
internal/graphicsdriver/directx: bug fix: leave mapped regions for constant buffers
...
Mapping for a constant buffer every frame might sometimes fails. We
are not sure the reason, but in the official examples, leaving mapped
regoins seems the way to go.
Updates #2084
Closes #2157
2022-06-23 17:09:46 +09:00
Hajime Hoshi
506d534370
internal/ui: fix window sizes for Xbox
...
Updates #2084
2022-06-23 14:50:41 +09:00
Hajime Hoshi
c93cecdc2b
internal/graphicsdriver/directx: accept S_FALSE at ScheduleFrameEventX
2022-06-22 02:13:32 +09:00
Hajime Hoshi
7b05e59000
internal/graphicsdriver/directx: bug fix: wrong GUID for IDXGIDevice
2022-06-22 01:59:22 +09:00
Hajime Hoshi
8311ff1e46
internal/graphicsdriver/directx: bug fix: wrong pointer usage
2022-06-22 01:49:23 +09:00
Hajime Hoshi
10af36ee9f
internal/jsutil: bug fix: unnecessary allocations of temporary ArrayBuffers
...
Closes #2156
2022-06-21 21:54:02 +09:00
Hajime Hoshi
7e92b79a00
internal/graphicsdriver/directx: implement swap chains for Xbox
...
Updates #2084
2022-06-21 12:21:00 +09:00
Hajime Hoshi
a641f9ede0
internal/graphicsdriver/directx: refactoring
2022-06-20 23:40:53 +09:00
Hajime Hoshi
969e87fb89
internal/graphicsdriver/directx: fix moveToNextFrame for Xbox
...
Updates #2084
2022-06-20 00:41:34 +09:00
Hajime Hoshi
f8e9dcf035
internal/graphicsdriver/directx: refactoring
2022-06-19 17:58:04 +09:00
Hajime Hoshi
08c8c8089a
internal/graphicsdriver/directx: bug fix: clear constant buffers at the end of DrawTriangles
...
Constant buffers should not be reset while a stencil buffer is used.
Closes #2138
2022-06-19 17:13:34 +09:00
Hajime Hoshi
ac802cf0d0
internal/graphicsdriver/metal: bug fix: need to commit replace-pixels commands at DrawTriangles
...
Closes #2154
2022-06-19 15:38:12 +09:00
Hajime Hoshi
667bf2ff9d
internal/graphicsdriver/directx: refactoring
2022-06-19 01:44:31 +09:00
Hajime Hoshi
2a5b64bf4d
internal/graphicsdriver/directx: suppress warnings for depth buffers
...
Updates #2138
2022-06-19 00:21:04 +09:00
Hajime Hoshi
81b3d7bfac
internal/graphicsdriver/directx: add an assertion
2022-06-18 22:33:07 +09:00
Hajime Hoshi
f7a108e693
internal/graphicsdriver/directx: refactoring
2022-06-18 21:53:41 +09:00
Hajime Hoshi
b71a4975dd
internal/graphicsdriver/directx: bug fix: wrong state transitions at screen images
...
This change fixes the following issues:
* There should be two resource states for presenting targets, so an image
for the screen must have two resource states, though it had only one
in the current implementation.
* At removeImage, the screen image was removed unexpectedly.
Updates #2081
Closes #2151
2022-06-18 19:01:59 +09:00
Hajime Hoshi
522660c1f9
internal/graphicsdriver/directx: fix fence usages
...
Updates #2034
Updates #2138
Updates #2149
2022-06-18 15:44:54 +09:00
Hajime Hoshi
e78d888b24
internal/graphicsdriver/directx: handle error at Signal
2022-06-18 02:53:12 +09:00
Hajime Hoshi
0c38d6faeb
internal/graphicsdriver/directx: add comment about frames
...
Updates #2034
2022-06-18 01:18:49 +09:00
Hajime Hoshi
a16ffef499
internal/graphicsdriver/directx: update frameIndex at present
...
This follows the official GDK samples.
2022-06-18 01:09:54 +09:00
Hajime Hoshi
07a558b38d
internal/graphicsdriver/metal: bug fix: the default driver must be initialized on the main thread
...
Closes #2147
2022-06-17 14:58:26 +09:00
Hajime Hoshi
b43312fe80
internal/graphicsdriver/directx: add comments
...
Updates #2142
2022-06-17 12:19:36 +09:00
Hajime Hoshi
2f84e77e74
internal/graphicsdriver/directx: fallback to OpenGL when initialization fails
...
Closes #2142
2022-06-17 12:12:44 +09:00
Hajime Hoshi
9962fc5ee5
internal/graphicsdriver/direct: replace Get -> NewGraphics
...
Updates #2142
2022-06-17 11:48:40 +09:00
Hajime Hoshi
138463e219
internal/ui: rename chooseGraphicsDriver -> newGraphicsDriver
2022-06-17 02:40:39 +09:00
Hajime Hoshi
7484df0c5e
internal/graphicsdriver/metal: replace Get with NewGraphics
...
This is a prepartion to return an error when a graphics driver, especially
DirectX, fails to initialize.
Updates #2142
2022-06-17 02:40:35 +09:00
Hajime Hoshi
a6d415ebf2
internal/graphicsdriver/opengl: replace Get with NewGraphics ( #2146 )
...
This is a prepartion to return an error when a graphics driver, especially
DirectX, fails to initialize.
Updates #2142
2022-06-17 02:02:29 +09:00
Hajime Hoshi
195b060911
internal/graphicsdriver/metal: refactoring: initialize the driver at Get
2022-06-16 23:52:55 +09:00
Hajime Hoshi
76d88b276a
internal/graphicsdriver/directx: call C++ side for ID3D12GraphicsCommandList functions
...
Updates #2084
2022-06-13 22:35:58 +09:00
Hajime Hoshi
4aebcd2a04
internal/graphicsdriver/directx: bug fix: consider empty slices as arguments
2022-06-13 17:51:02 +09:00
Hajime Hoshi
c08d79d2ce
internal/graphicsdriver/directx: keep runtime.KeepAlive for Xbox
2022-06-13 17:36:58 +09:00
Hajime Hoshi
4adf46c2b0
internal/graphicsdriver/directx: refactoring
2022-06-13 17:25:27 +09:00
Hajime Hoshi
348435f769
internal/graphicsdriver/directx: fix a constant value for Xbox
...
Updates #2084
2022-06-13 14:23:29 +09:00
Hajime Hoshi
44cfb92cee
internal/ui: bug fix: MaximizeWindow before Run caused an unexpected error on Windows
...
Closes #2137
2022-06-13 12:28:20 +09:00
Hajime Hoshi
aef5402831
internal/graphicsdriver/directx: remove unused function
2022-06-13 01:35:31 +09:00
Hajime Hoshi
bcb2fe8c93
internal/graphicsdriver/directx: enable D3D12SerializeRootSignature for Xbox
...
Updates #2084
2022-06-13 01:02:48 +09:00
Hajime Hoshi
253f2757d1
internal/atlas: add a test to modify pixels after ReplacePixels call
2022-06-11 23:44:29 +09:00
Hajime Hoshi
08b52698c6
internal/graphicsdriver/directx: call C++ side for some functions for Xbox
...
Updates #2084
2022-06-11 19:37:17 +09:00
Hajime Hoshi
4a19d645b7
internal/graphicsdriver/opengl: remove a comment
2022-06-11 15:36:10 +09:00
Hajime Hoshi
71a32d2036
internal/ui: pass the canvas element directly instead of an ID
2022-06-11 15:34:17 +09:00
Hajime Hoshi
95628ee5f7
internal/ui: add a unique ID to the canvas for browsers
2022-06-11 15:24:50 +09:00
Hajime Hoshi
d42bb7d699
internal/graphicsdriver/directx: add a comment for Xbox
...
Updates #2084
2022-06-11 14:20:21 +09:00
Hajime Hoshi
826afcb9cc
internal/graphicsdriver/directx: fix CopyTextureRegion for Xbox
...
Updates #2084
2022-06-10 22:51:04 +09:00
Hajime Hoshi
abef203a70
rename github.com/ebitne/purego -> github.com/ebitengine/purego
2022-06-10 21:59:01 +09:00
Hajime Hoshi
07aa906753
internal/graphicsdriver/directx: fix GetCPU/GPUDescriptorHandleForHeapStart for Xbox
...
Updates #2084
2022-06-10 21:35:20 +09:00
Hajime Hoshi
b9373c498b
internal/graphicsdriver/directx: fix CreateCommandList for Xbox
...
Updates #2084
2022-06-10 16:44:07 +09:00
Hajime Hoshi
37369a2f4b
internal/atlas: add TestMaxImageSizeJust
2022-06-10 14:30:18 +09:00
Hajime Hoshi
03567f74f9
internal/atlas: bug fix: respect injected maxSize for testings
2022-06-10 14:25:08 +09:00
Hajime Hoshi
7c458f519e
internal/atlas: remove unnecessary comments
2022-06-10 13:53:24 +09:00
Hajime Hoshi
6b814888b5
internal/atlas: always use DrawTriangles at putOnAtlas
...
DrawTriangles was introduced at #1508 , and apparently there is no
reason we should use ReplacePixels here. So, simplify the logic by
using only DrawTriangles.
2022-06-10 02:58:04 +09:00
Hajime Hoshi
bdae45be8f
internal/atlas: add assertions
2022-06-10 02:38:35 +09:00
Hajime Hoshi
116e131ccf
internal/atlas: rename ImageTypeIsolated -> ImageTypeUnmanaged
2022-06-10 02:11:08 +09:00
Hajime Hoshi
b40022b286
internal/atlas: stop using padding for ImageTypeVolatile and ImageTypeIsolated
...
Closes #2131
2022-06-10 00:54:48 +09:00
Hajime Hoshi
9e34103491
internal/atlas: refactoring: make paddingSize a method
...
Updates #2131
2022-06-10 00:23:25 +09:00
Hajime Hoshi
5290605b2d
internal/atlas: add comments
2022-06-08 11:18:08 +09:00
Hajime Hoshi
9ee56ac320
inetrnal/atlas: remove unnecessary (and risky) locks
2022-06-08 10:05:15 +09:00
Hajime Hoshi
3b6a080519
internal/atlas: bug fix: use the global lock for shaders
...
Closes #2129
2022-06-08 10:00:31 +09:00
Hajime Hoshi
83ac234142
internal/ui: bug fix: offscreen images were created too often unexpectedly
2022-06-08 09:26:22 +09:00
Hajime Hoshi
6b212d7642
internal/restorable: refactoring: add Image.needsRestoring
2022-06-08 02:24:10 +09:00
Hajime Hoshi
9f729cf5c3
internal/restorable: remove SetVolatile
2022-06-08 02:20:09 +09:00
Hajime Hoshi
81f91658ff
internal/atlas: refactoring: remove SetVolatile and SetIsolate
...
Pass an image type to NewImage instead.
2022-06-08 01:08:00 +09:00
Hajime Hoshi
b8e8d72377
internal/restorable: rename ImageTypeScreenFramebuffer -> ImageTypeScreen
2022-06-07 23:45:35 +09:00
Hajime Hoshi
d3e3df812a
internal/ui: recreate an offscreen image when isScreenClearedEveryFrame is toggled
...
This is a preparation to remove SetVolatile and SetIsolated in
the atlas package.
2022-06-07 23:16:42 +09:00
Hajime Hoshi
6398230f84
internal/graphicscommand: add 'screen' info to (*newImageCommand).String()
2022-06-06 11:13:04 +09:00
Hajime Hoshi
73c893e977
internal/restorable: refactoring: unify NewScreenFramebufferImage and NewImage
2022-06-06 09:33:50 +09:00
Hajime Hoshi
31fd736ca5
internal/graphicscommand: refactoring: unify NewScreenFrameBufferImage and NewImage
2022-06-06 09:21:11 +09:00
Hajime Hoshi
cb0cbb4efa
internal/restorable: refactoring: introduce ImageType
2022-06-06 09:13:55 +09:00
Hajime Hoshi
7f10744514
internal/atlas: add an assertion at putOnAtlas
2022-06-06 09:01:04 +09:00
Hajime Hoshi
9bf5f2188f
internal/atlas: add an assertion at SetIsolated
2022-06-06 08:25:43 +09:00
Hajime Hoshi
86a0a4154d
internal/atlas: rename SetIsolate -> SetIsolated
2022-06-06 07:17:45 +09:00
Hajime Hoshi
b9012fc6ed
internal/atlas: unify the term 'isolate' and 'independent' to 'isolate'
2022-06-06 00:28:23 +09:00
Hajime Hoshi
6ce8f77c53
gofmt
2022-06-06 00:28:19 +09:00
Hajime Hoshi
0256b0cfbf
internal/graphicsdriver/directx: bug fix: disable fullscreen by Alt+Enter
...
By default, DirectX 12 tries to make the window fullscreen by Alt+Enter.
This caused application crashes. Let's disable this feature.
Closes #2123
2022-06-05 16:16:09 +09:00
Hajime Hoshi
51fe48fb76
internal/gamepad: bug fix: wrong offset especially on 32bit Linux
...
Closes #2122
2022-06-05 12:48:47 +09:00
Hajime Hoshi
5cdd2f8bce
internal/affine: further optimization to avoid heap allocation
...
Updates #2119
2022-06-04 15:13:30 +09:00
Hajime Hoshi
d518e64e22
Revert "internal/graphicsdriver/directx: refactoring: add syscallN"
...
This reverts commit 55a490736a
.
Reason: This has a potential risk of stack overflow.
Closes #2120
2022-06-04 13:58:01 +09:00
Hajime Hoshi
ecaa25faba
internal/affine: avoid heap allocations by casting a variable to a concrete type
...
This is a dirty hack but seems efficient.
Closes #2119
2022-06-04 13:18:14 +09:00
Hajime Hoshi
f69c550992
internal/graphicsdriver/directx: bug fix: go:nosplit was required for syscallN
...
Updates #2116
Closes #2117
2022-06-04 01:11:22 +09:00
Hajime Hoshi
55a490736a
internal/graphicsdriver/directx: refactoring: add syscallN
...
syscall.SyscallN is available as of Go 1.18 so this change implemented
our original syscallN function.
syscallN also panics when a given function pointer is 0. This helps
debugging especially on Xbox.
Updates #2084
2022-06-03 21:56:34 +09:00
Hajime Hoshi
3e1b313221
internal/graphicsdriver/directx: bug fix: ID3D12Resource::Map sometimes retrying
...
Updates #2113
Closes #2116
2022-06-03 21:56:30 +09:00
Hajime Hoshi
8e4e3d67c4
internal/gamepad: refactoring
2022-06-03 19:00:21 +09:00
Hajime Hoshi
2eb4ef1a94
internal/gamepad: give a window from another package instead of GetActiveWindow
...
GetActiveWindow doesn't work on Xbox.
Updates #2084
2022-06-03 18:42:54 +09:00
Hajime Hoshi
1580e92dfc
internal/gamepad: refactoring
2022-06-03 18:06:54 +09:00
Hajime Hoshi
90d26305e7
internal/gamepad: unify the naming convention for Win32API with other packages
2022-06-03 16:59:44 +09:00
Hajime Hoshi
124f233de0
internal/gamepad: cast returning values to uint32
2022-06-03 16:52:49 +09:00
Hajime Hoshi
532b476c4e
Revert "internal/graphicsdriver/directx: pass nil for pReadRange at Map"
...
This reverts commit 3b13158cc0
.
Reason: Specifying nil for reading ranges is not efficient
2022-06-03 13:59:34 +09:00
Hajime Hoshi
c6c45aadfa
Revert "Revert "internal/glfwwin: ignore errors from DWM functions""
...
This reverts commit 991cec993c
.
Reason: Reverted a wrong commit
2022-06-03 13:59:16 +09:00
Hajime Hoshi
991cec993c
Revert "internal/glfwwin: ignore errors from DWM functions"
...
This reverts commit 9ad87c0153
.
Reason: Specifying nil for reading ranges is not efficient
2022-06-03 13:49:45 +09:00
Hajime Hoshi
3b13158cc0
internal/graphicsdriver/directx: pass nil for pReadRange at Map
...
Updates #2113
2022-06-03 13:45:08 +09:00
Hajime Hoshi
9ad87c0153
internal/glfwwin: ignore errors from DWM functions
...
DWM functions might not be implemented on Proton. In the original
GLFW implementation, the returning values are not checked.
Updates #2113
2022-06-03 01:36:31 +09:00
Hajime Hoshi
c29c423686
internal/glfwwin, internal/graphicsdriver/directx: bug fix: HRESULT and Errno are imcompatible
2022-06-03 00:41:04 +09:00
Hajime Hoshi
7d95dddb1a
internal/glfwwin: refactoring
2022-06-03 00:32:36 +09:00
Hajime Hoshi
666d50e83d
internal/glfwwin: use HRESULT for an error value instead of GetLastError
...
GetLastError might not be reliable for some APIs like DwmFlush.
Updates #2113
2022-06-02 23:02:09 +09:00
Hajime Hoshi
4a9caf8afb
internal/graphicsdriver/directx: ignore higher 32bit values for Errno
...
Updates #2113
2022-06-02 23:01:38 +09:00
Hajime Hoshi
fb03a1e351
internal/graphicsdriver/directx: bug fix: ID3D12Resource::Unmap does not return an value
...
Updates #2113
2022-06-02 12:52:58 +09:00
Hajime Hoshi
4a684c4195
treat Windows error values as uint32 instead of windows.Handle
...
The error value are defined as windows.Handle (64bit) in
golang.org/x/sys/windows, but an actual type should be HRESULT (32bit).
This causes an issue that a returning value from a Windows API was
recognized as a non-zero error value though the value was not an error,
when the value's lower 32-bits are all zero.
See also https://github.com/golang/go/issues/48736#issuecomment-1143993096
Updates #2113
2022-06-02 12:10:21 +09:00
Hajime Hoshi
b900f83a01
internal/graphicsdriver/directx: refactoring: remove an unused member Image.numRows
2022-06-02 01:53:27 +09:00
Hajime Hoshi
0dc6e4e64e
internal/graphicsdriver/directx: use ID3D12Resource instead of ID3D12Resource1
...
Updates #2114
2022-06-02 01:26:02 +09:00
Hajime Hoshi
432365ff92
internal/glfwwin: ignore the error at SetProcessDpiAwarenessContext
...
Updates #2113
2022-06-01 23:11:06 +09:00
Hajime Hoshi
285a5cbc69
internal/glfwwin: skip some functions for Xbox
...
Updates #2084
2022-06-01 12:08:03 +09:00
Hajime Hoshi
0adb0c3860
internal/ui: bug fix: compile error
2022-06-01 02:09:10 +09:00
Hajime Hoshi
9c15bda275
internal/ui: return a null Window on Xbox
...
Updates #2084
2022-06-01 01:26:31 +09:00
Hajime Hoshi
ff868ba39f
internal/ui: skip some functions for Xbox
...
Updates #2084
2022-06-01 00:58:36 +09:00
Hajime Hoshi
dcb5bb47c6
internal/glfw: unify the naming convension for Win32API
2022-06-01 00:48:22 +09:00
Hajime Hoshi
6fc71e97bb
internal/glfwwin: skip some functions for Xbox
...
Updates #2084
2022-06-01 00:35:43 +09:00
Hajime Hoshi
aa4a2b64e0
internal/glfwwin: bug fix: update _glfw.windows
2022-06-01 00:01:07 +09:00
Hajime Hoshi
c99b948df3
internal/graphicsdriver/directx: refactoring
...
Updates #2084
2022-05-30 03:17:15 +09:00
Hajime Hoshi
d4226659ee
internal/graphicsdriver/directx: initialize a device for Xbox
...
Updates #1162
2022-05-30 02:10:18 +09:00
Hajime Hoshi
59798d29f4
internal/graphicsdriver/directx: defer the initialization
2022-05-29 22:02:39 +09:00
Hajime Hoshi
b4491ab94d
internal/graphicsdriver/directx: unify the naming convention with glfwwin
2022-05-29 21:18:23 +09:00
Hajime Hoshi
0081fa7a47
internal/graphicsdriver/directx: add a comment
2022-05-29 20:05:37 +09:00
Hajime Hoshi
ad380a32f4
internal/glfwwin: split GDK part to a new package internal/microsoftgdk
...
Updates #1162
2022-05-29 19:25:26 +09:00
Hajime Hoshi
7f46938ff7
internal/glfwwin: return an error at initWGL on Xbox
...
Updates #1162
2022-05-29 17:37:06 +09:00
Hajime Hoshi
59e6d4578b
internal/glfw: skip some Win32APIs for Xbox
...
Updates #1162
2022-05-29 17:04:47 +09:00
Hajime Hoshi
ce147a7e38
internal/glfwwin: refactoring: remove Monitor.currentMode
2022-05-29 16:00:18 +09:00
Hajime Hoshi
2efbb819e0
internal/glfw: skip some Win32APIs for Xbox
...
Updates #1162
2022-05-29 15:54:37 +09:00
Hajime Hoshi
05d49c5a52
internal/glfwwin: create a pseudo monitor for Xbox
...
Updates #1162
2022-05-29 15:38:17 +09:00
Hajime Hoshi
f8163f93c0
internal/glfwwin: refactoring
2022-05-29 14:22:22 +09:00
Hajime Hoshi
ef7d10a36e
internal/glfwwin: add a build tag microsoftgdk
...
Updates #1162
2022-05-29 01:31:42 +09:00
Hajime Hoshi
5c63c4a4aa
internal/graphicsdriver/metal: support macOS 10.12 by removing packed types
...
From the Metal shading language specification [1] Table 2.2.3, attribute
variables in Ebitengine's vertices don't have to be packed. Then, we can
remove `packed` types.
[1] https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf
Closes #2107
2022-05-28 23:57:59 +09:00
Hajime Hoshi
ac922742bf
internal/glfw: use shorter copyright comments
2022-05-27 20:38:45 +09:00
Hajime Hoshi
f7d1a43e98
internal/glfwwin: remove GammaRamp
2022-05-27 20:19:12 +09:00
Hajime Hoshi
df0208ec79
internal/glfwwin: remove unused exported functions
2022-05-27 20:15:36 +09:00
Hajime Hoshi
3a6b707b29
internal/glfwwin: remove unused members (a monitor size)
2022-05-27 20:12:43 +09:00
Hajime Hoshi
d577cc5e7d
internal/graphicsdriver/opengl/gl: rename files
...
Updates #1162
2022-05-27 18:31:40 +09:00
TotallyGamerJet
726e88e520
internal/graphics/opengl/gl: remove CGO in openGL on macOS ( #2104 )
...
Updates #1162
2022-05-27 18:26:53 +09:00