Hajime Hoshi
fcec771f34
internal/graphicscommand: clear uniform variables explicitly
...
This change is a performance optimization.
(*uint32sBuffer).alloc doesn't clear the uniform values. Without
clearing the values explicitly, CanMergeWithDrawTrianglesCommand
might return false even though two commands can be merged.
2023-08-19 16:19:14 +09:00
Hajime Hoshi
a9d9143d90
internal/atlas: replace a map with a set with a slice
...
Updates #2601
2023-08-19 15:08:49 +09:00
Hajime Hoshi
3b2251a858
internal/atlas: refactoring: improve a comment
2023-08-19 05:24:20 +09:00
Hajime Hoshi
be68f50f96
internal/atlas: refactoring: rename a variable
2023-08-19 05:20:39 +09:00
Hajime Hoshi
3c49f81b5c
internal/atlas: replace a global map with a member
...
This should be a pure performance improvement.
Updates #2601
2023-08-19 05:02:35 +09:00
Hajime Hoshi
32f1436576
internal/atlas: refactoring: remove (probably) unnecessary logics
2023-08-19 04:36:40 +09:00
Hajime Hoshi
1e2a4cb4b1
internal/atlas: refactoring: remove unnecessary logics
...
Updates #2601
2023-08-19 04:06:43 +09:00
Hajime Hoshi
e1041ea20e
internal/atlas: replace a global map with a struct member
...
This should be a pure performance improvement.
Updates #2586
Updates #2601
2023-08-19 03:25:17 +09:00
Hajime Hoshi
77fd15145b
internal/atlas: add a test for a bug fix
...
Closes #2728
2023-08-19 01:36:05 +09:00
Hajime Hoshi
ea1f596cda
internal/atlas: bug fix: possible overflowing on 32bit machines
2023-08-19 01:19:15 +09:00
Hajime Hoshi
e270dea460
internal/graphicsdriver: use []PixelsArgs for ReadPixels
...
Closes #2592
2023-08-17 03:06:48 +09:00
Hajime Hoshi
842c3cbfcd
internal/graphicscommand: use a slice to values instead of pointers
...
This should reduce heap allocations.
2023-08-16 23:23:30 +09:00
Hajime Hoshi
377b0b8502
internal/graphicscommand: rename WritePixelsArgs -> PixelsArgs
...
Updates #2592
2023-08-16 22:34:56 +09:00
Hajime Hoshi
2de54c556b
internal/shader: bug fix: wrong for-loop should fail compilation
...
Closes #2680
2023-08-08 23:38:01 +09:00
Hajime Hoshi
98cb77d94f
internal/atlas: refactoring
2023-08-06 16:03:57 +09:00
Hajime Hoshi
32ed22f91c
internal/atlas: refactoring
2023-08-06 15:59:15 +09:00
Hajime Hoshi
0433dfac99
internal/atlas: reland: clarify the logic when to update usedAsDestination
...
This is a reland of 2c9f5d9dad
.
As the name is `usedAsDestination`, this should be updated whenever
the image is used as a rendering destination.
Confirmed that this change didn't cause a performance regression
like #2586 .
Updates #2586
Updates #2676
2023-08-06 15:59:11 +09:00
Hajime Hoshi
dcc8794883
Revert "internal/atlas: clarify the logic when to update usedAsDestination"
...
This reverts commit 2c9f5d9dad
.
Reason: test failures
2023-08-06 15:25:55 +09:00
Hajime Hoshi
2c9f5d9dad
internal/atlas: clarify the logic when to update usedAsDestination
...
As the name is `usedAsDestination`, this should be updated whenever
the image is used as a rendering destination.
Confirmed that this change didn't cause a performance regression
like #2586 .
Updates #2586
Updates #2676
2023-08-06 15:23:19 +09:00
Hajime Hoshi
a50d9e6291
internal/atlas: check overflows
2023-08-06 13:46:41 +09:00
Hajime Hoshi
1ae5e022b6
internal/atlas: change when to count up usedAsDestinationCount
...
An image has a counter to count how many times an image is used.
Before this change, the counter was updated only when an image was moved
from a source backend to a destination backend. This seemed not enough,
and an image was likely moved to a source backend more often than
necessary (#2676 ).
However, there was also an issue that the counter was updated too
aggressively and the image was unlikely moved from a destination to
a source image (#2586 ).
In order to resolve this dilemma, let's adopt an intermediate way:
count up the counter at most once per frame.
Updates #2586
Updates #2676
2023-08-06 13:27:28 +09:00
Hajime Hoshi
6fa8c02d4a
internal/shader: bug fix: div between a matrix and a flaot failed
...
Closes #2719
2023-08-05 02:12:39 +09:00
Hajime Hoshi
d9acc57997
internal/goglfw: fix copyright texts
...
This change updates the copyright comment to respect the original
GLFW source comments.
2023-08-04 01:17:23 +09:00
Hajime Hoshi
56f37ed42b
internal/cglfw: change the license to Apache-2.0
...
Closes #2695
2023-08-04 01:09:48 +09:00
Hajime Hoshi
4158e206e6
internal/graphicsdriver/metal: rename files
2023-08-03 23:54:48 +09:00
Hajime Hoshi
120366c3ac
internal/cglfw: change the license of *.go files to Apache-2.0
...
Updates #2695
2023-08-03 23:52:53 +09:00
Hajime Hoshi
3dd2f15b64
internal/cglfw: remove GLFW_C_REVISION.txt
...
The source in internal/cglfw is no longer the same as the original one.
2023-08-02 02:02:30 +09:00
Hajime Hoshi
b2be456af8
internal/goglfw: change the license to Apache-2.0
...
Updates #2695
2023-08-01 23:57:05 +09:00
Hajime Hoshi
d410d740a3
internal/graphicsdriver/opengl/gl: change the license of default_cgo* to Apache-2.0
...
Updates #2695
2023-08-01 23:45:43 +09:00
Hajime Hoshi
d8630f940d
internal/shader: bug fix: forbide comparing non-scalar values
...
Closes #2718
2023-08-01 12:32:16 +09:00
Hajime Hoshi
63df6168d9
internal/shader: use plural forms for Kage compiler directives
...
This change renames
```
//kage:unit texel
//kage:unit pixel
```
to
```
//kage:unit texels
//kage:unit pixels
```
.
Closes #2717
2023-08-01 11:41:38 +09:00
Hajime Hoshi
ae9781cd53
internal/graphicscommand: add comments
2023-08-01 00:18:12 +09:00
Hajime Hoshi
ce25583438
internal/atlas: refactoring: move temporaryBytes to internal/graphicscommand
2023-08-01 00:11:40 +09:00
Hajime Hoshi
0fb1cdcfbd
internal/atlas: bug fix: there should be multiple temporaryBytes objects for pipelining
...
Closes #2716
2023-07-31 16:18:17 +09:00
Hajime Hoshi
f81dbd9288
internal/graphicsdriver: flush commands asynchronously whenever possible
...
Closes #2664
2023-07-30 22:44:13 +09:00
Hajime Hoshi
a7e4665f71
internal/graphicscommand: use multiple command queues
...
This is a preparation for asynchronous rendering.
Updates #2664
2023-07-30 22:42:58 +09:00
Hajime Hoshi
5a64f8299e
internal/thread: refactoring: add a common interface Thread
2023-07-30 22:42:24 +09:00
Hajime Hoshi
81b7fd7641
internal/graphicscommand: refactoring
2023-07-30 18:37:18 +09:00
Hajime Hoshi
d13bea29dc
internal/ui: refactoring
2023-07-30 03:52:54 +09:00
Hajime Hoshi
3869e2e4f6
internal/ui: refactoring: integrate the render thread usages into internal/graphicscommand
...
Updates #2664
2023-07-30 03:50:49 +09:00
Hajime Hoshi
246bd41695
internal/graphicscommand: fix a wrong comment
2023-07-30 01:56:58 +09:00
Hajime Hoshi
4df647a400
internal/shader: bug fix: forbid to have an initial value for uniform variables
...
Closes #2711
2023-07-29 20:51:02 +09:00
Hajime Hoshi
1b8580fab7
ebiten: panic if a non-existent uniform variable name is given
...
Closes #2710
2023-07-29 20:24:42 +09:00
Hajime Hoshi
0b1c7404d5
ebiten: use zero values for an unspecified uniform variable
...
Closes #2709
2023-07-29 19:11:49 +09:00
Hajime Hoshi
d0e4023d88
internal/ui: add a length check for uniform variables
2023-07-29 18:59:36 +09:00
Hajime Hoshi
5ddf1df423
internal/shaderir: remove ConstType
...
Closes #2550
2023-07-29 15:34:30 +09:00
Hajime Hoshi
7549f4fcd6
internal/shader: reduce ConstType usages
...
Updates #2550
2023-07-29 14:18:32 +09:00
Hajime Hoshi
e225f118fb
internal/shaderir: use ConstType just for an assetion
...
Updates #2550
2023-07-29 14:02:26 +09:00
Hajime Hoshi
900b687f40
internal/shader: add tests
...
Updates #2712
2023-07-28 01:59:31 +09:00
Hajime Hoshi
692d119818
internal/shader: refactoring: reduce ConstType usages
...
Updates #2550
2023-07-28 01:36:15 +09:00
Hajime Hoshi
88be4c5b7c
internal/shader: reland: bug fix: stricter type checks for the built-in cast-like functions
...
Closes #2712
2023-07-28 01:33:27 +09:00
Hajime Hoshi
be2123f7fd
Revert "internal/shader: bug fix: stricter type checks for the built-in functions"
...
This reverts commit 287545b02a
.
Reason: test failures
Updates #2712
2023-07-28 00:54:36 +09:00
Hajime Hoshi
287545b02a
internal/shader: bug fix: stricter type checks for the built-in functions
...
Closes #2712
2023-07-28 00:51:42 +09:00
Hajime Hoshi
ef08873f30
internal/shader: reland2: bug fix: int + ivec failed
...
Closes #2707
2023-07-26 01:23:02 +09:00
Hajime Hoshi
8aefa49510
Revert "internal/shader: reland: bug fix: int + ivec failed"
...
This reverts commit 1c4a0ac0dc
.
Reason: TestShaderUniformMatrix2 failed on Windows
Updates #2707
2023-07-26 00:30:17 +09:00
Hajime Hoshi
1c4a0ac0dc
internal/shader: reland: bug fix: int + ivec failed
...
Closes #2707
2023-07-25 23:02:06 +09:00
Hajime Hoshi
3d8d759976
Revert "internal/shader: bug fix: int + ivec failed"
...
This reverts commit a93908503a
.
Reason: test failures at TestShaderUniformMatrix2
Updates #2070
2023-07-25 22:53:02 +09:00
Hajime Hoshi
a93908503a
internal/shader: bug fix: int + ivec failed
...
Closes #2707
2023-07-25 22:42:06 +09:00
Hajime Hoshi
ad63d0842c
internal/shader: refactoring: check dimensions at AreValidTypesForBinaryOp
2023-07-25 13:46:44 +09:00
Hajime Hoshi
6b94de4ef6
internal/shader: refactoring: integrate type checks to shaderir.AreValidTypesForBinaryOp
2023-07-25 02:51:25 +09:00
Hajime Hoshi
b743b7ab50
internal/shader: bug fix: return true
for float must fail
...
Closes #2706
2023-07-25 02:51:18 +09:00
Hajime Hoshi
29545906c0
internal/shader: refactoring
2023-07-25 01:40:47 +09:00
Hajime Hoshi
c329eab1b2
internal/shader: refactoring
2023-07-24 12:29:27 +09:00
Hajime Hoshi
20123e8420
internal/shader: bug fix: unary operators should keep the type info
...
Closes #2705
2023-07-24 02:21:42 +09:00
Hajime Hoshi
5a1109e56a
internal/shader: refactoring
2023-07-24 02:06:54 +09:00
Hajime Hoshi
0657e67cef
internal/shader: add more tests for % op
2023-07-24 02:00:00 +09:00
Hajime Hoshi
d99da81203
internal/shader: refactoring
2023-07-24 01:49:37 +09:00
Hajime Hoshi
a8c3eb7167
internal/shader: bug fix: don't allow a binary op with different typed constants
...
Closes #2704
2023-07-24 01:41:22 +09:00
Hajime Hoshi
9ffbc51607
internal/shader: remove ConstType usages from canApplyBinaryOp
...
Updates #2550
2023-07-23 14:55:15 +09:00
Hajime Hoshi
94d1df8c7d
internal/shader: simplify canBeFloatImplicitly
...
Updates #2550
2023-07-23 14:06:18 +09:00
Hajime Hoshi
12e60b7273
internal/shader: reduce shaderir.ConstType usages
...
Updates #2550
2023-07-23 13:08:08 +09:00
Hajime Hoshi
a5af8f3b0b
internal/shaderir: remove isUntypedInteger
...
Updates #2550
2023-07-23 13:04:25 +09:00
Hajime Hoshi
8b4c744ca8
internal/ui: rename a file
...
Use `_linbsd.go` suffix for Linux and BSDs.
2023-07-23 02:29:57 +09:00
Hajime Hoshi
91e1c0ea29
ebiten: add more cursor shapes
...
This change adds these new cursor shapes:
* CursorShapeNESWResize
* CursorShapeNWSEResize
* CursorShapeMove
* CursorShapeNotAllowed
Closes #2476
2023-07-23 00:49:45 +09:00
Hajime Hoshi
269b557e38
internal/glfw: rename files
...
Updates #1162
2023-07-22 18:15:46 +09:00
Hajime Hoshi
3d41e8171e
internal/cglfw: refactoring: split build.go into each platform
2023-07-22 17:37:48 +09:00
Hajime Hoshi
47dea6fac4
move internal/glfw/glfw to internal/cglfw
2023-07-22 01:02:55 +09:00
Hajime Hoshi
c85c5b1884
internal/glfw: move Wayland files
2023-07-21 01:59:40 +09:00
Hajime Hoshi
0324db5657
internal/glfw/glfw: remove -l options
...
DLLs for OpenGL are loaded automatically and doesn't have to link them
when compiling.
DLLs for Vulkan are not used.
2023-07-21 01:09:25 +09:00
Hajime Hoshi
65bbfad84a
internal/glfw/glfw: remove null_platform.h
2023-07-21 01:04:08 +09:00
Hajime Hoshi
214f6094f8
internal/glfw/glfw: move osmesa_context.h
2023-07-21 00:09:17 +09:00
Hajime Hoshi
f6e5d2eca6
internal/glfw/glfw: remove unnecessary files
2023-07-21 00:03:26 +09:00
Hajime Hoshi
bccb33236f
internal/glfw/glfw: move xkb_unicode.* and X11 files
2023-07-20 23:37:44 +09:00
Hajime Hoshi
e10c5f5c59
internal/glfw/glfw: move and remove null_* files
2023-07-15 12:57:15 +09:00
Hajime Hoshi
31bad92c23
internal/glfw/glfw: move cocoa_* and nsgl_* files
2023-07-15 12:38:43 +09:00
Hajime Hoshi
647d2aca14
internal/glfw/glfw: move egl_context.* files
2023-07-15 12:30:12 +09:00
Hajime Hoshi
4d9ae2a815
./internal/glfw/glfw: move posix_*.* files
2023-07-13 03:39:12 +09:00
Hajime Hoshi
d8a8404fd4
internal/glfw/glfw/glfw/src: remove internal.h
2023-07-13 03:39:12 +09:00
Hajime Hoshi
a4c183c5d4
internal/glfw/glfw: move some C and H files
2023-07-13 03:08:09 +09:00
Hajime Hoshi
8ee3a6d0c1
internal/glfw/glfw/glfw/src: remove warnings for Wayland
2023-07-13 02:33:06 +09:00
Hajime Hoshi
5ddf75c4b3
internal/glfw/glfw/glfw/src: bug fix: build failure
2023-07-11 00:15:41 +09:00
Hajime Hoshi
72293d48b5
internal/glfw/glfw: unify c_glfw_bsd.go and c_glfw_linux.go
2023-07-11 00:05:33 +09:00
Hajime Hoshi
bf197e379b
internal/glfw/glfw: refactoring: remove glfw/include
2023-07-10 23:30:03 +09:00
Hajime Hoshi
4267e5d22e
internal/gamepad: bug fix: do not call GetRawInputDeviceList with the count 0
...
Updates #2696
2023-07-08 19:18:05 +09:00
Hajime Hoshi
bc2b373bca
internal/glfw/glfw: fix build tags
2023-07-08 14:04:30 +09:00
Hajime Hoshi
f8d8d7a231
examples/life, internal/graphicsdriver/opengl/gl: format copyright texts
2023-07-08 02:50:54 +09:00
Hajime Hoshi
c2b386a917
internal/glfw/glfw: refactoring
2023-07-08 02:34:56 +09:00
Hajime Hoshi
fafbe2711f
internal/glfw/glfw: refactoring
2023-07-08 02:16:39 +09:00
Hajime Hoshi
8039911bc8
internal/glfw/glfw: add license header comments
2023-07-08 02:15:47 +09:00
Hajime Hoshi
a4c2072c0f
internal/glfw/glfw: add 'static' to C functions
2023-07-08 00:37:20 +09:00