Hajime Hoshi
21670691b1
internal/graphicsdriver/opengl: remove duplicated code
2022-11-17 13:22:48 +09:00
Hajime Hoshi
d6027a9357
internal/graphicsdriver/opengl: remove duplicated code
2022-11-17 13:13:15 +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
c768860f3f
internal/graphicsdriver/opengl: remove fnGetExtension
2022-11-17 12:40:56 +09:00
Hajime Hoshi
bae5aa7732
internal/graphicsdriver/opengl: move initGL to NewGraphics
...
As restoring from context lost doesn't happen on browsers, initilizing
GL doesn't have to be done at reset.
2022-11-17 12:34:55 +09:00
Hajime Hoshi
4082223aec
internal/graphicsdriver/opengl: remove webGLVersion
2022-11-17 12:27:32 +09:00
Hajime Hoshi
74d9515345
internal/graphicsdriver/opengl: refactoring: move gl_js to gl/context_js.go
...
This unifies the OpenGL context interface for all the platforms.
2022-11-17 12:22:46 +09:00
Hajime Hoshi
f08983e14d
internal/graphicsdriver/opengl: remove unused variables
...
It should be safe to assume 0 is an invalid texture ID in OpenGL.
https://registry.khronos.org/OpenGL-Refpages/gl4/html/glIsTexture.xhtml
> If texture is zero, or is a non-zero value that is not currently the
> name of a texture, or if an error occurs, glIsTexture returns GL_FALSE.
2022-11-17 10:53:28 +09:00
Hajime Hoshi
de3702e4c2
internal/graphicsdriver/opengl: reduce unnecessary slice allocations
2022-11-17 03:01:31 +09:00
Hajime Hoshi
9df4770d20
internal/graphicsdriver/opengl/gl: make Context closer to gomobile's Context
2022-11-17 01:23:27 +09:00
Hajime Hoshi
49fc1cfdc0
internal/graphicsdriver/opengl/gl: refactoring: replace some *iv functions with *i
2022-11-17 00:26:33 +09:00
Hajime Hoshi
098fed65d5
internal/graphicsdriver/opengl/gl: refactoring: replace GetIntegerv -> GetInteger
2022-11-16 23:59:28 +09:00
Hajime Hoshi
4c389c1752
internal/graphicsdriver/opengl/gl: bug fix: compile error
2022-11-15 02:41:59 +09:00
Hajime Hoshi
056042ca92
internal/graphicsdriver/opengl/gl: refactoring
2022-11-15 02:38:38 +09:00
Hajime Hoshi
0d8912e7ae
internal/graphicsdriver/opengl/gl: bug fix: failed to load OpenGL(ES).framework on iOS
...
This change also fixes the issue that *EXT functions are missing
in OpenGLES.framework.
Closes #2456
2022-11-15 02:33:45 +09:00
Hajime Hoshi
f4e63602d3
internal/graphicsdriver/opengl/gl: dynamic function loading for Android
...
Closes #2450
2022-11-14 23:23:50 +09:00
Hajime Hoshi
31af27b926
internal/graphicsdriver/opengl/gl: fix error message
2022-11-14 13:19:19 +09:00
Hajime Hoshi
f6f7ed3e3d
internal/graphicsdriver/opengl/gl: automatically choose OpenGL and OpenGL ES
...
Updates #292
2022-11-14 12:50:53 +09:00
Hajime Hoshi
fcf454ef20
internal/graphicsdriver/opengl/gl: use RTLD_LAZY instead of RTLD_NOW
...
See the discussion at #2453 .
2022-11-14 04:46:11 +09:00
TotallyGamerJet
56ec19caa1
all: use RTLD_LAZY in dlopen for darwin ( #2453 )
...
dlopen requires either RTLD_LAZY or RTLD_NOW but there was neither.
Updates #1162
2022-11-14 04:44:51 +09:00
Hajime Hoshi
072e91d67f
internal/graphicsdriver/opengl/gl: dynamic-load functions with GLX
...
Updates #292
Updates #2450
2022-11-14 03:21:42 +09:00
Hajime Hoshi
f093996284
internal/graphicsdriver/opengl/gl: refactoring
2022-11-14 03:14:21 +09:00
Hajime Hoshi
1e86e7fa18
internal/ui: refactoring: reduce opengles build tags
...
Updates #292
2022-11-14 02:46:34 +09:00
Hajime Hoshi
114a8aa6ea
internal/graphicsdriver/opengl/gl: reland: refactoring: reduce opengles build tags
...
Updates #292
2022-11-14 02:33:23 +09:00
Hajime Hoshi
e8810495cf
internal/graphicsdriver/opengl/gl: reland: refactoring: reduce opengles build tags
...
This is a reland of c9cff69dcb
.
Updates #292
2022-11-14 02:21:18 +09:00
Hajime Hoshi
e87e4ffbd2
Revert "internal/graphicsdriver/opengl/gl: refactoring"
...
This reverts commit c9cff69dcb
.
Reason: compmile error for browsers
2022-11-14 02:17:27 +09:00
Hajime Hoshi
c9cff69dcb
internal/graphicsdriver/opengl/gl: refactoring
2022-11-14 02:13:32 +09:00
Hajime Hoshi
94291ecb17
internal/graphicsdriver/opengl/gl: update copyrights
...
These files are already completely different from the original files.
2022-11-14 01:56:30 +09:00
Hajime Hoshi
39b8a66359
internal/graphicsdriver/opengl/gl: dynamic function load for OpenGL ES
...
Updates #292
Updates #2450
2022-11-13 08:48:26 -08:00
Hajime Hoshi
e5e7ceb688
internal/graphicsdriver/opengl/gl: refactoring
2022-11-13 23:10:20 +09:00
Hajime Hoshi
144d2374bf
internal/graphicsdriver/opengl/gl: remove 'egl' build tag
...
Probably nobody uses this.
2022-11-13 22:50:21 +09:00
Hajime Hoshi
5b96d93d13
internal/graphicsdriver/opengl/gl: refactoring
2022-11-13 22:26:13 +09:00
Hajime Hoshi
78f8ddbda8
internal/graphicsdriver/opengl/gl: load OpenGLES.framework if possible on Darwin
...
Closes #2449
2022-11-13 19:51:43 +09:00
Hajime Hoshi
b6ed95750b
internal/graphicsdriver/opengl: unify context_gl.go and context_gles.go
...
Closes #2451
2022-11-13 19:42:21 +09:00
Hajime Hoshi
f69beffc6c
internal/graphicsdriver/opengl: bug fix: initialization was too early on Windows
...
Closes #2452
2022-11-13 18:00:40 +09:00
Hajime Hoshi
b536b82109
internal/graphicsdriver/opengl/gl: hide concrete context types
2022-11-13 17:13:52 +09:00
Hajime Hoshi
b66cf74c99
internal/graphicsdriver/opengl: bug fix: compile error
2022-11-13 16:16:19 +09:00
Hajime Hoshi
656a2d758e
internal/graphicsdriver/opengl: bug fix: compile error
2022-11-13 15:55:33 +09:00
Hajime Hoshi
8393211ed7
internal/graphicsdriver/opengl: bug fix: compile error
2022-11-13 15:44:15 +09:00
Hajime Hoshi
8c49c88b08
internal/graphicsdriver/opengl: refactoring
2022-11-13 15:27:37 +09:00
Hajime Hoshi
42566c6c9a
internal/graphicsdriver/opengl: refactoring: remove SetCanvas
2022-11-13 15:18:44 +09:00
Hajime Hoshi
a0a5f2b301
internal/graphicsdriver/opengl: remove SetGomobileGLContext
...
This change is needed to initialize the context at opengl.NewGraphics.
Updates #2451
2022-11-13 15:07:14 +09:00
Hajime Hoshi
5cfb7c9469
internal/graphicsdriver/opengl: make context_gles.go closer to context_gl.go
...
Updates #2451
2022-11-13 14:20:47 +09:00
Hajime Hoshi
0c5a77eaa4
internal/graphicsdriver/opengl/gles: integrate gles and glconst into gl
...
Updates #2451
2022-11-13 14:15:22 +09:00
Hajime Hoshi
c4abaa32f5
internal/graphicsdriver/opengl: initialize gl at init()
...
This changes context_gl.go a little closer to context_gles.go.
Updates #2451
2022-11-13 04:13:18 +09:00
Hajime Hoshi
bb30b85d29
internal/graphicsdriver/opengl/gl: simplify C code
2022-11-13 03:35:40 +09:00
Hajime Hoshi
879cf50aaf
internal/graphicsdriver/opengl: remove unused functions
2022-11-13 02:54:34 +09:00
Hajime Hoshi
fad9f1592c
internal/graphicsdriver/opengl/gles: remove unused functions
2022-11-13 02:45:53 +09:00
Hajime Hoshi
c5fb6fa23f
internal/graphicsdriver/opengl/gl: remove unused functions
2022-11-13 02:35:45 +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
a406904a51
internal/graphicsdriver: refactoring
2022-11-12 21:03:54 +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
0db2318a8d
internal/graphicsdriver/opengl: update comments
2022-11-12 19:31:16 +09:00
Hajime Hoshi
cee948048d
internal/graphicsdriver/opengl: remove unused functions
2022-11-12 19:28:14 +09:00
Hajime Hoshi
303965e1a9
all: remove unnecessary copying
...
Copying []byte to string should copy the data if necessary, as the
Go specification assures that strings are immutable.
2022-11-11 00:28:47 +09:00
Hajime Hoshi
097adcf8b6
internal/graphicsdriver/opengl/gl: reladn: refactoring
...
This is a reland of a1ad87a262
2022-11-09 21:02:31 +09:00
Hajime Hoshi
96298bb59d
Revert "internal/graphicsdriver/opengl/gl: refactoring"
...
This reverts commit a1ad87a262
.
Reason: compile error
2022-11-09 18:27:06 +09:00
Hajime Hoshi
a1ad87a262
internal/graphicsdriver/opengl/gl: refactoring
2022-11-09 16:07:30 +09:00
Hajime Hoshi
915fff96f8
all: reduce reflect usages
2022-11-09 13:24:31 +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
Artem Yadelskyi
5b53cef59e
all: remove old // +build
comments ( #2431 )
...
Closes #2325
2022-11-03 12:55:14 +09:00
Hajime Hoshi
1b3696a7ff
internal/graphicsdriver/opengl: fix comments
2022-10-31 12:59:27 +09:00
Hajime Hoshi
a5993f09a2
internal/graphicscommand: refactoring: add preserved uniform variables at the graphicscommand package
...
This is a preparation to skip setting unnecessary uniform variables
like dstRegion.
Updates #2232
2022-10-30 22:30:52 +09:00
Hajime Hoshi
690e73c11b
all: replace reflect.SliceHeader with unsafe.Slice
...
Closes #2420
2022-10-30 12:25:30 +09:00
Nathan Levett
f220eb729c
internal/graphicsdriver/opengl: move OpenGL constants to seperate package ( #2408 )
...
Closes #2389
2022-10-24 23:22:14 +09:00
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
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
b6987b6312
internal/graphicsdriver/opengl: bug fix: needed to reset lastBlend
2022-10-16 20:44: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
08e6f5af86
internal/graphicsdriver: remove FramebufferYDirection
2022-10-14 00:05:59 +09:00
Hajime Hoshi
080d936d42
internal/graphics: remove unused arguments from DrawTriangles
...
Updates #2369
2022-10-02 22:13:31 +09:00
Hajime Hoshi
033997d928
internal/graphicsdriver/opengl: remove the built-in shaders
...
Updates #2369
2022-10-02 21:26:13 +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
eb3c45c8af
Revert "internal/graphicsdriver/opengl, metal, directx: skip multiplying a scale when a color matrix is used"
...
This reverts commit b457dc3307
.
Reason: a color scale might be used with ColorM (DrawTriangles)
2022-10-02 00:19:41 +09:00
Hajime Hoshi
b457dc3307
internal/graphicsdriver/opengl, metal, directx: skip multiplying a scale when a color matrix is used
2022-10-01 18:14:22 +09:00
Hajime Hoshi
4203a3b68a
internal/graphicsdriver/opengl, metal, directx: add comments
...
Updates #1212
2022-10-01 15:21:02 +09:00
Hajime Hoshi
a10f3d1dad
internal/graphicsdriver/opengl, metal, directx: refactoring: clean up the built-in shaders
2022-10-01 14:35:26 +09:00
Hajime Hoshi
cff64894cc
internal/affine: refactoring: use slices instead of array pointers
...
This doesn't change the performance at the test using ColorM:
```
name old time/op new time/op delta
ColorMScale-8 1.11µs ±43% 1.23µs ±70% ~ (p=1.000 n=5+5)
```
2022-09-30 22:20:32 +09:00
Hajime Hoshi
86706c0335
internal/graphicsdriver/opengl: add opengles
build tag
...
This enables to use OpenGL ES instead of OpenGL.
Closes #292
2022-09-13 11:10:48 -07:00
Hajime Hoshi
6ea455f4e1
internal/graphicsdriver/opengl/gles: remove cString
2022-09-13 00:17:33 +09:00
Hajime Hoshi
e46bfd8d30
internal/graphicsdriver: rename files
...
Updates #292
2022-09-12 23:03:54 +09:00
Hajime Hoshi
14a3a0f6bc
internal/graphicsdriver/opengl/gl: better error message
2022-09-10 14:21:59 +09:00
Hajime Hoshi
fe11facbb8
internal/graphicsdriver/opengl/gl: better error message
2022-09-10 14:14:42 +09:00
Hajime Hoshi
d8eaf0a394
internal/graphicsdriver/opengl/gl: reland: integrate files for ebitengine/purego
...
Closes #2313
2022-09-10 13:37:20 +09:00
Hajime Hoshi
45a9cdda30
Revert "internal/graphicsdriver/opengl/gl: integrate files for ebitengine/purego"
...
This reverts commit be8edb984f
.
Reason: Test failures. See #2313
Updates #2313
2022-09-10 03:45:14 +09:00
Hajime Hoshi
be8edb984f
internal/graphicsdriver/opengl/gl: integrate files for ebitengine/purego
2022-09-10 03:31:16 +09:00
Hajime Hoshi
f2255b8fa6
internal/graphicsdriver/opengl/gl: remove .errcheck_excludes_windows
...
Updates #2287
2022-09-10 02:44:24 +09:00
Terra Brown
a1cc44833d
add errcheck static analysis ( #2293 )
...
Closes #2287
2022-09-10 01:52:46 +09:00
Hajime Hoshi
35f597e682
internal/graphicsdriver: refactoring: remove FilterScreen
...
Closes #2282
2022-09-06 19:04:15 +09:00
Hajime Hoshi
63e3c4adea
Revert "internal/graphics: remove FilterScreen and use an original Kage program instead"
...
This reverts these commits
* 3259ef3daf
* 7c55065490
* 5bb70f485e
Reason: iOS crash. Probably we have to prepare a special rendering
pipeline for the final screen.
Closes #2278
2022-08-30 01:56:06 +09:00
Hajime Hoshi
f7c44f086f
replace Ebiten with Ebitengine in comments
2022-08-29 11:17:17 +09:00
Hajime Hoshi
ec68534c73
internal/graphicsdriver/opengl: introduce EBITENGINE_OPENGL
replacing ebitenginewebgl1
...
This change inroduces a new environment variable `EBITENGINE_OPENGL`
to replace the build tag `ebitenginewebgl1`.
2022-08-28 01:45:58 +09:00
Hajime Hoshi
b2f874a244
image/rectangle: read pixels only for necessary parts
...
Closes #2274
2022-08-27 23:23:33 +09:00
Hajime Hoshi
5bb70f485e
internal/graphics: remove FilterScreen and use an original Kage program instead
...
Updates #2046
2022-08-26 17:41:29 +09:00
Hajime Hoshi
e7c0a121c4
all: remove the build tag 'ebitencbackend'
...
This also automatically enables 'egl' when 'nintendosdk' is specified.
Updates #2242
2022-08-12 13:15:39 +09:00
Hajime Hoshi
dac6548c0c
all: rename ebitenginecbackend to nintendosdk
...
Updates #2242
2022-08-12 02:05:29 +09:00
Hajime Hoshi
70f5e84098
internal/graphicsdriver: rename ReplacePixels to WritePixels
...
Updates #2236
2022-08-08 03:05:04 +09:00
Hajime Hoshi
72d5002e72
remove go2cpp support
...
Closes #2126
2022-08-07 22:17:53 +09:00
mattn
2bacecca24
fix typos ( #2227 )
2022-08-03 22:40:39 +09:00
mattn
3cd0daac67
go generate ./... with Go 1.19 ( #2228 )
2022-08-03 20:48:02 +09:00
Hajime Hoshi
90ac7d047d
internal/graphicsdriver/opengl/gl: bug fix: wrong build tag syntax
2022-07-15 23:34:09 +09:00
Hajime Hoshi
16ff5c5039
internal/shaderir: change the naming convention: Num -> Count
2022-07-13 02:02:48 +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
55c7a2df6c
internal/graphicsdriver/opengl/gl: bug fix: wrong build tags
2022-07-09 16:15:56 +09:00
Hajime Hoshi
28fd3ec9e5
add the ebitengine version build tags besides the ebiten version
...
Closes #2111
Updates #2190
2022-07-09 15:38:03 +09:00
Hajime Hoshi
428b1263d9
add ebitenginecbackend build tag besides ebitencbackend
...
Updates #2111
Updates #2190
2022-07-09 15:23:52 +09:00
Hajime Hoshi
a6d415ebf2
internal/graphicsdriver/opengl: replace Get with NewGraphics ( #2146 )
...
This is a prepartion to return an error when a graphics driver, especially
DirectX, fails to initialize.
Updates #2142
2022-06-17 02:02:29 +09:00
Hajime Hoshi
4a19d645b7
internal/graphicsdriver/opengl: remove a comment
2022-06-11 15:36:10 +09:00
Hajime Hoshi
71a32d2036
internal/ui: pass the canvas element directly instead of an ID
2022-06-11 15:34:17 +09:00
Hajime Hoshi
95628ee5f7
internal/ui: add a unique ID to the canvas for browsers
2022-06-11 15:24:50 +09:00
Hajime Hoshi
abef203a70
rename github.com/ebitne/purego -> github.com/ebitengine/purego
2022-06-10 21:59:01 +09:00
Hajime Hoshi
ad380a32f4
internal/glfwwin: split GDK part to a new package internal/microsoftgdk
...
Updates #1162
2022-05-29 19:25:26 +09:00
Hajime Hoshi
d577cc5e7d
internal/graphicsdriver/opengl/gl: rename files
...
Updates #1162
2022-05-27 18:31:40 +09:00
TotallyGamerJet
726e88e520
internal/graphics/opengl/gl: remove CGO in openGL on macOS ( #2104 )
...
Updates #1162
2022-05-27 18:26:53 +09:00
Hajime Hoshi
7030840efa
internal/graphicsdriver/opengl/gl: refactoring
2022-05-25 02:24:40 +09:00
Hajime Hoshi
3745c0a2e0
internal/graphicsdriver/opengl/gl: remove an unused function GetBufferSubData
...
This is basically a revert of 86a0c7aa82
2022-05-24 20:45:45 +09:00
Hajime Hoshi
a1370a4791
internal/graphicsdriver/opengl: remove an unused member gl.getBufferSubData
2022-05-24 20:40:53 +09:00
Hajime Hoshi
f888b7868b
internal/graphicsdriver/opengl: fix the error message when GenFramebufferEXT fails
2022-05-23 22:25:40 +09:00
Hajime Hoshi
4396785829
Revert "internal/graphicsdriver/opengl: remove CGO in opengl for macOS ( #2091 )"
...
This reverts commit f7e21983cf
.
Reason: test failures (#2102 )
Closes #2102
2022-05-22 01:24:48 +09:00
TotallyGamerJet
f7e21983cf
internal/graphicsdriver/opengl: remove CGO in opengl for macOS ( #2091 )
...
Updates #1162
2022-05-22 00:58:45 +09:00
Hajime Hoshi
736d77e0d2
internal/graphicsdriver: remove Graphics.NDCYDirection
2022-04-04 03:03:44 +09:00
Hajime Hoshi
02db3bad53
internal/graphicscommand: remove the dependency on a graphics driver from compileShader
...
Updates #2035
2022-04-04 02:09:08 +09:00
Hajime Hoshi
3fafc05411
internal/graphicsdriver: remove Graphics.HasHighPrecisionFloat
...
Updates #879
2022-04-02 05:19:30 +09:00
Hajime Hoshi
79e93d3b12
internal/graphicsdriver: introduce the DirectX driver
...
Closes #1007
2022-03-26 20:09:34 +09:00
Hajime Hoshi
eeb5687b73
internal/graphicsdriver/metal, internal/graphicsdriver/opengl: change the return type to pointers
...
On second thought, returning pointers is more natural. Handling
nil is a caller's responsibility.
2022-03-24 13:20:36 +09:00
Hajime Hoshi
7bb7e45522
internal/graphicsdriver/metal, internal/graphicsdriver/opengl: change the return type to interface
...
Converting a nil with a pointer type to an interface type is no longer
a nil-nil interface, and then comparing with nil causes an unexpected
results.
2022-03-24 03:24:58 +09:00
Hajime Hoshi
cd57bccbfc
internal/graphicsdriver: let some functions return an error
...
This is a preparation for the DirectX driver.
Updates #1007
2022-03-21 22:23:12 +09:00
Hajime Hoshi
7d0f95e9be
internal/graphicsdriver: refactoring: replace Uniform with []float32
...
Closes #2016
2022-03-13 03:42:13 +09:00
Hajime Hoshi
35a5c88901
internal/graphics: rename constants
2022-03-12 04:01:48 +09:00
Hajime Hoshi
d4d4b9c070
internal/graphicsdriver/metal, internal/graphicsdriver/opengl: more efficient modulo
2022-03-04 03:47:55 +09:00
Hajime Hoshi
b22309a0e5
internal/graphicsdriver: replace Pixels with ReadPixels
...
Now preparing a byte slice is the caller's responsibility.
2022-02-27 20:03:13 +09:00
Hajime Hoshi
566957dc1c
internal/graphicsdriver/metal: invert Y at the vertex shader
...
Instead of using a negative height in the viewport, invert the Y direction
at the vertex shader. This is a little more readable as a negative height
is hacky.
This is a preparation for DirectX 12. DirectX 12's coodination system
is very similar to Metal, but doesn't treat a negative height in its
viewport unfortunately.
Updates #1007
2022-02-27 01:53:03 +09:00
divVerent
f2209a0b51
internal/atlas: optimization: send premultiplied alpha from vertex to fragment shader. ( #1996 )
...
Note that this applies only to the builtin shaders - interface for Kage stays
unchanged for compatibility.
Minor compatibility delta: when interpolating alpha values, previous code has
created nonsense values, such as, when interpolating from
fully-transparent-black (0,0,0,0) to opaque-white (1,1,1,1), something like
half-transparent-grey (0.25,0.25,0.25,0.5) where half-transparent-white
(0.5,0.5,0.5,0.5) is used by the new code.
I assume this is a strict improvement, however this may warrant some testing.
Possible later improvement could be moving the premultiplication from fragment
shader to CPU. Did not do this as it makes the code rather inconsistent of Kage
vs built-in shader usage.
Updates #1772
2022-02-24 02:27:50 +09:00
Hajime Hoshi
8b7273b74a
internal/graphicsdriver/metal: call PresentDrawable only when necessary
2022-02-22 01:37:13 +09:00
Hajime Hoshi
ab1ad2c72f
.github/workflow: add a test to build with the build tag ebitencbackend
2022-02-13 16:57:48 +09:00
Hajime Hoshi
4c6c31e384
all: reorder build tags in an alphabetical order
2022-02-08 15:49:15 +09:00
Hajime Hoshi
df60c4c92d
internal/driver: rename to internal/graphicsdriver
2022-02-06 20:41:32 +09:00
Hajime Hoshi
84e53d4c61
internal/graphicsdriver/opengl, internal/uidriver/glfw: treat Win32 API errors correctly
...
The returned errors from syscall.Syscall* and windows.LazyProc.Call come
from GetLastError. The value of GetLastError is not reliable when the
function succeeds.
This change fixes the usages of error values. The error value is now
used only when the API explicitly fails.
2022-01-30 15:54:24 +09:00
Hajime Hoshi
cdf2335f5a
refactoring: better error handlings on Windows
2022-01-23 18:30:40 +09:00