Hajime Hoshi
534370f7b1
internal/graphics: enable to specify regions for each source image
...
This is a preparation to specify different sizes of source images.
Updates #1870
2023-08-27 21:15:01 +09:00
Hajime Hoshi
e270dea460
internal/graphicsdriver: use []PixelsArgs for ReadPixels
...
Closes #2592
2023-08-17 03:06:48 +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
3869e2e4f6
internal/ui: refactoring: integrate the render thread usages into internal/graphicscommand
...
Updates #2664
2023-07-30 03:50:49 +09:00
Hajime Hoshi
8de08295e9
internal/restorable: refactoring
2023-05-26 01:44:13 +09:00
Hajime Hoshi
0f4066e7ac
internal/restorable: remove clearIfOverlapped
...
We found clearIfOverlapped could be a heavy task in some actual applications.
Instead of clearing existing data in the pixels records, add a new record
with a nil slice which indicates a cleared region.
2023-05-25 21:26:53 +09:00
Hajime Hoshi
47f19da710
internal/restorable: early return for an empty rectangle
2023-05-25 19:17:22 +09:00
Hajime Hoshi
20edb04e5e
internal/restorable: refactoring: add EndFrame
2023-05-08 01:09:25 +09:00
Hajime Hoshi
e98acd3dc7
internal/graphicsdriver: refactoring: use image.Rectangle
2023-04-29 01:12:05 +09:00
Hajime Hoshi
cdcffd7d4f
internal/restorable: refactoring: use image.Rectangle
2023-04-28 00:42:40 +09:00
Hajime Hoshi
49582519c1
all: add a compiler directive kage:unit
...
This change adds a new compiler directive 'kage:unit' to Kage. This
takes one of these two values: 'pixel' and 'texel'. The default value
is 'texel'.
With the pixel-unit mode, all the built-in functions treats pixels
instead of texels, and the texCoord argument of Fragment is in pixels.
This simplifies shader programs as programs no longer have the notion
of texels.
With the texel-unit mode, the behavior is the same as the current
behavior.
Closes #1431
2023-04-23 22:11:57 +09:00
divVerent
cc24796270
internal/restorable: optimize removeDuplicatedRegions from O((n+m)^2) to O(n*m + m^2) ( #2631 )
...
This is achieved by replacing the function by one that only adds a single
new region, and only considers duplicates between the previously existing
region and the one newly added one, thereby removing previously redundant
checking of each previously existing region against each other.
This speeds up AAAAXY loading on a Moto G7 Play from 52.27 seconds to
8.15 seconds.
Closes #2626
2023-04-09 02:31:22 +09:00
Hajime Hoshi
84146510ce
internal/restorable: refactoring
2023-03-10 22:29:59 +09:00
Hajime Hoshi
46173ffec6
internal/restorable: refactoring
2023-03-10 01:57:07 +09:00
Hajime Hoshi
8f2097d55e
internal/restorable: reduce more duplicated regions
2023-03-09 23:17:02 +09:00
Hajime Hoshi
f3b49e6543
internal/restorable: reduce more duplicated regions
2023-03-09 22:57:57 +09:00
Hajime Hoshi
66db13ef74
internal/restorable: add tests
2023-03-09 21:54:41 +09:00
Hajime Hoshi
367606f274
internal/restorable: remove duplicated regions from i.staleRegions
...
Updates #2375
Updates #2581
2023-03-09 17:15:56 +09:00
Hajime Hoshi
22d74e78b2
internal/restorable: reduce allocations at readPixelsFromGPU
...
Updates #2375
2023-03-08 16:43:43 +09:00
Hajime Hoshi
da55397420
internal/restorable: remove empty regions at appendRegionsForDrawTriangles
2023-03-08 16:32:41 +09:00
Hajime Hoshi
f298b9541b
internal/restorable: use a cache for pixels at readPixelsFromGPU
...
Updates #2375
2023-03-08 16:27:38 +09:00
Hajime Hoshi
7f182e7814
internal/restorable: skip basePixels.Clear when the region is empty
2023-03-08 16:21:45 +09:00
Hajime Hoshi
e4fffaf963
internal/restorable: reduce allocations
...
Updates #2375
2023-03-08 16:07:41 +09:00
Hajime Hoshi
7f3cff5e7c
internal/restorable: revive pixelsForRestore
...
pixelsForRestore was removed at 09e0320309
as the regions for restoring were minimized. However, this caused a
regression and increased allocations on Android.
This fix revives pixelsForRestore, but as a map with region keys and
byte slice values. pixelsForRestore no longer represents a byte slice
for an entire image.
Updates #2375
2023-03-08 14:52:44 +09:00
Hajime Hoshi
e5bb89aa35
internal/restorable: use a special shader to clear an image
...
This reduces one extra internal texture.
2023-03-01 15:47:03 +09:00
Hajime Hoshi
8f3974eeba
internal/restorable: add TestDrawTrianglesAndExtend
2023-02-28 09:06:41 -08:00
Hajime Hoshi
42aa5fa604
internal/restorable: bug fix: an extended image has a wrong state (especially with OpenGL ES)
2023-02-28 08:48:25 -08:00
Hajime Hoshi
62e08e7356
internal/restorable: fix comments
2023-02-26 12:26:22 +09:00
Hajime Hoshi
110ba5403d
internal/buffered: remove redundant pixel data if possible
2023-02-26 01:55:43 +09:00
Hajime Hoshi
df944fdf90
internal/restorble: clear pixels when possible to save memory
2023-02-26 00:12:34 +09:00
Hajime Hoshi
f04d9d6925
internal/restoring: avoid using staleRegions when alwaysReadPixelsFromGPU is true
...
Updates #2582
2023-02-25 23:26:28 +09:00
Hajime Hoshi
965fd4cac8
internal/restoring: bug fix: stop keeping pixel data on 32bit architecture
...
Updates #4259
2023-02-25 23:11:42 +09:00
Hajime Hoshi
a0a80bbc1f
internal/restorable: do not reset basePixels at makeStale
...
This information is still available even after context-lost happens,
so this doesn't have to be reset.
2023-02-25 21:13:35 +09:00
Hajime Hoshi
aca42e4046
internal/restorable: use sparate regions instead of a big unified region
2023-02-25 15:40:48 +09:00
Hajime Hoshi
09e0320309
internal/restorable: minimize a region for restoring
2023-02-25 15:10:32 +09:00
Hajime Hoshi
ff926b2e9f
internal/restorable: reland (2nd): use a smaller size rectangle for staleRegion
2023-02-24 21:25:47 -08:00
Hajime Hoshi
ec6f425fa0
Revert "internal/restorable: reland: use a smaller size rectangle for staleRegion"
...
This reverts these commits:
* 0755523776
* e36007a3a3
Reason: TestImageOptionsFill fails with OpenGL ES (https://github.com/hajimehoshi/ebiten/actions/runs/4264894196/jobs/7423561399 )
2023-02-25 03:12:26 +09:00
Hajime Hoshi
0755523776
internal/restorable: bug fix: pixel info was unexpectedly lost
2023-02-25 02:43:58 +09:00
Hajime Hoshi
e36007a3a3
internal/restorable: reland: use a smaller size rectangle for staleRegion
2023-02-25 02:09:22 +09:00
Hajime Hoshi
185529f1cb
Revert "internal/restorable: use a smaller size rectangle for staleRegion"
...
This reverts commit e4debfd466
.
Reason: test failures on Windows: https://github.com/hajimehoshi/ebiten/actions/runs/4262488629/jobs/7418053241
2023-02-24 21:56:32 +09:00
Hajime Hoshi
e4debfd466
internal/restorable: use a smaller size rectangle for staleRegion
2023-02-24 21:33:39 +09:00
Hajime Hoshi
745a69aeaa
internal/restorable: update comments
2023-02-24 18:25:17 +09:00
Hajime Hoshi
8864ce1291
all: update comments
2023-02-07 12:05:43 +09:00
Pierre Curto
4de807cc44
all: fix typos ( #2558 )
...
Signed-off-by: Pierre Curto <pierre.curto@gmail.com>
2023-01-28 19:06:38 +09:00
Hajime Hoshi
e4576a3de5
internal/restorable: bug fix: concurrent map write
2022-12-24 03:14:04 +09:00
Hajime Hoshi
71492554a7
internal/restorable: compile shaders in parallel
2022-12-24 02:00:42 +09:00
Hajime Hoshi
89c64f83e3
ebiten: performance improvement by reducing allocations of []float32
2022-12-03 21:53:56 +09:00
Hajime Hoshi
0a6813c17f
internal/graphics: use flatten []float32 slice instead of [][]float32
...
Closes #2479
2022-12-03 20:23:58 +09:00
Hajime Hoshi
8cc6fa82fd
internal/graphicsdriver/opengl: remove fnIsContextLost
...
As restoring from context lost doesn't happen on browsers, isContextLost
doesn't have to be called.
2022-11-17 12:43:26 +09:00
Hajime Hoshi
419bb4c1e9
all: use uint32 instead of float32 for uniform values
...
This is a preparation for other types of uniform values.
Updates #2305
2022-11-12 20:28:07 +09:00