Hajime Hoshi
a6e121613f
internal/graphicsdriver/directx: bug fix: wrong SDK version for Xbox One
2022-11-05 02:31:28 +09:00
Hajime Hoshi
50021ef3e4
internal/graphicscommand: use buffers for []float32 to reduce allocations
2022-11-04 21:55:44 +09:00
Hajime Hoshi
d73e8f785d
internal/graphicsdriver: render various destination regions as one command
...
Closes #2232
2022-11-04 20:49:44 +09:00
Hajime Hoshi
1ce29e2afa
internal/graphicsdriver/directx: reduce rendering paths for even-odd rendering
2022-11-04 18:18:08 +09:00
Hajime Hoshi
0afb6fd22a
internal/graphicsdriver/metal: reduce rendering paths for even-odd rendering
2022-11-04 16:17:51 +09:00
Hajime Hoshi
1839dd0b9b
internal/graphicscommand: bug fix: test failures on Linux
2022-11-04 03:55:05 +09:00
Hajime Hoshi
005e87a917
internal/ui: prepare extra capacities for uniform variables
2022-11-04 03:18:49 +09:00
Hajime Hoshi
80e3baae9f
internal/graphicscommand: reduce allocations of float32 slices
2022-11-04 02:34:44 +09:00
Hajime Hoshi
c4e4e55d75
internal/shaderir: cache reachable uniform variables
...
Updates #2232
2022-11-04 01:28:24 +09:00
Hajime Hoshi
384dee7160
internal/graphicscommand: remove unused uniform variables
...
This improves possibility of merging graphics commands by reducing
uniform variables.
Updates #2232
2022-11-03 22:45:17 +09:00
Hajime Hoshi
0762db3b3e
internal/shaderir: refactoring
2022-11-03 18:16:54 +09:00
Hajime Hoshi
7dbb078a9e
internal/shaderir: refactoring
2022-11-03 17:44:11 +09:00
Hajime Hoshi
e2c25dbc6d
internal/shaderir: rename functions
2022-11-03 17:14:49 +09:00
Artem Yadelskyi
10415d417a
all: replace interface{}
with any
( #2430 )
...
Closes #2429
2022-11-03 15:33:09 +09:00
Artem Yadelskyi
5b53cef59e
all: remove old // +build
comments ( #2431 )
...
Closes #2325
2022-11-03 12:55:14 +09:00
Hajime Hoshi
8aacf067dd
all: use x/sys/execabs instead of os/exec
...
Closes #2418
2022-11-01 23:36:57 +09:00
Hajime Hoshi
1b3696a7ff
internal/graphicsdriver/opengl: fix comments
2022-10-31 12:59:27 +09:00
Hajime Hoshi
a5993f09a2
internal/graphicscommand: refactoring: add preserved uniform variables at the graphicscommand package
...
This is a preparation to skip setting unnecessary uniform variables
like dstRegion.
Updates #2232
2022-10-30 22:30:52 +09:00
Hajime Hoshi
690e73c11b
all: replace reflect.SliceHeader with unsafe.Slice
...
Closes #2420
2022-10-30 12:25:30 +09:00
Hajime Hoshi
ac61126473
internal/graphicscommand: always flush buffers
...
After #2423 is fixed, buffers should be able to be flushed safely
anytime.
Updates #2391
Updates #2423
2022-10-30 10:51:41 +09:00
Hajime Hoshi
b096ba700a
internal/graphicscommand: bug fix: clear buffers when disposing an image
...
Closes #2423
2022-10-30 03:38:53 +09:00
Hajime Hoshi
5eceabd172
Revert "internal/graphicscommand: bug fix: flush image buffers"
...
This reverts commit d6910eb9ab
.
Reason: The wasm flakiness occured again
Updates #2391
Updates #2423
2022-10-30 02:32:28 +09:00
Hajime Hoshi
d6910eb9ab
internal/graphicscommand: bug fix: flush image buffers
...
This is basically a revert for 4d5b608d0c
.
This caused a crash on Windows.
Even after this fix, the browser tests seem no longer flaky, but
I am not 100% sure.
Updates #2391
Closes #2423
2022-10-30 02:21:56 +09:00
Hajime Hoshi
ee595659e7
Revert "internal/gamepad: remove dependency on golang.org/x/sys/unix"
...
This reverts commit 046f7e52a3
.
Reason: As we drop Go 1.16, we no longer have to remove this dependency.
Updates #2421
2022-10-29 23:23:13 +09:00
Hajime Hoshi
046f7e52a3
internal/gamepad: remove dependency on golang.org/x/sys/unix
2022-10-29 21:42:08 +09:00
Hajime Hoshi
ac08ebe080
internal/ui: set SwapInterval(0) when resizing the window
...
This mitigates flickering at least on macOS with OpenGL.
Updates #2144
2022-10-29 17:49:32 +09:00
Hajime Hoshi
066029539e
internal/ui: clean-up code
...
A callback is preferred to a dirty flag.
Updates #2341
2022-10-28 19:07:37 +09:00
Hajime Hoshi
b019a3723a
internal/ui: optimize GPU usages when the screen doesn't have to be updated
...
This change skips rendering when 1) the screen is not cleared every frame
(`SetScreenClearedEveryFrame(false)`) and 2) Draw doesn't draw anything
onto the screen. The GPU usages decreased on some machines (e.g. GPU usage
was 10% with an empty Ebitengine project and became 2-3 % on a Windows
machine).
Updates #2341
2022-10-28 18:51:06 +09:00
Hajime Hoshi
2cf651bed8
internal/graphicsdriver/directx: resize the swap buffer chain at the end of a frame
...
Updates #2144
2022-10-25 00:35:09 +09:00
Nathan Levett
f220eb729c
internal/graphicsdriver/opengl: move OpenGL constants to seperate package ( #2408 )
...
Closes #2389
2022-10-24 23:22:14 +09:00
Hajime Hoshi
3b7bc2fc57
internal/ui: remove unnecessary comments
2022-10-23 00:39:37 +09:00
Hajime Hoshi
fc2f999ebf
internal/ui: refactoring: separate globalState into a new file
2022-10-23 00:11:35 +09:00
Hajime Hoshi
422de70d59
internal/ui: bug fix: screenshot didn't include antialias renderings
2022-10-22 14:19:24 +09:00
Hajime Hoshi
c49db07e75
internal/ui: bug fix: wrong property name was used
...
Closes #2400
2022-10-21 21:37:27 +09:00
Hajime Hoshi
f04e391cb4
all: rename emptyImage -> whiteImage
2022-10-21 15:26:56 +09:00
Hajime Hoshi
a990d79905
internal/ui: refactoring
2022-10-21 03:11:13 +09:00
Hajime Hoshi
9ec23ddeb4
ebiten: add DrawTrianglesOptions.AntiAlias
and DrawTrianglesShaderOptions.AntiAlias
...
Closes #2385
2022-10-21 02:07:41 +09:00
Hajime Hoshi
da5f5ea327
ebiten: add blend factors
...
Updates #2382
2022-10-18 00:21:13 +09:00
Hajime Hoshi
d2a99afa44
internal/graphicsdriver/opengl: bug fix: lastBlend was not updated correctly on GLES
2022-10-17 16:05:09 +09:00
Hajime Hoshi
46a218c278
internal/graphicsdriver/metal/mtl: bug fix: wrong renaming
...
Updates #2382
2022-10-17 01:11:54 +09:00
Hajime Hoshi
871a8869db
ebiten: bug fix: wrong renaming
...
Updates #2382
2022-10-17 01:00:23 +09:00
Hajime Hoshi
180e456a8e
ebiten: rename members of Blend
...
Updates #2382
2022-10-17 00:51:55 +09:00
Hajime Hoshi
e03825bf08
ebiten: add BlendOperationSubtract and BlendOperationReverseSubtract
...
Updates #2382
2022-10-17 00:30:24 +09:00
Hajime Hoshi
06c53c1445
internal/grphicsdriver/opengl: bug fix: wrong consntant was used for blend operations
...
Updates #2382
2022-10-17 00:21:12 +09:00
Hajime Hoshi
b79495761e
ebiten: add Blend and deprecate CompositeMode
...
Updates #2382
2022-10-16 22:47:00 +09:00
Hajime Hoshi
bd0d43f98f
internal/graphicsdriver: use byte for blending members
2022-10-16 20:49:12 +09:00
Hajime Hoshi
b6987b6312
internal/graphicsdriver/opengl: bug fix: needed to reset lastBlend
2022-10-16 20:44:09 +09:00
Hajime Hoshi
7c459c152b
internal/atlas: bug fix: compile error
2022-10-16 20:02:42 +09:00
Hajime Hoshi
2855095ac9
all: unify terms for buffers and flushing
2022-10-16 19:47:00 +09:00
Hajime Hoshi
4d5b608d0c
internal/graphicscommand: bug fix: suppress test flakiness on browsers
...
Closes #2391
2022-10-16 17:55:23 +09:00
Hajime Hoshi
475dc6394f
internal/atlas: remove an unnecessary mutex
...
Updates #2390
2022-10-16 15:29:02 +09:00
Hajime Hoshi
27cb149475
internal/graphicscommand: bug fix: resolve unsent WritePixels commands
...
(*Image).WritePixels doens't send a command to the queue immediately
but caches commands internally. However, the package atlas assumed
that pixel data was sent to the cache every end of a frame. Then, byte
slices for pixels were corrupted.
This change fixes the issue by resolving all the images when flushing
commands.
Closes #2390
2022-10-16 15:19:25 +09:00
Hajime Hoshi
aa81a6cc7d
internal/processtest/testdata: add a test file
...
Updates #2362
2022-10-16 15:17:09 +09:00
Hajime Hoshi
09a7d39874
internal/graphicsdriver: add Blend struct
...
This is a preparation to specify blend factors and blend operators.
Updates #2382
2022-10-16 01:08:26 +09:00
Hajime Hoshi
2f146d5e4f
internal/graphicsdriver/opengl: bug fix: build failure for browsers
2022-10-15 23:29:22 +09:00
Hajime Hoshi
257f05883c
internal/graphicsdriver/opengl: enable to compiile for browsers with the 'opengles' tag
...
The 'opengles' tag is just ignored for browsers.
2022-10-15 22:22:28 +09:00
Hajime Hoshi
37c5f53890
internal/graphicsdriver/opengl: refactoring
2022-10-15 22:14:21 +09:00
Hajime Hoshi
1d9f1474e9
internal/graphicsdriver: rename constants
2022-10-15 21:14:59 +09:00
Hajime Hoshi
272d0c6a3f
internal/graphicsdriver: rename Operator -> BlendFactor
...
Updates #2382
2022-10-15 17:34:03 +09:00
Hajime Hoshi
e42ee8c506
internal/graphicscommand: bug fix: call End even if an error causes
...
Without calling End, the graphics driver (especially Metal) state
might be stale and might cause another error.
Closes #2388
2022-10-15 15:23:04 +09:00
Hajime Hoshi
35e9f26681
internal/graphicsdriver/directx: refactoring
2022-10-15 12:16:41 +09:00
Hajime Hoshi
e796646abd
internal/graphicscommand: rename arguments
2022-10-15 03:36:25 +09:00
Hajime Hoshi
bf6a5415cf
internal/graphicscommand: bug fix: test failures on Windows
2022-10-15 02:56:40 +09:00
Hajime Hoshi
32a2a705c0
internal/ui: flush the cache of the final screen after DrawScreen
...
The screen image might have a cache in the future.
Updates #2385
2022-10-15 01:59:53 +09:00
Hajime Hoshi
daf349ab72
internal/graphicscommand: bug fix: present at the end of the frame explicitly
...
Before this change, presenting happened when the rendering destination
was the final screen. Now this assumption is wrong as the final screen
might be used in the middle of the commands due to DrawFinalScreen.
Instead, this change adds a new argument `present` to FlushCommands to
present the screen explicitly at the end of the frame.
Closes #2386
2022-10-15 01:54:46 +09:00
Hajime Hoshi
f15536e8de
ebiten: refactoring: remove imageDumperGame
...
This enables passing the user's Game to internal/ui without wrapping.
This is necessary to check whether the user's Game implements an
optional function or not.
Updates #2046
2022-10-14 02:58:31 +09:00
Hajime Hoshi
25ae96db89
internal/ui: move screenScaleAndOffsets to the ebiten package
...
Updates #2046
2022-10-14 01:58:07 +09:00
Hajime Hoshi
03621e22c6
internal/ui: remove unnecessary mutex
...
Now (*context).updateFrame and (*context).adjustPosition are not called
in parallel even though the goroutines might be different.
2022-10-14 01:47:52 +09:00
Hajime Hoshi
4bd3a9ef8f
internal/ui: refactoring: move the screen rendering logic to ebiten package
...
Updates #2046
2022-10-14 00:34:40 +09:00
Hajime Hoshi
08e6f5af86
internal/graphicsdriver: remove FramebufferYDirection
2022-10-14 00:05:59 +09:00
Hajime Hoshi
c23af8fa3a
internal/ui: remove unnecessary comments
2022-10-13 12:28:32 +09:00
Hajime Hoshi
30088cf602
internal/ui: refactoring: reduce uniform variable
...
This might degrade performance, but can demonstrate how to get the
scale of the screen.
Updates #2046
2022-10-13 00:59:51 +09:00
Hajime Hoshi
91275e8fc2
internal/ui: add comments
...
Updates #1431
2022-10-12 02:46:08 +09:00
Hajime Hoshi
99e777b0c5
internal/atlas: do not adjust pixels for DrawTriangles(Shader)
...
Adjusting pixels is needed to avoid strainge rendering to avoid unexpected
rendering (#1171 ). However, this adjustment caused unexpected holes
especially in a thick stroke.
This change moves the logic of adjusting pixels from atlas to
graphics.QuadVertices so that adjusting works only for DrawImage and
DrawRectShader.
Updates #1171
Updates #1843
2022-10-11 02:09:20 +09:00
Hajime Hoshi
a310b7c5bb
internal/builtinshader: fix comments
2022-10-10 13:14:37 +09:00
Hajime Hoshi
cb79e4eabe
internal/restorable: improve pixelsForRestore usages
...
Updates #2375
2022-10-06 15:54:54 +09:00
Hajime Hoshi
c6b37e9809
internal/restorable: use pixelsForRestore only when restoring is needed
...
Updates #2375
2022-10-06 15:09:21 +09:00
Hajime Hoshi
34562c3337
internal/restorable: clear pixelsForRestore at Dispose
...
Updates #2375
2022-10-06 15:04:12 +09:00
Hajime Hoshi
e66bac5c3f
internal/restorable: reuse byte slices for restoring
...
Updates #2375
2022-10-06 14:52:20 +09:00
Hajime Hoshi
85d8a5889a
Revert "internal/restorable: reuse bytes instead of allocations"
...
This reverts commit 8cf3c31cf6
.
Reason: This didn't improve the situation.
Updates #2375
2022-10-06 14:11:09 +09:00
Hajime Hoshi
8cf3c31cf6
internal/restorable: reuse bytes instead of allocations
...
Updates #2375
2022-10-06 12:41:47 +09:00
Hajime Hoshi
69cdd2b178
internal/graphicsdriver/metal: refactoring
2022-10-04 00:29:18 +09:00
Hajime Hoshi
b489548963
internal/builtinshader: fix comments
2022-10-03 01:09:28 +09:00
Hajime Hoshi
61cabbf2e7
internal/atlas: optimization
2022-10-03 00:06:50 +09:00
Hajime Hoshi
72983d966b
all: remove unused conditions
...
Now Kage shaders are always used.
The situtation is different from when we fixed for #1355 , so we removed
the fast path for #1335 . We have to re-check the current performance.
Updates #1355
2022-10-02 23:50:48 +09:00
Hajime Hoshi
534d82c17d
internal/builtinshader: move Filter and Address from internal/graphicsdriver
2022-10-02 23:24:15 +09:00
Hajime Hoshi
9c07b20f2b
internal/ui: remove an odd cast
2022-10-02 23:20:16 +09:00
Hajime Hoshi
efd91c8b86
internal/ui: remove unused arguments from DrawTriangles
...
Closes #2369
2022-10-02 23:10:27 +09:00
Hajime Hoshi
d823e22bed
internal/mipmap: remove unused arguments from DrawTriangles
...
Updates #2369
2022-10-02 23:06:32 +09:00
Hajime Hoshi
361a1059ee
internal/buffered: remove unused arguments from DrawTriangles
...
Updates #2369
2022-10-02 23:06:29 +09:00
Hajime Hoshi
3da30b3b78
internal/atlas: remove unused arguments from DrawTriangles
...
Updates #2369
2022-10-02 23:06:27 +09:00
Hajime Hoshi
de8f85651d
internal/restorable: remove unused arguments from DrawTriangles
...
Updates #2369
2022-10-02 22:51:34 +09:00
Hajime Hoshi
0ae2b1bc24
all: remove unnecessary conditions
...
Now a Kage shader is always used.
2022-10-02 22:30:59 +09:00
Hajime Hoshi
6fca8edc1b
internal/graphicscommand: remove unused arguments from DrawTriangles
...
Updates #2369
2022-10-02 22:21:11 +09:00
Hajime Hoshi
080d936d42
internal/graphics: remove unused arguments from DrawTriangles
...
Updates #2369
2022-10-02 22:13:31 +09:00
Hajime Hoshi
6fc9d9316d
internal/graphicscommand: remove unnecessary conditions
...
Now a Kage shader is always used.
2022-10-02 22:11:20 +09:00
Hajime Hoshi
a9574627e8
internal/graphicsdriver/directx: remove the built-in shaders
...
Updates #2369
2022-10-02 21:35:23 +09:00
Hajime Hoshi
033997d928
internal/graphicsdriver/opengl: remove the built-in shaders
...
Updates #2369
2022-10-02 21:26:13 +09:00
Hajime Hoshi
5f7db485f2
internal/graphicsdriver/metal: remove the built-in shaders
...
Updates #2369
2022-10-02 20:34:38 +09:00
Hajime Hoshi
0b45ca7057
ebiten: reduce duplicated shader compilations
2022-10-02 20:33:50 +09:00
Hajime Hoshi
ff72898b85
internal/builtinshader: use a struct instead of a map
...
With a map, we might miss typos.
2022-10-02 20:17:47 +09:00
Hajime Hoshi
311aa7dcf8
all: use Kage shaders in internal packages
...
Updates #2369
2022-10-02 19:17:09 +09:00
Hajime Hoshi
f293a03ab6
internal/mipmap: reland: do not consider filter to determine mipmap level
...
This is a reland of 42833614fb
.
Now the filter argument is not used (a4e9a05b14
),
the filter value can be the nearest filter even though the shader is
for the linear filter.
As long as `canSkipMipmap` is set correctly, we don't have to consider
the parameter `filter`. We should ignore it.
Updates #2364
2022-10-02 19:14:23 +09:00
Hajime Hoshi
bcb9844395
Revert "internal/mipmap: bug fix: do not consider filter to determine mipmap level"
...
This reverts commit 42833614fb
.
Reason: test failure: TestImageEdge
2022-10-02 18:53:28 +09:00
Hajime Hoshi
42833614fb
internal/mipmap: bug fix: do not consider filter to determine mipmap level
...
Now the filter argument is not used (a4e9a05b14
),
the filter value can be the nearest filter even though the shader is
for the linear filter.
As long as `canSkipMipmap` is set correctly, we don't have to consider
the parameter `filter`. We should ignore it.
Updates #2364
2022-10-02 18:44:06 +09:00
Hajime Hoshi
4b2a9c3243
internal/testing: add the default exit code 1
...
This confirms that Update is really called.
2022-10-02 18:16:16 +09:00
Hajime Hoshi
3bb21282af
internal/builtinshader: bug fix: typo
...
Updates #2364
2022-10-02 16:16:49 +09:00
Hajime Hoshi
eea11ba6cb
internal/ui: use a Kage shader for Fill
...
Updates #2364
2022-10-02 16:08:33 +09:00
Hajime Hoshi
7b6f726729
internal/ui: skip uniform variables when possible
...
Updates #2364
2022-10-02 16:02:44 +09:00
Hajime Hoshi
239f9de2ca
internal/ui: use Kage shaders
...
Updates #2364
2022-10-02 15:54:48 +09:00
Hajime Hoshi
a4e9a05b14
ebiten: reland: use Kage shaders instead of built-in shaders for a color matrix
...
This replaces the built-in shaders with Kage shadres. This is a
refactoring and doesn't degrade performance:
```
go test -bench=^BenchmarkColorMScale$ -run=^$ . -count=5
```
```
name old time/op new time/op delta
ColorMScale-8 978ns ±15% 1184ns ±46% ~ (p=0.413 n=4+5)
```
A follow-up change to remove the built-in shaders is needed.
Closes #2364
2022-10-02 15:35:40 +09:00
Hajime Hoshi
5e459bbe42
internal/graphicsdriver/opengl, metal, directx: use premultiplied alpha format for color scales
...
Updates #2365
2022-10-02 13:38:21 +09:00
Hajime Hoshi
8a7d860632
all: unify Windows error handlings for Windows HANDLE
...
Updates #2366
2022-10-02 02:22:06 +09:00
Hajime Hoshi
a9ba0db3d1
internal/glfwwin, internal/graphicsdriver/directx: bug fix: wrong error handlings for Windows HANDLE
...
Closes #2366
2022-10-02 01:57:24 +09:00
Hajime Hoshi
eb3c45c8af
Revert "internal/graphicsdriver/opengl, metal, directx: skip multiplying a scale when a color matrix is used"
...
This reverts commit b457dc3307
.
Reason: a color scale might be used with ColorM (DrawTriangles)
2022-10-02 00:19:41 +09:00
Hajime Hoshi
520c47f0e8
Revert "ebiten: use Kage shaders instead of built-in shaders for a color matrix"
...
This reverts commit 7fc79c50c3
.
Reason: a color scale might be used with ColorM (DrawTriangles)
Updates #2364
2022-10-02 00:19:37 +09:00
Hajime Hoshi
7fc79c50c3
ebiten: use Kage shaders instead of built-in shaders for a color matrix
...
Closes #2364
2022-10-02 00:08:14 +09:00
Hajime Hoshi
b457dc3307
internal/graphicsdriver/opengl, metal, directx: skip multiplying a scale when a color matrix is used
2022-10-01 18:14:22 +09:00
Hajime Hoshi
4203a3b68a
internal/graphicsdriver/opengl, metal, directx: add comments
...
Updates #1212
2022-10-01 15:21:02 +09:00
Hajime Hoshi
a10f3d1dad
internal/graphicsdriver/opengl, metal, directx: refactoring: clean up the built-in shaders
2022-10-01 14:35:26 +09:00
Hajime Hoshi
cff64894cc
internal/affine: refactoring: use slices instead of array pointers
...
This doesn't change the performance at the test using ColorM:
```
name old time/op new time/op delta
ColorMScale-8 1.11µs ±43% 1.23µs ±70% ~ (p=1.000 n=5+5)
```
2022-09-30 22:20:32 +09:00
Hajime Hoshi
d00bd1cb16
internal/ui: refactoring: move setVerticesCache
to ui.Image
...
Updates #2362
2022-09-29 01:21:46 +09:00
Hajime Hoshi
9492b4ecf5
internal/mipmap: refactoring
...
This change replaces the member `volatile` with `imageType` to make
the code more explicit.
In the old code, it was not obvious whether a mipmap was used for a
screen image. Actually a mipmap was not used since `canSkipMipmap` is
always true for a screen image, but this was too tricky.
2022-09-28 03:07:40 +09:00
Hajime Hoshi
6b35ad4a88
internal/mipmap: bug fix: mipmap images were unexpectedly volatile
...
Closes #2354
2022-09-28 01:40:38 +09:00
Hajime Hoshi
3a0f28ce6b
internal/ui: refactoring: reduce global-variable usages
2022-09-26 00:46:03 +09:00
Hajime Hoshi
fa108ca717
internal/ui: bug fix: compiie errors on mobiles and browsers
2022-09-26 00:34:44 +09:00
Hajime Hoshi
4a82a109be
internal/ui: use sync/atomic for performance
2022-09-26 00:27:04 +09:00
Hajime Hoshi
909f2fe492
internal/ui: bug fix: make inFrame concurrent-safe
...
Updates #1816
2022-09-25 23:56:14 +09:00
Hajime Hoshi
12f42544dd
internal/ui: refactoring: simplify logic by removing setSizeCallbackEnabled
...
Closes #1816
2022-09-25 23:48:40 +09:00
Hajime Hoshi
70ebd34d99
internal/ui: refactoring: separate setWindowSizeInDIPImpl to setWindowSizeInDIP and setFullscreen
2022-09-25 22:55:56 +09:00
Hajime Hoshi
f0dbf86799
internal/ui: refactoring: adjust the width earlier
2022-09-25 22:34:14 +09:00
Hajime Hoshi
c7deed6e72
internal/ui: add setFullscreen
2022-09-25 22:31:26 +09:00
Hajime Hoshi
e47f9ac38f
internal/ui: bug fix: wrong bit operations
...
Closes #2349
2022-09-25 20:10:37 +09:00
Hajime Hoshi
9302230fef
internal/ui: refactoring
2022-09-25 19:56:53 +09:00
Hajime Hoshi
98076bd512
internal/ui: refactoring: simplify initializing fullscreen
2022-09-25 18:28:57 +09:00
Hajime Hoshi
6167cc4f54
internal/ui: remove unnecessary function calls
...
updateSize was introduced at 7eff5cbd4a
, but
apparently calling setWindowSizeInDIP was originally not needed.
2022-09-25 18:19:35 +09:00
Hajime Hoshi
25405783a7
internal/ui: refactoring
...
Updates #1816
2022-09-25 02:05:26 +09:00
Hajime Hoshi
b2f3d39acf
internal/restorable: add color tests at TestAllowWritePixelsForPartAfterDrawTriangles
...
Updates #2346
2022-09-24 22:09:08 +09:00
Hajime Hoshi
1703297f37
internal/shader: add a test for type shadowing
2022-09-24 19:00:23 +09:00
Hajime Hoshi
7f91a681e3
internal/shader: check type redeclaration
2022-09-24 18:56:01 +09:00
Hajime Hoshi
c5867c3357
internal/ui: bug fix: avoid 0 as arguments for Layout
...
Updates #2340
2022-09-20 22:50:39 +09:00
Hajime Hoshi
b5ddee3e4a
internal/ui: bug fix: reentering updateImpl caused double unlocking
...
updateImpl can be invoked in multiple ways. This should have been
protected by a mutex, or this caused unexpected reentrance.
Closes #2339
2022-09-20 13:19:43 +09:00
divVerent
47de8027b9
internal/gamepaddb: fix mapping support for e.g. dpleft:-a0
. ( #2335 )
...
SDL interprets this as "map -1 to 1, map 0 to -1", so we should do the same.
This fix contains two parts:
* Fix the intended output range.
* Also fix the formula to map a range to a range.
The fix does not change behavior if a "-a" mapping isn't used, as in any other case max-min == 1 or max+min == 0.
Fixes #2334
2022-09-20 00:34:46 +09:00
Hajime Hoshi
c7fcfe5bf7
internal/graphicsdriver/directx: refactoring
...
This makes more explicit that the pixels are sent after the slice
for the pixels finishes modification.
2022-09-19 00:31:44 +09:00
Hajime Hoshi
cfdf59ef8d
internal/graphicsdriver/directx: revert changes to remove GetCopyableFootprints
...
This reverts these commits
* ccddd4ee20
* 8e40c2ce7e
* 2eb1efe3cc
Without GetCopyableFootprints, the test results on 32bit Windows seemed
much more flaky. This didn't fix the memory issue like #2294 anyway.
2022-09-19 00:26:59 +09:00
Hajime Hoshi
ccddd4ee20
internal/graphicsdriver/directx: refactoring: make the lifetime of uploadingStagingBuffer more explicit
2022-09-19 00:16:53 +09:00
Hajime Hoshi
8e40c2ce7e
internal/graphicsdriver/directx: refactoring
2022-09-19 00:06:43 +09:00
Hajime Hoshi
2eb1efe3cc
internal/graphicsdriver/directx: stop using GetCopyableFootprints
...
GetCopyableFootprints seems very conservative and returns a quite
big memory size. Instead of using the info from GetCopyableFootprints
let's use our own minimum footprint.
2022-09-18 23:10:15 +09:00
Hajime Hoshi
cd9477491d
internal/gamepad: refactoring
2022-09-18 20:09:10 +09:00
Hajime Hoshi
78802f18d9
internal/glfwwin: remove GetProcAddress
2022-09-18 18:04:02 +09:00
Hajime Hoshi
129f201be4
internal/gamepaddb: use go:embed
...
Updates #1258
2022-09-17 21:02:07 +09:00
TotallyGamerJet
043397c20e
internal/ui: remove Cgo on darwin in ui_glfw_darwin.go ( #2329 )
...
Updates #1162
2022-09-16 11:53:46 +09:00
Hajime Hoshi
45b2bd7b2b
internal/graphicsdriver/metal/mtl: remove a TODO comment
2022-09-16 11:48:59 +09:00
Hajime Hoshi
53df5aaaf0
internal/cocoa: rename _cmd
to cmd
2022-09-16 02:32:12 +09:00
Hajime Hoshi
963eb2756a
all: fix TODO comments
2022-09-16 02:02:02 +09:00
Hajime Hoshi
b13fa2817c
internal/gamepad: clean up codes for Darwin
...
* Removes redundant assignments.
* Fixes types for the Apple libraries.
Updates #1162
2022-09-16 00:25:51 +09:00
TotallyGamerJet
4a569be6f6
internal/gamepad: remove Cgo on darwin ( #2330 )
...
Updates #1162
2022-09-16 00:11:59 +09:00
Hajime Hoshi
5404e4d68a
all: replace io/ioutil
with io
and os
...
Closes #1770
2022-09-15 02:54:25 +09:00
Hajime Hoshi
d0556af8a4
internal/atlas: refactoring
2022-09-15 01:52:05 +09:00
Hajime Hoshi
31945563d8
internal/atlas: optimize adjustDestinationPixel
...
```
go test -bench=BenchmarkAdjustPixel -run=^$ -count=5 ./internal/atlas/
```
```
name old time/op new time/op delta
AdjustPixel-8 2.59ns ± 1% 2.12ns ± 1% -18.16% (p=0.008 n=5+5)
```
2022-09-15 01:50:47 +09:00
Hajime Hoshi
9319266c01
internal/atlas: add a benchmark for adjustDestinationPixel
2022-09-15 01:25:26 +09:00
Hajime Hoshi
2cbc5e7b60
internal/cocoa: remove IsIOS
...
Use `runtime.GOOS == "ios"` instead.
Closes #1415
2022-09-15 01:04:37 +09:00
Hajime Hoshi
619a2ee4dd
internal/gamepaddb: use runtime.GOOS instead of a build tag
...
Updates #1415
2022-09-15 00:27:11 +09:00
Hajime Hoshi
655cd4bf68
all: remove the build tag
...
Updates #1415
2022-09-15 00:23:40 +09:00
Hajime Hoshi
95bfa95a91
internal/graphicscommand: refactoring
2022-09-14 23:13:08 +09:00
Hajime Hoshi
86706c0335
internal/graphicsdriver/opengl: add opengles
build tag
...
This enables to use OpenGL ES instead of OpenGL.
Closes #292
2022-09-13 11:10:48 -07:00
Hajime Hoshi
18fa00d25d
internal/restorable: update comments
2022-09-14 02:20:11 +09:00
Hajime Hoshi
6179158812
internal/restorable: bug fix: no pixels were read only with DrawTriangles
...
Closes #2324
2022-09-14 02:17:14 +09:00
Hajime Hoshi
b36c21648f
internal/restorable: refactoring: remove a redundant FlushCommands call
...
readPixelsFromGPU already flushes commands.
2022-09-13 08:43:02 -07:00
Hajime Hoshi
6b906bb813
internal/restorable: extend the staleRegion when the image is already stale on WritePixels
...
This is a kind of refactoring. There seems no case that this condition
change is really needed, but this is more logical.
2022-09-13 07:29:53 -07:00
Hajime Hoshi
67ceaf5874
internal/atlas: rename replacePixels -> writePixels
2022-09-13 06:39:29 -07:00
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
Hajime Hoshi
85aabf734b
internal/ui: remove panic at (*glfwWindow).Maximize
...
Just doing nothing is more consistent with other functions.
Updates #1990
2022-08-10 22:18:55 +09:00
Hajime Hoshi
4104abdf77
internal/ui: refactoring
2022-08-10 21:34:39 +09:00
Hajime Hoshi
b5196a5a7c
internal/ui: bug fix: glfwWindow.IsMaximized should not return true on fullscreen
...
Closes #2239
2022-08-10 21:17:13 +09:00
Hajime Hoshi
7a936f7052
internal/ui: enable SetWindowSize even with fullscreen on macOS
...
Closes #1590
2022-08-10 15:57:59 +09:00
Hajime Hoshi
085b64006d
internal/ui: refactoring: indentation
2022-08-10 15:47:50 +09:00
Hajime Hoshi
2ab255dd1c
internal/ui: refactoring: delay the call of outsideSize()
2022-08-10 14:53:28 +09:00
Hajime Hoshi
7eff5cbd4a
internal/ui: refactoring: separate updateSize into updateSize and outsideSize
2022-08-10 14:50:20 +09:00
Hajime Hoshi
2480871155
internal/ui: bug fix: compile error
2022-08-10 12:11:32 +09:00
Hajime Hoshi
57fc4d438b
internal/ui: refactoring: separate the Windows API part to another file
2022-08-10 11:51:35 +09:00
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