| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Using g_memdup() is dangerous due to the type of the size argument. See
https://gitlab.gnome.org/GNOME/glib/-/issues/2319 and
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1926 for details.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1708>
|
|
|
|
|
|
|
| |
Either "onscreen" or "offscreen" was logged as the type; replace this
with the actual type name.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
|
| |
This is what it was effectively used for in these places, so use the
appropriate API instead.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
|
|
| |
In a few places coordinates were flipped if driven framebuffer was or
wasn't a CoglOffscreen. Change this to use the existing Y-flipped-ness
class vfunc.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
|
|
|
|
| |
It's currently only handled by a surface backend framebuffer (assuming
the right GLX extensions are available). While it's theoretically
possible to do the same with the offcreen by having multiple textures,
it's not supported, so leave the FBO variant with a single warning if we
end up there.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
|
|
| |
The object was still pretending to be CoglFramebuffer itself, by using
naming and calling conventions making it seem like that. Fix that by
passing around the driver instead of the framebuffer.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
|
| |
This was the last driver vfunc used specifically to implement the
CoglFramebuffer driver.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
| |
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
|
| |
It was implemented slightly different depending on whether it was for a
surface or FBO, so move it to their corresponding GL driver types.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
| |
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
| |
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
| |
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
|
|
|
|
|
| |
Mutter needs to fetch the X11 Window ID from the onscreen and did that
by using an X11 specific API on the CoglOnscreen, where the X11 type was
"expanded" (Window -> uint32_t). Change this by introducing an interface
called CoglX11Onscreen, implemented by both the Xlib and GLX onscreen
implementations, that keeps the right type (Window), while avoiding X11
specific API for CoglOnscreen.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
|
|
| |
Mutter didn't use the APIs for resizeability of CoglOnscreens but
managed the size itself. For the native backend we don't ever resize
onscreens. Thus, remove this unused functionality.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
| |
Not used, and not relevant.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
| |
Tests pass anyway.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
| |
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
| |
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
| |
No need to go via the "winsys" vtable.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
|
| |
One is for when we're painting to the back buffer (onscreen), and the
other when we're painting to an FBO (offscreen).
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
| |
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
|
|
| |
The framebuffer driver was lazilly initialized on demand in some cases
(onscreen), and up front other (offscreen). Replace this with a more
predictable up front initialization, done at framebuffer allocation.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
| |
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
| |
This makes it possible to make type derivable.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
|
|
| |
It was namespaced as a CoglFramebuffer function, but was passed two
framebuffers, and operated on state kept in CoglContext. Move and rename
accordingly.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
| |
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
|
| |
So that the allocation functions don't need to peek at the cached flag
struct field.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
|
| |
It was called 'flags' which would conflict with a variable containing a
CoglOffscreenFlag that will be added later.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
| |
Was unused.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
| |
It was never set, so it was just some dead code.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
| |
It was only used there, so put it in the driver private struct.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
| |
Moving the external direct struct access will come later.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
|
|
| |
The CoglGLFramebuffer (not CoglGlFramebuffer) is a private struct for
keeping track of the framebuffer object. To avoid confusing with
CoglGlFramebuffer, rename it CoglGlFbo.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
|
|
| |
This way we can have separate types per modes of operation (e.g. if it's
backed by an EGLSurface or single texture), instead of being dependent
on a certain type (onscreen vs offscreen).
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
|
|
| |
This is to follow the convention [ParentName][ChildName] representing
inheritance. As this does not inherit CoglFramebuffer, rename it
CoglGlFramebuffer.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
|
|
| |
Instead of calling "init_onscreen()" on two different separate vtables
from the allocate() funtion, just have the CoglOnscreen sub types
themself implement allocate() and initialize in there.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Thins means that e.g. MetaOnscreenNative now inherits CoglOnscreenEgl,
which inherits CoglOnscreen which inherits CoglFramebuffer, all being
the same GObject instance.
This makes it necessary to the one creating the onscreen to know what it
wants to create. For the X11 backend, the type of renderer (Xlib EGL or
GLX) determines the type, and for the native backend, it's currently
always MetaOnscreenNative.
The "winsys" vfunc entries related to onscreens hasn't been moved yet,
that will come later.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
| |
This is so a derivable type can be declared later.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The mutter naming convention for types and their instance variables is:
Type name:
[Namespace][BaseName][SubType]
Instance name:
[base_name]_[sub_type]
This means that e.g. CoglOnscreenGLX is renamed CoglOnscreenGlx, and
glx_onscreen is renamed onscreen_glx. This is in preparation for
GObjectification.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
|
| |
As with the other onscreens, separate it into its own file in
preparation for GObjectification.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
|
| |
Mostly in order to untangle it from the rest, preparing turning it into
a GObject.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
|
|
|
| |
The GLX winsys code had split up the GLX onscreen implementation into an
Xlib part (with a struct name confusingly enough identical to that of
the onscreen in the actual Xlib winsys). To remove some confusion,
combine the two.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
| |
In praparation for declaring the EGL onscreen part using G_DECLARE*.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
| |
It's only used in the Xlib onscreen, so move it there.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
|
| |
As a preparation turning it into its own type, move the code related to
CoglOnscreen to its own file.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
| |
This means we can now make CoglOnscreen derivable using GObject macros.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
|
| |
That means all sub types need to use helper methods, so make them do
that too.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>
|
|
|
|
|
|
| |
As with cogl-graphene, the same mistake was made here.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1690>
|
|
|
|
|
|
|
| |
The intention was for these files to be licensed identically to the
other files in cogl, so fix this.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1690>
|
|
|
|
|
|
|
|
| |
This makes it possible to post a symbolic page flip and frame callback,
meant to be used by immediate symbolic page flip reply when emulating
cursor plane changes using legacy drmMode* functions.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1488>
|