Elias Naur
bd7c7a108a
app/internal/window: (Windows) don't send zero-sized draw requests
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-29 16:15:55 +01:00
Elias Naur
3738aa43a8
example,cmd: bump gio version
2020-02-29 15:57:27 +01:00
Elias Naur
62a2f3b8c8
README.md: link to Larry's GitHub mirror
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-29 15:42:01 +01:00
Elias Naur
22e15da67c
app/internal/window: (Windows) return all errors from NewContext
...
Instead of just returning the first error (from Direct3D), return
the errors from all attempts.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-29 15:39:04 +01:00
Elias Naur
8405bf0e47
gpu/shaders: be more robust against floating point inaccuracies
...
We're forced by compatibility to encode an integer state into a
floating point. Make the implicit conversion from floating point to
integer more robust against GPUs with low precision floats.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-29 14:27:50 +00:00
Elias Naur
148a2828e7
layout: don't force Expanded Stack children larger than their minimum
...
Instead, honor the constraints after laying out both Stacked and
Expanded children.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-29 14:06:25 +01:00
Elias Naur
c1048a3a54
example,cmd: update gio version
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-29 13:03:20 +01:00
Elias Naur
0ceccf3c93
app/internal/d3d11: try more floating point formats
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-29 13:01:48 +01:00
Elias Naur
0160bba020
example,cmd: update gio version
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-29 10:53:20 +01:00
Elias Naur
b3a3c34088
app/internal/d3d11: detect hardware floating point support
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-29 10:52:04 +01:00
Elias Naur
050f43d60a
io/router: add pointer drag-and-move test
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-29 10:11:23 +01:00
Elias Naur
330705a423
example,cmd: update gio version
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-28 15:24:07 +01:00
Elias Naur
b194a0ce58
internal/cmd/convertshaders: target 9.1 compatibility shader model
...
Direct3D 11 supports Direct3D 9.1 level hardware, but only if the shaders are
compiled for target 4_0_level_9_1.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-28 15:22:58 +01:00
Elias Naur
1d3a9fb2d6
internal/cmd/convertshaders: replace fxc.exe with D3DCompile
...
D3DCompile successfully compiles shaders fxc.exe doesn't. As a bonus
the DirectX SDK is no longer required (it includes fxc.exe).
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-28 15:14:54 +01:00
Elias Naur
a448825d48
app/internal/d3d11: only clear depth buffer if it exists
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-28 14:50:39 +00:00
Elias Naur
73fc5e1482
app/internal/d3d11: return structured ErrorCode errors from d3d functions
...
While here, change the ErrorCode.Code field type to uint32 to better reflect
its native counterpart.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-28 13:49:56 +01:00
Elias Naur
5ae68d2127
example, cmd: update gio version
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-28 09:59:34 +01:00
Elias Naur
2fd7e2dd9b
app/internal/d3d11: fix GOOS=windows GOARCH=386 build
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-28 09:58:23 +01:00
Elias Naur
bfb50cef5d
all: remove unused fields, functions and add missing error handling
...
Credit to staticcheck.io.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 22:26:54 +01:00
Elias Naur
4b7387369b
.builds: upgrade to Go 1.14 final
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 21:56:18 +01:00
Elias Naur
27c77f1baf
example,cmd: update gio version
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 21:56:17 +01:00
Elias Naur
e03b3cd808
app/internal/d3d11: add Direct3D backend
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 21:41:35 +01:00
Elias Naur
d65bfdc275
internal/cmd/convertshaders: use gofmt to format output
...
In particular, the simplifying "-s" flag to gofmt ensures that the automatic
test for unformatted Go source files won't complain.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 21:41:31 +01:00
Elias Naur
591c89ab0a
gpu: drop use of integer shader inputs
...
They're a pain to support. Encode the single integer value we have
as a float instead.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 21:22:59 +01:00
Elias Naur
3043c4243a
gpu/backend: add support for GLSL 1.50
...
Apple's OpenGL 3.2 Core implementation doesn't accept 1.30.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 21:22:59 +01:00
Elias Naur
dd6a247326
gpu/backend: add support for desktop OpenGL 3
...
In particular, add the GLSL 1.30 shader variant. Sigh.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 21:22:59 +01:00
Elias Naur
a0c4688d0c
app/headless,gpu/gl: make ReadPixels y-flipping backend specific
...
The Direct3D backend doesn't need y-flipping, so don't do it unconditionally in
package app/headless.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 21:22:59 +01:00
Elias Naur
8dce81d8fd
gpu/shaders: introduce toClipSpace to map to GPU native clip space
...
OpenGL use the [-1; 1] range for clip depths, Direct3D [0; 1].
Use toClipSpace to encapsulate the difference.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 21:22:59 +01:00
Elias Naur
c34c350a52
gpu: pack 2D transforms in vec4 values
...
Instead of separate 2d scale and transform, pack them into a single
4d value.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 21:22:59 +01:00
Elias Naur
1f117d8de0
internal/cmd/convertshaders: #define HLSL when compiling for HLSL
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 21:22:59 +01:00
Elias Naur
c20c1ab96f
gpu/shaders: compensate for GPU Framebuffer => texture transformation
...
Add fboTextureTransform shader function for cancelling the
implied transformation from fragments output by the fragment
shader and the (u, v) coordinates used to sample from it in a
later pass.
For OpenGL the transformation is the identity.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 21:22:59 +01:00
Elias Naur
0d573514c5
internal/cmd/convertshaders: support #include in shaders
...
Add flag to specify shader directory while here.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 21:22:59 +01:00
Elias Naur
6213daa3e9
app: recover from transient Present errors
...
Some GPU APIs such as Direct3D can return an error after drawing
a frame indicating a transient device error. Recreate device and
retry if it happens.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 21:22:59 +01:00
Elias Naur
29d36e11ee
gpu/shaders: use correct type for integer vector
...
OpenGL supports casting from int to float during vertex array
reading. Direct3D doesn't. Since we're transpiling from GLSL, we can't
directly use the Direct3D builtin "asint". So that leaves using
"ivec2" instead of vec2.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 21:22:59 +01:00
Elias Naur
7ff2f60412
app/headless: add lower-level backend tests
...
Add a series of low level gpu.Backend tests to assure the correct behaviour of
Backends. The immediate use is debugging of the Direct3D port, in the future
for developing new backends.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 21:22:59 +01:00
Elias Naur
55c74d3159
app/headless: setup default Viewport in NewWindow
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 20:34:58 +01:00
Elias Naur
0d266c413d
gpu,gpu/backend: implement GLSL 300 es shader variants
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 20:34:58 +01:00
Elias Naur
3a5a2cff6b
app/internal/glimpl: add gl functions for uniform buffers
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 20:34:37 +01:00
Elias Naur
23757b1022
gpu: avoid internal uniform buffer pointers
...
Uniform buffers are byte slice backed by Go structs. However, if a uniform
buffer value is embedded in a larger structure with pointers, the Cgo
pointer checker will complain. Avoid the error by moving the uniform
values into separate structures.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 20:34:23 +01:00
Elias Naur
b9d131409e
gpu/gl: tolerate programs with no attributes
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 20:34:22 +01:00
Elias Naur
0be4dd9af0
app/internal/cmd/convertshaders: use backend types directly
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 20:34:22 +01:00
Elias Naur
fd61c226d4
internal/cmd/convertshaders: move shader converter to separate package
...
To use the converter from other packages, make the converter a
runnable command.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 20:34:22 +01:00
Elias Naur
5cd5d49108
gpu/backend: move backend interface types to a separate package
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 20:34:22 +01:00
Elias Naur
50e98d1e13
app/headless: handle error from Framebuffer.ReadPixels
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 20:34:22 +01:00
Elias Naur
2df50dda8e
app/headless: remove unusued parameters to newContext
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 20:34:22 +01:00
Elias Naur
dfc1503c00
gpu: replace Backend.DefaultFramebuffer by Backend.CurrentFramebuffer
...
DefaultFramebuffer was set up at Backend creation time, which is
difficult to predict. Instead, let GPU query and cache the current
FBO when created.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 20:34:22 +01:00
Elias Naur
b4c163e437
gpu: Move Bind methods to Backend
...
Having Backend.Bind* methods better matches both opengl and d3d.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 20:34:22 +01:00
Elias Naur
055fa97343
app/headless: Release Window after testing it
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 20:34:22 +01:00
Elias Naur
f305f71b20
app/headless: re-implement Screenshot on top of Backend
...
The new Framebuffer.ReadPixels method is enough to implement
Window.Screenshot. Use that instead of the OpenGL-specific
implementation.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 20:34:22 +01:00
Elias Naur
e4a927982d
gpu: add Framebuffer.ReadPixels
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2020-02-27 20:34:22 +01:00