Simon Ser
e5b5592a95
render: remove wl_drm support from wlr_renderer
...
Everything needs to go through the unified wlr_buffer interface
now.
If necessary, there are two ways support for
EGL_WL_bind_wayland_display could be restored by compositors:
- Either by using GBM to convert back EGL Wayland buffers to
DMA-BUFs, then wrap the DMA-BUF into a wlr_buffer.
- Or by wrapping the EGL Wayland buffer into a special wlr_buffer
that doesn't implement any wlr_buffer_impl hook, and special-case
that buffer type in the renderer.
2021-07-05 11:13:41 -04:00
Simon Ser
29be2d47e4
render: drop wlr_renderer_impl.texture_from_dmabuf
2021-07-01 14:57:52 -04:00
Simon Ser
18adb43a44
render: drop wlr_renderer_impl.texture_from_pixels
2021-07-01 14:57:52 -04:00
Simon Ser
a2419eb4ea
render/egl: make most functions private
...
The wlr_egl functions are mostly used internally by the GLES2
renderer. Let's reduce our API surface a bit by hiding them. If
there are good use-cases for one of these, we can always make them
public again.
The functions mutating the current EGL context are not made private
because e.g. Wayfire uses them.
2021-06-24 13:53:05 -04:00
Simon Ser
b69db15da6
render/egl: remove stale wlr_egl_export_image_to_dmabuf decl
...
This function has been removed, but we forgot to drop it from the
header.
2021-06-24 11:57:14 +02:00
zccrs
3c03639cd5
render: add get native paint target of renderer
...
Add wlr_pixman_buffer_get_current_image for wlr_pixman_renderer.
Add wlr_gles2_buffer_get_current_fbo for wlr_gles2_renderer.
Allow get the FBO/pixman_image_t, the compositor can be add some
action for FBO(for eg, attach a depth buffer), or without pixman
render to pixman_image_t(for eg, use QPainter of Qt instead of pixman).
2021-06-19 10:04:35 +02:00
zccrs
dc17ecd236
render/pixman: add wlr_*_is_pixman and wlr_pixman_texture_get_image
...
Add the following functions:
- wlr_renderer_is_pixman
- wlr_texture_is_pixman
- wlr_pixman_texture_get_image
2021-06-19 10:04:35 +02:00
zccrs
fdc40e071e
render/gles2: add wlr_renderer_is_gles2
...
Export the interface used to determine whether the wlr_renderer object
is gles2.
2021-06-19 10:04:35 +02:00
Simon Ser
2806154900
render: add missing arg to wlr_renderer_impl.get_buffer_caps
...
The types of buffers supported by the renderer might depend on the
renderer's instance. For instance, a renderer might only support
DMA-BUFs if the necessary EGL extensions are available.
Pass the wlr_renderer to get_buffer_caps so that the renderer can
perform such checks.
Fixes: 982498fab3
("render: introduce renderer_get_render_buffer_caps")
2021-06-09 16:41:03 +02:00
Simon Ser
6430230d1f
render: add wlr_renderer_begin_with_buffer
...
This allows compositors to choose a wlr_buffer to render to. This
is a less awkward interface than having to call bind_buffer() before
and after begin() and end().
Closes: https://github.com/swaywm/wlroots/issues/2618
2021-06-01 13:12:28 -04:00
Simon Ser
9d55f712e3
render: introduce wlr_texture_from_buffer
...
This adds a a function to create a wlr_texture from a wlr_buffer.
The main motivation for this is to allow the renderer to create a
single wlr_texture per wlr_buffer. This can avoid needless imports
by re-using existing textures.
2021-05-17 16:22:43 +02:00
Simon Ser
6369f70931
render: remove wlr_texture_get_size
...
Users can just access the width/height fields directly.
2021-05-17 10:03:17 +02:00
Simon Zeni
982498fab3
render: introduce renderer_get_render_buffer_caps
2021-04-28 20:55:57 +02:00
Simon Zeni
10c5199d85
render/gles2: introduce wlr_gles2_renderer_create_with_drm_fd
2021-04-20 21:14:27 +02:00
Simon Zeni
0d90dddfab
render: introduce pixman renderer
2021-04-17 09:54:39 +02:00
Simon Zeni
84dea55b20
render: rename get_dmabuf_render_formats into get_render_formats
2021-04-15 17:10:06 +02:00
Simon Ser
a109a80dca
render: drop support for ellipses
...
For anything more complicated than quads, compositors can easily
ship their own shaders.
Closes: https://github.com/swaywm/wlroots/issues/2759
2021-04-08 09:10:03 +02:00
Simon Ser
9ecfa4343a
render: remove wlr_texture_to_dmabuf
...
This is unused in wlroots, and the use-cases for compositors are
pretty niche since they can access the original DMA-BUF via the
wlr_buffer.
2021-04-08 09:09:50 +02:00
Simon Ser
1cdef8da57
render: drop wlr_renderer_blit_dmabuf
...
It can be replaced with wlr_renderer_bind_buffer. blit_dmabuf is
broken as-is (dies on an assertion).
2021-04-08 09:09:03 +02:00
Simon Ser
cf5b09ede2
Remove unnecessary wayland-server-protocol.h includes
2021-02-23 16:09:26 +01:00
Simon Ser
27fba3df43
render: use DRM formats in wlr_texture_from_pixels
2021-02-23 16:09:26 +01:00
Simon Ser
b54ef3372d
render: use DRM formats in wlr_renderer_read_pixels
2021-02-23 16:09:26 +01:00
Simon Ser
00bf6674b3
output: use DRM format in wlr_output_preferred_read_format
2021-02-23 16:09:26 +01:00
Simon Ser
ddfee63055
render: use DRM formats in wlr_renderer_get_shm_texture_formats
2021-02-23 16:09:26 +01:00
Simon Ser
3d7aa73867
render/dmabuf: make src arg const in wlr_dmabuf_attributes_copy
2021-02-02 19:53:16 +01:00
Brandon Dowdy
8aa38fe73e
render/egl: remove *config_attribs and wlr_egl->config
...
Breaking changes:
Both "EGLint *config_attribs" and "wlr_egl->config" no longer exist.
2021-01-29 10:03:24 +01:00
Brandon Dowdy
705b3da7cb
render/egl: remove wlr_egl_{create,destroy}_surface
...
Breaking changes:
wlr_egl_create_surface and wlr_egl_destroy_surface have been
removed and no longer exist.
2021-01-29 10:03:24 +01:00
Simon Ser
7c995b78b2
Revert "render: add wlr_egl_create_from_drm_fd function"
...
This reverts commit ee31be167b
.
2021-01-20 21:32:50 +01:00
Simon Ser
54e5ef39c0
Revert "render/egl: remove unused gbm_device member"
...
This reverts commit 306cf11d87
.
2021-01-20 21:32:50 +01:00
Simon Zeni
306cf11d87
render/egl: remove unused gbm_device member
2021-01-20 15:29:00 +01:00
Simon Zeni
ee31be167b
render: add wlr_egl_create_from_drm_fd function
2021-01-20 15:29:00 +01:00
Simon Zeni
08a4c62aac
render: remove egl include from wlr_renderer
2021-01-16 08:57:42 +01:00
Simon Zeni
e128e6c08d
render: drop egl parameters from wlr_renderer_autocreate
2021-01-16 08:57:42 +01:00
Simon Ser
3f7e0cf5f0
render/egl: remove surface and buffer age args from make_current
...
These aren't used anymore.
2021-01-12 11:31:04 +01:00
Simon Ser
1d461687d2
render/egl: replace init/finish with create/destroy
...
This ensures wlr_gles2_renderer can properly take ownership of the
wlr_egl.
Closes: https://github.com/swaywm/wlroots/issues/2612
2021-01-12 11:31:04 +01:00
Simon Ser
50b120927d
render/egl: remove wlr_egl_swap_buffers
2021-01-12 11:31:04 +01:00
Simon Ser
76ed2255ef
render/egl: remove support for EGL_NATIVE_VISUAL_ID
...
Nobody uses it anymore.
2021-01-12 11:31:04 +01:00
Simon Ser
64da8f0c8d
render/egl: document NULL config_attribs passed to wlr_egl_init
2021-01-09 12:02:39 +01:00
Simon Ser
41aa80d4a1
render/egl: use KHR function pointer type
...
KHR is more "core" than EXT.
2021-01-09 11:20:20 +01:00
Simon Ser
34b14d2fee
render/egl: document that config may be zero
2021-01-09 11:19:25 +01:00
Simon Zeni
9192c0480a
remove unnecessary egl includes
2021-01-07 17:11:22 +01:00
Simon Zeni
b899a412e3
backend: remove wlr_egl from all backends
2021-01-07 17:11:22 +01:00
Simon Ser
07d75c99db
render: remove EGL config and visual from wlr_renderer_autocreate
...
This isn't used anymore by any backend.
Some examples still provide an EGL config to wlr_egl_init, so we can't
drop it yet there.
2021-01-06 12:05:51 +01:00
Simon Ser
83a5d03bf3
render/egl: remove wlr_egl.external_only_dmabuf_formats
...
Replace it with wlr_egl.dmabuf_render_formats.
2020-11-30 11:08:44 +01:00
Simon Ser
c94ab99ae2
render: rename wlr_renderer_get_formats
...
Rename wlr_renderer_get_formats to wlr_renderer_get_shm_texture_formats.
This makes it clear those formats are only suitable for shm import.
2020-11-30 11:08:44 +01:00
Simon Ser
49115e9d5d
render: rename wlr_renderer_get_dmabuf_formats
...
Rename wlr_renderer_get_dmabuf_formats to
wlr_renderer_get_dmabuf_texture_formats. This makes it clear the formats
are only suitable for creating wlr_textures.
2020-11-30 11:08:44 +01:00
Simon Ser
5d008d9030
render: introduce wlr_renderer_get_dmabuf_render_formats
...
It describes which DMA-BUF formats can be used to render.
2020-11-30 11:08:44 +01:00
Simon Ser
61612ecb36
render: remove wlr_renderer_format_supported
...
Instead, callers can just use wlr_renderer_get_formats and iterate over
the list.
This function was unused in wlroots.
2020-11-30 11:08:44 +01:00
Simon Ser
c15ca3793e
render: expand wlr_renderer_get{,_dmabuf}_formats docs
...
Make it clear formats returned are only suitable for import/sampling.
These formats can't be used to be rendered to.
2020-11-30 11:08:44 +01:00
Ilia Bozhinov
6284af121f
texture: document that functions should not be called while rendering
2020-11-19 11:35:04 +01:00