| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
We can't combine multiple draws into one for the software fallback,
because each quad has a different texture. And we generally don't
want to make a larger single texture because then we would have
to upload more data.
|
|
|
|
| |
The scissoring needs to take into account the window scale.
|
|
|
|
|
|
|
| |
Use the new --cert and --key parameters to broadwayd to pass paths to
cert and key files.
https://bugzilla.gnome.org/show_bug.cgi?id=730364
|
| |
|
|
|
|
| |
Pointed out in https://bugzilla.gnome.org/show_bug.cgi?id=741254
|
|
|
| |
And call it only if that's the case
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The ICCCM says:
If the specified property is None , the requestor is an obsolete client.
Owners are encouraged to support these clients by using the specified
target atom as the property name to be used for the reply.
Lets do that, instead of crashing.
https://bugzilla.gnome.org/show_bug.cgi?id=740613
|
|
|
|
|
| |
We shouldn't bother recalculating all the visible regions and wiping
away the old updating areas if we're simply dragging the window around.
|
|
|
|
|
| |
There was a leftover HAVE_CAIRO_SURFACE_SET_DEVICE_SCALE ifdef
that broke things, now that we don't use this define anymore.
|
|
|
|
|
|
|
|
| |
NULL-plus-something could be seen by the compiler to attempt to do
arithmetic with void *, which is a GCCism. Instead, do the math normally
and cast the results as a void *.
https://bugzilla.gnome.org/show_bug.cgi?id=740605
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use xdg_surface_set_window_geometry() to tell the compositor about the
shadow widths, this makes some gnome-shell/mutter features (edge resistance,
frames around windows in the overview, side maximization, ...) work alright
with GTK+.
In order to add this, some other places in gdkwindow-wayland had to gain
some knowledge about margins:
- xdg_surface_configure() now syncs the shadow after applying the state,
and gdk_wayland_window_set_shadow_width() possibly reconfigures the
window in order to preserve window geometry. This is necessary to keep
shadows in sync with state/geometry changes, as this does not happen
all at once.
- xdg_popups relative to an xdg_surface are shown relative to buffer
coordinates, so the left/top margins must be added there.
https://bugzilla.gnome.org/show_bug.cgi?id=736742
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This requires us to use GL_TRIANGLES and six verts per quad instead
of four, which makes me think it might not be worth it on
well-optimized GL drivers. However, from talking to some driver
developers about it, the GL_TRIANGLES should be faster, since this
means that there's one giant contiguous buffer instead of many small
buffers.
If we were really rendering a lot of quads, I'd use an element buffer
and GL_PRIMITIVE_RESTART, but we're really not ever rendering that
many quads, and the setup cost for that would just be too annoying.
|
| |
|
|
|
|
|
| |
This isn't fully performant yet. To be fully performant, we'd need to
do everything in one giant buffer.
|
| |
|
|
|
|
| |
We'll soon have a new function that paints multiple quads.
|
|
|
|
|
| |
Abstract the program ID and locations into a "program struct" which
we then use.
|
|
|
|
| |
This has been bothering me for a while.
|
|
|
|
|
|
| |
It's unused. At the same time, rename "begin_paint_region" to
"begin_paint". This will help us clean up how GDK painting works
in the future to allow more creative use of double-buffering.
|
|
|
|
| |
It's unused.
|
| |
|
|
|
|
| |
Got a sign wrong in commit 800c712738f5666937e32d9f8cb32353513b9423
|
|
|
|
|
|
|
| |
The update virtual function for GdkGLContext is unused and is a
leftover from a previous GL approach. Just remove it.
https://bugzilla.gnome.org/show_bug.cgi?id=739750
|
|
|
|
|
|
|
|
| |
This is needed in the edge case where the X11 backend rounded the actual
size, and the GL flipping really needs the correct window height to
do proper Y coordinate flipping.
https://bugzilla.gnome.org/show_bug.cgi?id=739750
|
|
|
|
|
|
|
|
|
| |
This is required for the X backend GL integration. If the
window has a height that is not a multiple of the window scale
we can't properly do the y coordinate flipping that GL needs.
Other backends can ignore this and use the default implementation.
https://bugzilla.gnome.org/show_bug.cgi?id=739750
|
|
|
|
|
|
|
|
|
| |
Rather than just rounding down the position *and* the size separately
we correctly calculate a rectangle in scaled window coords that fully
covers the real window size. This really only makes a difference
when the window size/position isn't a multiple of the window scale.
https://bugzilla.gnome.org/show_bug.cgi?id=739750
|
|
|
|
|
|
|
|
|
| |
Keep track of the exact size of X windows in underlying pixels; we
generally use the scaled size instead, but to properly handle the GL
viewport for windows that aren't a multiple of window_scale,
we need to know the real size.
https://bugzilla.gnome.org/show_bug.cgi?id=739750
|
|
|
|
|
|
|
|
|
|
|
|
| |
Although we specify a resize increment to try and get a size that is
a multiple of the window scale, maximization typically wins
over the resize increment, so the window might be odd sized.
Round *up* in this case, rather than down, since it's better to
truncate a line or two at the bottom and right of the window rather
than have a line or two that we don't know what to do with.
https://bugzilla.gnome.org/show_bug.cgi?id=739750
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Implement GdkGLContext using EGL and use hardware mir surfaces
when a GdkWindow uses gl rendering.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=740346
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
The extra ';' actually broke builds on C89 compilers...
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|