Hajime Hoshi
051b0c7238
internal/ui: bug fix: a big-offscreen size could be 0
...
Closes #2589
2023-03-03 22:34:43 +09:00
Hajime Hoshi
ea7d007df9
internal/ui: bug fix: dstRegion should not exceed the image region
...
Closes #2577
2023-02-21 14:15:39 +09:00
Hajime Hoshi
d91b8cae88
internal/ui: reland: refactoring: improve anti-alias logic
...
* Remove the image extension. The image is always flushed when necessary.
* Use a small offscreen image whichever the blend is.
Updates #2399
2023-02-19 23:49:32 +09:00
Hajime Hoshi
3aa8448511
Revert "internal/ui: refactoring: improve anti-alias logic"
...
This reverts commit 41f8295611
.
Reason: test failures: https://github.com/hajimehoshi/ebiten/actions/runs/4216421788/jobs/7318236488
2023-02-19 22:46:37 +09:00
Hajime Hoshi
41f8295611
internal/ui: refactoring: improve anti-alias logic
...
* Remove the image extension. The image is always flushed when necessary.
* Use a small offscreen image whichever the blend is.
Closes #2399
2023-02-19 22:14:23 +09:00
Hajime Hoshi
961c34efb5
internal/ui: use a small buffer image for anti-alias
...
Closes #2399
2023-02-19 17:35:43 +09:00
Hajime Hoshi
8479fee606
internal/ui: refactoring
2023-02-18 18:23:57 +09:00
Hajime Hoshi
56597800dd
internal/ui: refactoring: add bigOffscreenImage
...
Updates #2399
2023-02-18 02:32:41 +09:00
Hajime Hoshi
38f802cb40
internal/ui: simplify the logic of skipping rendering
2022-12-20 11:34:47 +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
61f1d8b69f
internal/graphics: remove the common vertices backend
...
It was actually impossible to use the common vertices backend in a
thread-safe manner, and actually this caused race conditions.
This changes fixes the issue by giving up a central backend, and
letting images have their own vertices buffer.
Closes #2473
2022-12-03 01:02:23 +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
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
422de70d59
internal/ui: bug fix: screenshot didn't include antialias renderings
2022-10-22 14:19:24 +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
2855095ac9
all: unify terms for buffers and flushing
2022-10-16 19:47:00 +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
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
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
0ae2b1bc24
all: remove unnecessary conditions
...
Now a Kage shader is always used.
2022-10-02 22:30:59 +09:00
Hajime Hoshi
0b45ca7057
ebiten: reduce duplicated shader compilations
2022-10-02 20:33:50 +09:00
Hajime Hoshi
311aa7dcf8
all: use Kage shaders in internal packages
...
Updates #2369
2022-10-02 19:17:09 +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
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
d00bd1cb16
internal/ui: refactoring: move setVerticesCache
to ui.Image
...
Updates #2362
2022-09-29 01:21:46 +09:00
Hajime Hoshi
ae41530f1c
internal/graphicscommand: move availableFilename to graphicscommand
2022-08-31 13:26:14 +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
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
81bd5b488c
ebiten: add (*Image).ReadPixels
...
Closes #1995
2022-08-08 01:42:26 +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
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
83ac234142
internal/ui: bug fix: offscreen images were created too often unexpectedly
2022-06-08 09:26:22 +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
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
6710808cd1
ebiten: compile shaders at NewShader
...
Closes #2035
2022-04-04 02:52:57 +09:00
Hajime Hoshi
f75a70dc40
internal/graphicscommand: treat []float32 instead of interface{} for uniform variables
2022-04-03 03:51:52 +09:00
Hajime Hoshi
b52a02a178
internal/ui: bug fix: crash when Image.MarkDisposed is called multiple times
...
Closes #2048
2022-04-03 00:21:26 +09:00
Hajime Hoshi
5c7917897c
internal/ui: refactoring: move the logic in gameForUI to context
2022-04-01 22:33:31 +09:00
Hajime Hoshi
99437944bc
internal/ui: remove graphicsDrivre() calls from image.go
2022-03-21 22:49:47 +09:00
Hajime Hoshi
81b9f91f86
internal/graphicscommand: compile shaders lazily
...
With DirectX, the graphics driver cannot be determined until the
main loop starts, as a transparent window cannot be treated with
DirectX so far. On the other hand, compiling shaders requires a
graphics driver as it requires information about Y directions of
NDCs and framebuffers.
This change delays compiling shaders until the graphics commands
are actually executed in the main loop.
Updates #1007
Updates #2019
2022-03-21 21:09:02 +09:00
Hajime Hoshi
b5bb576a58
internal/ui: refactoring: unexport ConvertUniforms
2022-03-21 17:05:50 +09:00
Hajime Hoshi
c316aaae72
internal/buffered: simplify the API
2022-03-21 15:19:06 +09:00
Hajime Hoshi
29f7a45ccc
internal/buffer: remove the graphics-driver argument from ReplacePartialRegionPixels
...
This is necessary to remove the graphics driver usage from
(*ebiten.Image).At. And this is necessary to determine the graphics
driver after the window becomes transparent or not.
Unfortunately, it is not obvious to make a transparent window with
DirectX. Then, the determination of a graphics driver should be delayed.
Updates #1007
2022-03-21 05:59:43 +09:00
Hajime Hoshi
14c327c89b
internal/atlas: replace Pixels with At to reduce unnecessary slice allocations
2022-03-20 18:39:17 +09:00
Hajime Hoshi
11ff0ab48c
internal/atlas: refactoring: remove arguments from Pixels
2022-03-20 18:28:57 +09:00