| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Add an example to the GskGLShader docs.
|
|
|
|
|
| |
This one tests the convenience api for creating
uniform data.
|
|
|
|
| |
This gets around 500 instances at 60fps on my system.
|
|
|
|
|
|
|
| |
Add a shader paintable to the OpenGL transitions
demo. This is reusing one of the shadertoy examples,
tweaked slightly to work as a standalone fragment
shader.
|
|
|
|
|
|
|
|
|
| |
This is a GdkPaintable implementation wrapped
around a GskGLShader. It can optionally be hooked
up to a frame clock to update a time uniform.
The code is set up for this to live as public api
in GSK, if we find it useful enough.
|
|
|
|
|
| |
We can now just use gsk_gl_shader_format_args() directly, relying
on the transfer-full of the shader args argument.
|
|
|
|
| |
This makes the common case of this just being created a lot easier.
|
|
|
|
|
| |
This makes a lot of types and function names shorter.
Also, we add a "..." version of gsk_gl_shader_format_args_va().
|
|
|
|
| |
This fixes all remaining cases in public headers.
|
|
|
|
|
|
|
|
| |
This removes the fallback node from GskGLShaderNode and adds
a new function gsk_gl_shader_try_compile_for() which tries to compile a
shader against a renderer. Then you can use the return value of this
both as a way to implement the fallback, and as a way to get at
the error report in a saner way.
|
|
|
|
|
| |
These are just basic api usage tests, no rendering.
They found the issues fixed in the preceding commits.
|
|
|
|
|
| |
Accept - in initializers, otherwise we don't accept
things like uniform int n = -2;
|
|
|
|
|
|
| |
Accept comments after a uniform declaration - the
very first shader example I tried had these, so we
better support it.
|
|
|
|
|
|
|
| |
The types we store for the uniforms are VEC2/3/4,
even though we just store a bunch of floats.
This was found while adding some simple tests.
|
|
|
|
|
|
|
| |
Print out the full assembled shader sources when
GSK_DEBUG=shaders is given. This is very verbose,
but may be useful to see what we actually pass
to the compiler.
|
|
|
|
|
|
| |
When we're done extracting uniform info from the glsl,
print out what we've found for GSK_DEBUG=shaders. If
something goes wrong, this will be useful.
|
| |
|
|
|
|
|
|
|
|
| |
Rename gtk_snapshot_push_glshader and friends to
gtk_snapshot_push_gl_shader, following the similar
renaming in GSK.
Update all callers.
|
|
|
|
| |
Tweak the gl shader docs here and there.
|
| |
|
|
|
|
| |
I was getting "assignment to varying fragColor" errors
|
|
|
|
|
|
|
|
|
|
|
| |
Add adds a demo showing off GskGLShaderNode in various ways.
It has a transistion widget, using some examples from
gl-transitions.com, with child widgets being both images, a GL area
and real widgets (that let you edit the transition shaders
themselves.
It also has a fancy fire effect on hove on the buttons.
|
|
|
|
|
|
| |
For vulkan/broadway this just means to ignore it, but for the gl
backend we support (with up to 4 texture inputs, which is similar to
what shadertoy does, so should be widely supported).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a rendernode that is supposed to run a GLSL fragment
shader with a set of inputs and produce outputs.
The inputs are:
* A GskGLShader object with the source and uniforms definitions
computed from the source.
* A the data for the uniforms, formated according to the GskGLShader
* a list of render nodes that are rendered to textures
Additionally there is a fallback node which is used in case
OpenGL is not supported or there is some kind of failure
with the shader code.
|
|
|
|
|
|
| |
This adds a gsk prefix to the stuff in the preamble, as we want to
avoid it conflicting with things in the main shader. Especially once
we start allow some customization of shaders.
|
|
|
|
|
|
| |
Almost always the source is created by combining various sources, which
means the line numbers in the error messages are hard to use. Adding
the line numbers to the source in the error message helps with this.
|
|
|
|
|
|
| |
In gsk_gl_shader_builder_create_program(), if linking fails we
need to return -1 to indicate error, rather than the old deleted
program id.
|
|
|
|
|
|
| |
There is no real reason to have this on the side indexed via the
index, as it is stored next to each other anyway. Plus, storing them
together lets use use `Program` structures not in the array.
|
|\
| |
| |
| |
| | |
Adwaita: Improve columnview styling
See merge request GNOME/gtk!2608
|
| |
| |
| |
| | |
This should be available without .data-table.
|
| |
| |
| |
| |
| |
| |
| | |
- Move padding from parent row to child cell.
- Align horizontal sizing of cell with header button.
- Properly support GtkColumnView:show-column-separators.
- Change cell height with and without .data-table.
|
|/ |
|
|\
| |
| |
| |
| | |
Matthiasc/for master
See merge request GNOME/gtk!2607
|
| | |
|
| |
| |
| |
| |
| |
| | |
"Two of every kind..." Add some customized pickers
here. This found a number of issues that have been
fixed in the preceding commits.
|
| |
| |
| |
| |
| |
| | |
When we create the dialog before the button has
been rooted, we need to update its transient
parent when that happens.
|
| |
| |
| |
| | |
This broke when it was ported to GtkDropDown.
|
| |
| |
| |
| |
| |
| |
| | |
This was showing up as tweak buttons being visible
when they should not. The code probably relied on
widgets being hidden by default (as they were in
GTK3).
|
| |
| |
| |
| |
| |
| | |
This might seem useless, but I've met fonts
where pango_font_family_get_face (family, NULL)
return NULL. Handle it without criticals.
|
| | |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
main: Update pointer focus state for button releases
Closes #3172
See merge request GNOME/gtk!2601
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Failure to do so makes the old pointer focus target
'sticky', because we end up ignoring the result of
picking the pointer focus until a motion event comes
in.
Fixes: #3172
|
| | | |
|
|\ \ \
| |_|/
|/| |
| | |
| | | |
wayland: Fix grabbing popup
See merge request GNOME/gtk!2604
|
| | |
| | |
| | |
| | |
| | |
| | | |
A typo snuck into commit 3023a61e1d65bee1db3 that
caused us to fail all grabbing popups with
"grab failed: not viewable". Fix that.
|
|/ / |
|
|\ \
| | |
| | |
| | |
| | | |
Drop gtk_widget_new
See merge request GNOME/gtk!2603
|
| | |
| | |
| | |
| | |
| | | |
An abstract type should not have a constructor.
If you want to be generic, just use g_object_new.
|
|\ \ \
| |/ /
|/| |
| | |
| | | |
Matthiasc/for master
See merge request GNOME/gtk!2602
|