Commit Graph

632 Commits

Author SHA1 Message Date
Hajime Hoshi
bb68ebfcad ebiten: add RunGameWithOptions to specify graphics library
This also adds mobile.SetGameWithOptions.

Updates #2378
2022-12-09 21:27:31 +09:00
Hajime Hoshi
015ce2b262 internal/ui: refactoring: reduce APIs 2022-12-09 00:05:22 +09:00
Hajime Hoshi
79ed63f281 ebiten: fix comments 2022-12-06 01:57:48 +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
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
d407607168 ebiten: update comments
Updates #2471
2022-11-27 14:38:57 +09:00
Hajime Hoshi
9aedafbb1a ebiten: update the comment about optimization 2022-11-27 14:10:30 +09:00
Hajime Hoshi
bba196d1ec ebiten: allow array types for uniform variables
Closes #2448
2022-11-18 14:08:31 +09:00
Hajime Hoshi
1ecac8d834 all: allow integer uniform variables for Kage shaders
Closes #2305
Updates #2448
2022-11-13 01:49:24 +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
156c34a316 ebiten: separate a package for ColorM: colorm
Closes #2171
2022-11-08 23:50:04 +09:00
Hajime Hoshi
d11c46ef1f ebiten: update comment 2022-11-04 20:53:52 +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
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
Artem Yadelskyi
10415d417a
all: replace interface{} with any (#2430)
Closes #2429
2022-11-03 15:33:09 +09:00
Hajime Hoshi
b3a93c66b0 ebiten: remove a comment 2022-11-02 13:05:11 +09:00
Hajime Hoshi
84289a06ba ebiten: update comments about Set
Set no longer loads pixels from GPU.
2022-11-02 02:09:43 +09:00
Hajime Hoshi
083835af9a ebiten: fix comments 2022-11-01 13:28:54 +09:00
Hajime Hoshi
8d854cbb82 ebiten: rename ColorSclaeFormat -> ColorScaleMode 2022-11-01 13:09:52 +09:00
Hajime Hoshi
e237a70135 ebiten: refactoring: use struct{} to save memory 2022-10-31 23:58:41 +09:00
Hajime Hoshi
8919bc809a ebiten: refactoring: compile-time check 2022-10-31 23:36:07 +09:00
Hajime Hoshi
f04e391cb4 all: rename emptyImage -> whiteImage 2022-10-21 15:26:56 +09:00
Hajime Hoshi
418485801f ebiten: update comments 2022-10-21 13:42:52 +09:00
Hajime Hoshi
9ec23ddeb4 ebiten: add DrawTrianglesOptions.AntiAlias and DrawTrianglesShaderOptions.AntiAlias
Closes #2385
2022-10-21 02:07:41 +09:00
Hajime Hoshi
b79495761e ebiten: add Blend and deprecate CompositeMode
Updates #2382
2022-10-16 22:47:00 +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
30cc36b1ba ebiten: add FinalScreenDrawer
FinalScreenDrawer is an interface for a custom screen rendering. If a
game implements FinalScreenDrawer and is passed to RunGame, its
DrawFinalScreen is called after Draw.

Also this adds `-crt` option to examples/flappy.

Closes #2046
2022-10-14 16:49:32 +09:00
Hajime Hoshi
940d6b11c8 ebiten: add comments about SubImage as destinations
Updates #2232
2022-10-03 01:56:20 +09:00
Hajime Hoshi
dcc98e78e9 ebiten: remove unnecessary casts 2022-10-03 01:25:24 +09:00
Hajime Hoshi
534d82c17d internal/builtinshader: move Filter and Address from internal/graphicsdriver 2022-10-02 23:24:15 +09:00
Hajime Hoshi
efd91c8b86 internal/ui: remove unused arguments from DrawTriangles
Closes #2369
2022-10-02 23:10:27 +09:00
Hajime Hoshi
d4e7676daa ebiten: do not use mipmaps at DrawTrianglesShader
This change stops using mipmaps at DrawTrianglesShader. Though this
is a brekaing change, the shader APIs are experimental in v2.4, and
the extent of the impact should be pretty small as DrawTrianglesShader
is a rarely-used low-level API.

For DrawRectShader, mipmaps were not used even before this change.

Updates #2370
2022-10-02 20:22:59 +09:00
Hajime Hoshi
72004b2e23 ebiten: update comments about Vertex
Updates #2365
2022-10-02 19:35:19 +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
4b087a3af4 ebiten: bug fix: examples/minify didn't work correctly
Updates #2369
2022-10-02 19:04:52 +09:00
Hajime Hoshi
d08c1dbf8d ebiten: add a type name 2022-10-02 17:37:27 +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
058b8d5635 ebiten: add ColorScaleFormat to DrawTrianglesOptions
Closes #2365
2022-10-02 14:14:11 +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
fb6dffaf12 ebiten: remove a wrong comment 2022-10-02 00:21:35 +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
9d06875243 ebiten: remove 'experimental' from the shader APIs
Now the Kage shaders are used for the screen and will be used for ColorM.

Updatse #2046
Updates #2171
2022-09-30 22:45:26 +09:00
Hajime Hoshi
1f70307582 ebiten: add DrawRectShaderOptions.ColorScale
This change also introduces a new struct ColorScale.

Closes #2361
2022-09-30 21:44:48 +09:00
Hajime Hoshi
d00bd1cb16 internal/ui: refactoring: move setVerticesCache to ui.Image
Updates #2362
2022-09-29 01:21:46 +09:00
Alexander F. Rødseth
0d2c8b59fc
ebiten: reorder fields as recommended by the fieldalignment utility (#2359)
This reduces the struct size from 64 to 32 bytes.
2022-09-28 18:11:08 +09:00
Hajime Hoshi
284c9fcc7f update URLs in comments 2022-09-23 19:09:25 +09:00
Hajime Hoshi
d9704f2ba9 ebiten: typo 2022-08-21 23:01:25 +09:00