Commit Graph

3877 Commits

Author SHA1 Message Date
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