Hajime Hoshi
e270dea460
internal/graphicsdriver: use []PixelsArgs for ReadPixels
...
Closes #2592
2023-08-17 03:06:48 +09:00
Hajime Hoshi
842c3cbfcd
internal/graphicscommand: use a slice to values instead of pointers
...
This should reduce heap allocations.
2023-08-16 23:23:30 +09:00
Hajime Hoshi
377b0b8502
internal/graphicscommand: rename WritePixelsArgs -> PixelsArgs
...
Updates #2592
2023-08-16 22:34:56 +09:00
Hajime Hoshi
d410d740a3
internal/graphicsdriver/opengl/gl: change the license of default_cgo* to Apache-2.0
...
Updates #2695
2023-08-01 23:45:43 +09:00
Hajime Hoshi
f8d8d7a231
examples/life, internal/graphicsdriver/opengl/gl: format copyright texts
2023-07-08 02:50:54 +09:00
Hajime Hoshi
e98acd3dc7
internal/graphicsdriver: refactoring: use image.Rectangle
2023-04-29 01:12:05 +09:00
Hajime Hoshi
00e45affe9
all: update OpenGL version from 2.1 to 3.2
...
'texelFetch' requires OpenGLSL 1.30, which requires OpenGL 3.0+.
macOS might not support OpenGL 3.0 and 3.1, so adopt 3.2.
Updates #1431
2023-04-23 14:25:36 +09:00
Hajime Hoshi
40c38eb9ee
internal/graphicsdriver/opengl: refactoring: remove contextPlatform
2023-04-22 21:52:20 +09:00
Hajime Hoshi
8926a4213e
internal/graphicsdriver/opengl: refactoring: move consts to gl
2023-04-22 21:20:34 +09:00
Hajime Hoshi
00ed6f08fc
internal/graphicsdriver/opengl/gl: refactoring: reduce types
2023-04-22 19:27:56 +09:00
Hajime Hoshi
504006fc22
internal/graphicsdriver/opengl/gl: refactoring: remove unused types
2023-04-22 16:18:18 +09:00
Hajime Hoshi
0495101450
internal/graphicsdriver/opengl/gl: bug fix: build error with GOOS=js
2023-04-22 16:10:49 +09:00
Hajime Hoshi
0542f9daa3
internal/graphicsdriver/opengl/gl: refactoring
2023-04-22 15:59:18 +09:00
Hajime Hoshi
4f69ca4ea9
internal/graphicsdriver/opengl: add a debug mode with a build tag ebitenginegldebug
...
In the debug mode, GetError is inserted in each GL function call.
Closes #2650
2023-04-22 13:17:08 +09:00
Hajime Hoshi
95709d9182
internal/graphicsdriver/opengl: update GLES version to 3.0
...
GLES 3.0 is required for GLSL ES 3.0
Updates #1431
2023-04-19 22:43:26 +09:00
Hajime Hoshi
7509c1d7f5
internal/graphicsdriver/opengl: remove the version es100
...
es300 is requried for 'texelFetch' [1].
[1] https://registry.khronos.org/OpenGL-Refpages/es3.0/html/texelFetch.xhtml
Updates #1431
2023-04-19 22:10:32 +09:00
Hajime Hoshi
a19ff07130
internal/graphicsdriver/opengl: bug fix: potential infinite loop
2023-03-23 02:47:23 +09:00
Hajime Hoshi
034f9c2db8
internal/graphicsdriver/opengl: reland: refactoring: remove usages of graphics.IndicesCount
...
Updates #2460
2023-03-22 20:13:29 +09:00
Hajime Hoshi
8cbf545e0f
internal/graphicsdriver/opengl: revert commits for graphics.Indices
...
This change reverts these commits:
* 13d3a0487b
* 4cd98d512e
Reason: this caused crashes on Android.
Updates #2460
Closes #2610
2023-03-22 17:28:45 +09:00
Hajime Hoshi
13d3a0487b
internal/graphicsdriver/opengl: refactoring: remove usages of graphics.IndicesCount
...
Updates #2460
2023-03-22 13:33:34 +09:00
Hajime Hoshi
4cd98d512e
internal/graphicsdriver/opengl: refactoring
2023-03-21 23:06:49 +09:00
Hajime Hoshi
23e90b7e39
internal/graphicsdriver/opengl: refactoring
2023-03-20 22:48:20 +09:00
Hajime Hoshi
8ae6ea5ff6
internal/graphicsdriver/opengl: update comments
2023-03-20 01:42:54 +09:00
Hajime Hoshi
cbff3555db
internal/graphicsdriver/opengl: drop WebGL 1 support
...
Closes #2191
2023-03-18 22:50:09 +09:00
Hajime Hoshi
7998e4d31d
update purego to v0.3.0-alpha
...
There are breaking changes between purego v0.2.0 and v0.3.0-alpha.
2023-03-04 01:22:54 +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
72f026e254
internal/graphicsdriver/opengl/gl: bug fix: searching GL libraries failed on some machines
...
On a Debian machine, LD_LIBRARY_PATH might not be set and libGL.so might
not exist (libGL.so.1 exists instead). In this case, searching for a GL
library fails
This change fixes the issue by not using LD_LIBRARY_PATH and also including
`libGL.so.*` files as candidates for dlopen.
Closes #2539
2023-01-13 15:08:06 +09:00
divVerent
abece041f4
internal/graphicsdriver/opengl: fix state tracking of glBindTexture / glActiveTexture interaction ( #2526 )
...
After switching texture units using glActiveTexture, a different texture may
be bound. For now, let's just force the active texture state variable to zero
so the next glBindTexture call isn't skipped.
Closes #2525
2023-01-07 23:13:14 +09:00
Hajime Hoshi
847d1cae73
internal/graphicsdriver/opengl/gl/: refactoring
2023-01-07 17:01:00 +09:00
Hajime Hoshi
d615c2f42a
internal/graphicsdriver/opengl/gl: bug fix: isES was not set
2023-01-07 03:46:30 +09:00
Hajime Hoshi
869ca1e01f
internal/graphicsdriver/opengl/gl: fix a wrong comment
2023-01-07 03:41:02 +09:00
Hajime Hoshi
983e8abd46
internal/graphicsdriver/opengl/gl: bug fix: an unavailable library name might be chosen
...
Instead, let's try all the names with dlopen.
Updates #2523
2023-01-07 03:06:12 +09:00
Hajime Hoshi
df7b7b731e
internal/graphicsdriver/opengl/gl: bug fix: libGL.so might not exist in Steam
...
Instead, libGL.so.1 might exist. Use LD_LIBRARY_PATH and list the
candidates.
Closes #2523
2023-01-07 00:03:07 +09:00
Hajime Hoshi
cf76e3c646
internal/graphicsdriver/opengl: better place to reset uniform variables
...
Updates #2517
2023-01-04 01:36:04 +09:00
Hajime Hoshi
edf35b02cb
internal/graphicsdriver/opengl: record last uniform variables and reset them before swapping buffers
...
This is basically a revert of 6b4c696b31
.
This change resets the last uniform variables before swapping
buffers.
Updates #2517
2023-01-03 03:13:46 +09:00
Hajime Hoshi
6b4c696b31
internal/graphicsdriver/opengl: bug fix: needed always to set uniform variables
...
Before this fix, setting uniform variables could be skipped when the
values were the same. This caused some issues when a number of drawing
commands were much small than usual (e.g. SetScreenClearedEveryFrame
with false).
This change fixes this by not doing such optimization. Unfortunately
it was impossible to create a minimum reproducible unit test since
we cannot test the final screen framebuffer's states so far.
Closes #2517
2023-01-03 00:43:10 +09:00
Hajime Hoshi
ece60af1b7
internal/graphicsdriver/metal: stop using presentsWithTransaction
...
presentsWithTransaction caused many troubles. The critical thing was
that nextDrawable sometimes took more than one second when a user
inputs with NSTextView.
Fortunately, applications work well even without presentsWithTransaction.
Updates #1029
Updates #1196
Updates #1745
Updates #1974
2022-12-27 19:00: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
5356b44286
internal/graphicsdriver/opengl: add comments about Firefox
...
Updates #2077
2022-11-23 00:57:16 +09:00
Hajime Hoshi
0b9cbaa1ed
internal/shader: introduce integer vectors (ivec2, ivec3, ivec4)
...
Closes #1911
2022-11-21 00:31:23 +09:00
Hajime Hoshi
90213d5d80
internal/graphicsdriver/opengl: refactoring
2022-11-18 13:32:09 +09:00
Hajime Hoshi
95b4e67c77
internal/graphicsdriver/opengl: reduce context functions
2022-11-18 03:18:30 +09:00
Hajime Hoshi
4de6da0a50
internal/graphicsdriver/opengl: use an appropriate stencil buffer format
2022-11-17 13:31:36 +09:00
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