|
|
|
bin_PROGRAMS = weston \
|
|
|
|
$(weston_launch)
|
|
|
|
|
|
|
|
AM_CPPFLAGS = \
|
|
|
|
-I$(top_srcdir)/shared \
|
|
|
|
-DDATADIR='"$(datadir)"' \
|
|
|
|
-DMODULEDIR='"$(moduledir)"' \
|
|
|
|
-DLIBEXECDIR='"$(libexecdir)"' \
|
|
|
|
-DIN_WESTON
|
|
|
|
|
Rename wayland-compositor to weston
This rename addresses a few problems around the split between core
Wayland and the wayland-demos repository.
1) Initially, we had one big repository with protocol code, sample
compositor and sample clients. We split that repository to make it
possible to implement the protocol without pulling in the sample/demo
code. At this point, the compositor is more than just a "demo" and
wayland-demos doesn't send the right message. The sample compositor
is a useful, self-contained project in it's own right, and we want to
move away from the "demos" label.
2) Another problem is that the wayland-demos compositor is often
called "the wayland compsitor", but it's really just one possible
compositor. Existing X11 compositors are expected to add Wayland
support and then gradually phase out/modularize the X11 support, for
example. Conversely, it's hard to talk about the wayland-demos
compositor specifically as opposed to, eg, the wayland protocol or a
wayland compositor in general.
We are also renaming the repo to weston, and the compositor
subdirectory to src/, to emphasize that the main "output" is the
compositor.
13 years ago
|
|
|
weston_LDFLAGS = -export-dynamic
|
|
|
|
weston_CFLAGS = $(GCC_CFLAGS) $(COMPOSITOR_CFLAGS) $(LIBUNWIND_CFLAGS)
|
|
|
|
weston_LDADD = $(COMPOSITOR_LIBS) $(LIBUNWIND_LIBS) \
|
|
|
|
$(DLOPEN_LIBS) -lm ../shared/libshared.la
|
|
|
|
|
|
|
|
weston_SOURCES = \
|
|
|
|
git-version.h \
|
|
|
|
log.c \
|
|
|
|
compositor.c \
|
|
|
|
compositor.h \
|
|
|
|
input.c \
|
|
|
|
data-device.c \
|
|
|
|
filter.c \
|
|
|
|
filter.h \
|
|
|
|
screenshooter.c \
|
|
|
|
screenshooter-protocol.c \
|
|
|
|
screenshooter-server-protocol.h \
|
|
|
|
clipboard.c \
|
|
|
|
text-cursor-position-protocol.c \
|
|
|
|
text-cursor-position-server-protocol.h \
|
|
|
|
zoom.c \
|
|
|
|
text-backend.c \
|
|
|
|
text-protocol.c \
|
|
|
|
text-server-protocol.h \
|
|
|
|
input-method-protocol.c \
|
|
|
|
input-method-server-protocol.h \
|
|
|
|
workspaces-protocol.c \
|
|
|
|
workspaces-server-protocol.h \
|
protocol: add sub-surfaces
Add protocol for sub-surfaces, wl_subcompositor as the global interface,
and wl_subsurface as the per-surface interface extension.
This patch is meant to be reverted, once sub-surfaces are moved into
Wayland core.
Changes in v2:
- Rewrite wl_subcompositor.get_subsurface description, and move mapping
and commit details into wl_subsurface description. Check the wording
in wl_subsurface.set_position description.
- Add wl_subsurface.set_commit_mode request, and document it, with the
commit_mode enum. Add bad_value error code for wl_subsurface.
- Moved the protocol into Weston repository so we can land it upstream
sooner for public exposure. It is to be moved into Wayland core later.
- Add destroy requests to both wl_subcompositor and wl_subsurface, and
document them. Experience has showed, that interfaces should always
have a destructor unless there is a good and future-proof reason to not
have it.
Changes in v3:
- Specify, that wl_subsurface will become inert, if the corresponding
wl_surface is destroyed, instead of requiring a certain destruction
order.
- Replaced wl_subsurface.set_commit_mode with wl_subsurface.set_sync and
wl_subsurface.set_desync. Parent-cached commit mode is now called
synchronized, and independent mode is desynchronized. Removed
commit_mode enum, and bad_value error.
- Added support for nested sub-surfaces.
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years ago
|
|
|
subsurface-protocol.c \
|
|
|
|
subsurface-server-protocol.h \
|
|
|
|
bindings.c \
|
|
|
|
animation.c \
|
|
|
|
gl-renderer.h \
|
|
|
|
noop-renderer.c \
|
|
|
|
pixman-renderer.c \
|
|
|
|
pixman-renderer.h \
|
|
|
|
../shared/matrix.c \
|
|
|
|
../shared/matrix.h \
|
|
|
|
../shared/zalloc.h \
|
|
|
|
weston-launch.h \
|
|
|
|
weston-egl-ext.h
|
|
|
|
|
|
|
|
if ENABLE_EGL
|
|
|
|
weston_SOURCES += \
|
|
|
|
gl-renderer.c \
|
|
|
|
vertex-clipping.c \
|
|
|
|
vertex-clipping.h
|
|
|
|
endif
|
|
|
|
|
|
|
|
git-version.h : .FORCE
|
|
|
|
$(AM_V_GEN)(echo "#define BUILD_ID \"$(shell git --git-dir=$(top_srcdir)/.git describe --always --dirty) $(shell git --git-dir=$(top_srcdir)/.git log -1 --format='%s (%ci)')\"" > $@-new; \
|
|
|
|
cmp -s $@ $@-new || cp $@-new $@; \
|
|
|
|
rm $@-new)
|
|
|
|
|
|
|
|
.FORCE :
|
|
|
|
|
|
|
|
if ENABLE_XWAYLAND
|
|
|
|
SUBDIRS = xwayland
|
|
|
|
endif
|
|
|
|
|
|
|
|
DIST_SUBDIRS = xwayland
|
|
|
|
|
|
|
|
|
|
|
|
if BUILD_WESTON_LAUNCH
|
|
|
|
weston_launch = weston-launch
|
|
|
|
weston_launch_SOURCES = weston-launch.c weston-launch.h
|
|
|
|
weston_launch_CFLAGS= $(GCC_CFLAGS)
|
|
|
|
weston_launch_CPPFLAGS = $(WESTON_LAUNCH_CFLAGS) $(SYSTEMD_LOGIN_CFLAGS) \
|
|
|
|
-DBINDIR='"$(bindir)"'
|
|
|
|
weston_launch_LDADD = $(WESTON_LAUNCH_LIBS) $(SYSTEMD_LOGIN_LIBS)
|
|
|
|
|
|
|
|
if ENABLE_SETUID_INSTALL
|
|
|
|
install-exec-hook:
|
|
|
|
chown root $(DESTDIR)$(bindir)/weston-launch
|
|
|
|
chmod u+s $(DESTDIR)$(bindir)/weston-launch
|
|
|
|
endif
|
|
|
|
|
|
|
|
endif # BUILD_WESTON_LAUNCH
|
|
|
|
|
|
|
|
pkgconfigdir = $(libdir)/pkgconfig
|
|
|
|
pkgconfig_DATA = weston.pc
|
|
|
|
|
|
|
|
westonincludedir = $(includedir)/weston
|
|
|
|
westoninclude_HEADERS = \
|
|
|
|
version.h \
|
|
|
|
compositor.h \
|
|
|
|
../shared/matrix.h \
|
|
|
|
../shared/config-parser.h \
|
|
|
|
../shared/zalloc.h
|
|
|
|
|
|
|
|
moduledir = $(libdir)/weston
|
|
|
|
module_LTLIBRARIES = \
|
|
|
|
$(desktop_shell) \
|
|
|
|
$(tablet_shell) \
|
|
|
|
$(cms_static) \
|
|
|
|
$(cms_colord) \
|
|
|
|
$(x11_backend) \
|
|
|
|
$(drm_backend) \
|
|
|
|
$(wayland_backend) \
|
|
|
|
$(headless_backend) \
|
|
|
|
$(fbdev_backend) \
|
|
|
|
$(rdp_backend)
|
|
|
|
|
|
|
|
noinst_LTLIBRARIES =
|
|
|
|
|
rpi: a backend for Raspberry Pi
Add a new backend for the Raspberry Pi.
This backend uses the DispmanX API to initialise the display, and create
an EGLSurface, so that GLESv2 rendering is shown on the "framebuffer".
No X server is involved. All compositing happens through GLESv2.
The created EGLSurface is specifically configured as buffer content
preserving, otherwise Weston wouuld show only the latest damage and
everything else was black. This may be sub-optimal, since we are not
alternating between two buffers, like the DRM backend is, and content
preserving may imply a fullscreen copy on each frame.
Page flips are not properly hooked up yet. The display update will
block, and we use a timer to call weston_output_finish_frame(), just
like the x11 backend does.
This backend handles the VT and tty just like the DRM backend does.
While VT switching works in theory, the display output seems to be
frozen while switched away from Weston. You can still switch back.
Seats and connectors cannot be explicitly specified, and multiple seats
are not expected.
Udev is used to find the input devices. Input devices are opened
directly, weston-launch is not supported at this time. You may need to
confirm that your pi user has access to input device nodes.
The Raspberry Pi backend is built by default. It can be build-tested
without the Raspberry Pi headers and libraries, because we provide stubs
in rpi-bcm-stubs.h, but such resulting binary is non-functional. If
using stubs, the backend is built but not installed.
VT and tty handling, and udev related code are pretty much copied from
the DRM backend, hence the copyrights. The rpi-bcm-stubs.h code is
copied from the headers on Raspberry Pi, including their copyright
notice, and modified.
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years ago
|
|
|
if INSTALL_RPI_COMPOSITOR
|
|
|
|
module_LTLIBRARIES += $(rpi_backend)
|
|
|
|
else
|
|
|
|
noinst_LTLIBRARIES += $(rpi_backend)
|
|
|
|
endif
|
|
|
|
|
|
|
|
if ENABLE_X11_COMPOSITOR
|
|
|
|
x11_backend = x11-backend.la
|
|
|
|
x11_backend_la_LDFLAGS = -module -avoid-version
|
|
|
|
x11_backend_la_LIBADD = $(COMPOSITOR_LIBS) $(X11_COMPOSITOR_LIBS) \
|
|
|
|
../shared/libshared-cairo.la
|
|
|
|
x11_backend_la_CFLAGS = \
|
|
|
|
$(COMPOSITOR_CFLAGS) \
|
|
|
|
$(PIXMAN_CFLAGS) \
|
|
|
|
$(CAIRO_CFLAGS) \
|
|
|
|
$(X11_COMPOSITOR_CFLAGS) \
|
|
|
|
$(GCC_CFLAGS)
|
|
|
|
x11_backend_la_SOURCES = compositor-x11.c
|
|
|
|
endif
|
|
|
|
|
|
|
|
if ENABLE_DRM_COMPOSITOR
|
|
|
|
drm_backend = drm-backend.la
|
|
|
|
drm_backend_la_LDFLAGS = -module -avoid-version
|
|
|
|
drm_backend_la_LIBADD = $(COMPOSITOR_LIBS) $(DRM_COMPOSITOR_LIBS) \
|
|
|
|
../shared/libshared.la -lrt
|
|
|
|
drm_backend_la_CFLAGS = \
|
|
|
|
$(COMPOSITOR_CFLAGS) \
|
|
|
|
$(DRM_COMPOSITOR_CFLAGS) \
|
|
|
|
$(GCC_CFLAGS)
|
|
|
|
drm_backend_la_SOURCES = \
|
|
|
|
compositor-drm.c \
|
|
|
|
udev-seat.c \
|
|
|
|
udev-seat.h \
|
|
|
|
evdev.c \
|
|
|
|
evdev.h \
|
|
|
|
evdev-touchpad.c \
|
|
|
|
launcher-util.c \
|
|
|
|
launcher-util.h \
|
|
|
|
libbacklight.c \
|
|
|
|
libbacklight.h
|
|
|
|
|
|
|
|
if ENABLE_VAAPI_RECORDER
|
|
|
|
drm_backend_la_SOURCES += vaapi-recorder.c vaapi-recorder.h
|
|
|
|
drm_backend_la_LIBADD += $(LIBVA_LIBS)
|
|
|
|
drm_backend_la_CFLAGS += $(LIBVA_CFLAGS)
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
if ENABLE_WAYLAND_COMPOSITOR
|
|
|
|
wayland_backend = wayland-backend.la
|
|
|
|
wayland_backend_la_LDFLAGS = -module -avoid-version
|
|
|
|
wayland_backend_la_LIBADD = $(COMPOSITOR_LIBS) $(WAYLAND_COMPOSITOR_LIBS) \
|
|
|
|
../shared/libshared-cairo.la
|
|
|
|
wayland_backend_la_CFLAGS = \
|
|
|
|
$(COMPOSITOR_CFLAGS) \
|
|
|
|
$(PIXMAN_CFLAGS) \
|
|
|
|
$(CAIRO_CFLAGS) \
|
|
|
|
$(WAYLAND_COMPOSITOR_CFLAGS) \
|
|
|
|
$(GCC_CFLAGS)
|
|
|
|
wayland_backend_la_SOURCES = compositor-wayland.c
|
|
|
|
endif
|
|
|
|
|
rpi: a backend for Raspberry Pi
Add a new backend for the Raspberry Pi.
This backend uses the DispmanX API to initialise the display, and create
an EGLSurface, so that GLESv2 rendering is shown on the "framebuffer".
No X server is involved. All compositing happens through GLESv2.
The created EGLSurface is specifically configured as buffer content
preserving, otherwise Weston wouuld show only the latest damage and
everything else was black. This may be sub-optimal, since we are not
alternating between two buffers, like the DRM backend is, and content
preserving may imply a fullscreen copy on each frame.
Page flips are not properly hooked up yet. The display update will
block, and we use a timer to call weston_output_finish_frame(), just
like the x11 backend does.
This backend handles the VT and tty just like the DRM backend does.
While VT switching works in theory, the display output seems to be
frozen while switched away from Weston. You can still switch back.
Seats and connectors cannot be explicitly specified, and multiple seats
are not expected.
Udev is used to find the input devices. Input devices are opened
directly, weston-launch is not supported at this time. You may need to
confirm that your pi user has access to input device nodes.
The Raspberry Pi backend is built by default. It can be build-tested
without the Raspberry Pi headers and libraries, because we provide stubs
in rpi-bcm-stubs.h, but such resulting binary is non-functional. If
using stubs, the backend is built but not installed.
VT and tty handling, and udev related code are pretty much copied from
the DRM backend, hence the copyrights. The rpi-bcm-stubs.h code is
copied from the headers on Raspberry Pi, including their copyright
notice, and modified.
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years ago
|
|
|
if ENABLE_RPI_COMPOSITOR
|
|
|
|
rpi_backend = rpi-backend.la
|
|
|
|
rpi_backend_la_LDFLAGS = -module -avoid-version
|
|
|
|
rpi_backend_la_LIBADD = $(COMPOSITOR_LIBS) \
|
|
|
|
$(RPI_COMPOSITOR_LIBS) \
|
|
|
|
$(RPI_BCM_HOST_LIBS) \
|
|
|
|
../shared/libshared.la
|
|
|
|
rpi_backend_la_CFLAGS = \
|
|
|
|
$(GCC_CFLAGS) \
|
|
|
|
$(COMPOSITOR_CFLAGS) \
|
|
|
|
$(RPI_COMPOSITOR_CFLAGS) \
|
|
|
|
$(RPI_BCM_HOST_CFLAGS)
|
|
|
|
rpi_backend_la_SOURCES = \
|
|
|
|
compositor-rpi.c \
|
rpi: add a Dispmanx renderer
Dispmanx is the prorietary display API on the Raspberry Pi, which
provides hardware compositing. Every visible surface is assigned a
Dispmanx element, and the hardware or firmware will do all compositing
onto screen. The API supports translation, scaling, flips, discrete
rotations in 90-degree steps, alpha channel on the surfaces, and
full-surface alpha on top.
Previously, Dispmanx capabilities were used via the weston_plane
mechanism, where surfaces were assigned to planes when possible, and
otherwise transparently falling back to GLESv2 compositing. Because we
have no way to use the same memory buffer as a GL texture and a Dispmanx
resource, we had to prepare for both. In the worst case, that means one GL
texture, and two (double-buffered case) Dispmanx resources, all the size
of a whole surface, for all surfaces. This was eating memory fast. To
make things worse (and less slow), the wl_shm buffer was kept around,
since it was copied to either a texture or a resource as needed. This
caused all clients to need two buffers. In a Dispmanx-only renderer, we
can drop the GL texture, and we can release wl_shm buffer immediately
after the first copy, so clients become effectively single-buffered. So
from the worst case of 5 buffers per surface, we go down to 3 or just
2 (single-buffered Dispmanx element, one wl_shm buffer in the client)
buffers per surface.
As this will replace the GL renderer on rpi, we cannot fall back to the
GLESv2 compositing anymore. We lose arbitrary surface rotation, but we
lose also the GL fallback, which caused glitches.
This patch depends on new RaspberryPi firmware. Older firmware may not
render ARGB surfaces correctly, solid color surfaces maybe cause a
performance hit, and the output may completely fail in case the firmware
does not fall back internal off-line compositing properly as needed.
This new rpi-renderer support surface translation and scaling, but not
rotation or transpose (not even in 90-deg steps). In theory, 90-deg step
surface rotation is possible to support. Output transformations are
supported, but flipped variants do not seem to work right.
As a detail, menus and other surfaces that are simply translated with
respect to another surface caused falling back to the GL renderer. The
rpi-renderer handles them directly.
This patch only adds the new renderer, but does not hook it up into use.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
12 years ago
|
|
|
rpi-renderer.c \
|
|
|
|
rpi-renderer.h \
|
rpi: a backend for Raspberry Pi
Add a new backend for the Raspberry Pi.
This backend uses the DispmanX API to initialise the display, and create
an EGLSurface, so that GLESv2 rendering is shown on the "framebuffer".
No X server is involved. All compositing happens through GLESv2.
The created EGLSurface is specifically configured as buffer content
preserving, otherwise Weston wouuld show only the latest damage and
everything else was black. This may be sub-optimal, since we are not
alternating between two buffers, like the DRM backend is, and content
preserving may imply a fullscreen copy on each frame.
Page flips are not properly hooked up yet. The display update will
block, and we use a timer to call weston_output_finish_frame(), just
like the x11 backend does.
This backend handles the VT and tty just like the DRM backend does.
While VT switching works in theory, the display output seems to be
frozen while switched away from Weston. You can still switch back.
Seats and connectors cannot be explicitly specified, and multiple seats
are not expected.
Udev is used to find the input devices. Input devices are opened
directly, weston-launch is not supported at this time. You may need to
confirm that your pi user has access to input device nodes.
The Raspberry Pi backend is built by default. It can be build-tested
without the Raspberry Pi headers and libraries, because we provide stubs
in rpi-bcm-stubs.h, but such resulting binary is non-functional. If
using stubs, the backend is built but not installed.
VT and tty handling, and udev related code are pretty much copied from
the DRM backend, hence the copyrights. The rpi-bcm-stubs.h code is
copied from the headers on Raspberry Pi, including their copyright
notice, and modified.
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years ago
|
|
|
rpi-bcm-stubs.h \
|
|
|
|
launcher-util.c \
|
|
|
|
launcher-util.h \
|
rpi: a backend for Raspberry Pi
Add a new backend for the Raspberry Pi.
This backend uses the DispmanX API to initialise the display, and create
an EGLSurface, so that GLESv2 rendering is shown on the "framebuffer".
No X server is involved. All compositing happens through GLESv2.
The created EGLSurface is specifically configured as buffer content
preserving, otherwise Weston wouuld show only the latest damage and
everything else was black. This may be sub-optimal, since we are not
alternating between two buffers, like the DRM backend is, and content
preserving may imply a fullscreen copy on each frame.
Page flips are not properly hooked up yet. The display update will
block, and we use a timer to call weston_output_finish_frame(), just
like the x11 backend does.
This backend handles the VT and tty just like the DRM backend does.
While VT switching works in theory, the display output seems to be
frozen while switched away from Weston. You can still switch back.
Seats and connectors cannot be explicitly specified, and multiple seats
are not expected.
Udev is used to find the input devices. Input devices are opened
directly, weston-launch is not supported at this time. You may need to
confirm that your pi user has access to input device nodes.
The Raspberry Pi backend is built by default. It can be build-tested
without the Raspberry Pi headers and libraries, because we provide stubs
in rpi-bcm-stubs.h, but such resulting binary is non-functional. If
using stubs, the backend is built but not installed.
VT and tty handling, and udev related code are pretty much copied from
the DRM backend, hence the copyrights. The rpi-bcm-stubs.h code is
copied from the headers on Raspberry Pi, including their copyright
notice, and modified.
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years ago
|
|
|
evdev.c \
|
|
|
|
evdev.h \
|
|
|
|
evdev-touchpad.c
|
|
|
|
endif
|
|
|
|
|
|
|
|
if ENABLE_HEADLESS_COMPOSITOR
|
|
|
|
headless_backend = headless-backend.la
|
|
|
|
headless_backend_la_LDFLAGS = -module -avoid-version
|
|
|
|
headless_backend_la_LIBADD = $(COMPOSITOR_LIBS) \
|
|
|
|
../shared/libshared.la
|
|
|
|
headless_backend_la_CFLAGS = \
|
|
|
|
$(COMPOSITOR_CFLAGS) \
|
|
|
|
$(GCC_CFLAGS)
|
|
|
|
headless_backend_la_SOURCES = compositor-headless.c
|
|
|
|
endif
|
|
|
|
|
|
|
|
if ENABLE_FBDEV_COMPOSITOR
|
|
|
|
fbdev_backend = fbdev-backend.la
|
|
|
|
fbdev_backend_la_LDFLAGS = -module -avoid-version
|
|
|
|
fbdev_backend_la_LIBADD = \
|
|
|
|
$(COMPOSITOR_LIBS) \
|
|
|
|
$(FBDEV_COMPOSITOR_LIBS) \
|
|
|
|
../shared/libshared.la
|
|
|
|
fbdev_backend_la_CFLAGS = \
|
|
|
|
$(COMPOSITOR_CFLAGS) \
|
|
|
|
$(FBDEV_COMPOSITOR_CFLAGS) \
|
|
|
|
$(PIXMAN_CFLAGS) \
|
|
|
|
$(GCC_CFLAGS)
|
|
|
|
fbdev_backend_la_SOURCES = \
|
|
|
|
compositor-fbdev.c \
|
|
|
|
udev-seat.c \
|
|
|
|
udev-seat.h \
|
|
|
|
evdev.c \
|
|
|
|
evdev.h \
|
|
|
|
evdev-touchpad.c \
|
|
|
|
launcher-util.c \
|
|
|
|
launcher-util.h
|
|
|
|
endif
|
|
|
|
|
|
|
|
if ENABLE_RDP_COMPOSITOR
|
|
|
|
rdp_backend = rdp-backend.la
|
|
|
|
rdp_backend_la_LDFLAGS = -module -avoid-version
|
|
|
|
rdp_backend_la_LIBADD = $(COMPOSITOR_LIBS) \
|
|
|
|
$(RDP_COMPOSITOR_LIBS) \
|
|
|
|
../shared/libshared.la
|
|
|
|
rdp_backend_la_CFLAGS = \
|
|
|
|
$(COMPOSITOR_CFLAGS) \
|
|
|
|
$(RDP_COMPOSITOR_CFLAGS) \
|
|
|
|
$(GCC_CFLAGS)
|
|
|
|
rdp_backend_la_SOURCES = compositor-rdp.c
|
|
|
|
endif
|
|
|
|
|
|
|
|
if ENABLE_DESKTOP_SHELL
|
|
|
|
desktop_shell = desktop-shell.la
|
|
|
|
desktop_shell_la_LDFLAGS = -module -avoid-version
|
|
|
|
desktop_shell_la_LIBADD = $(COMPOSITOR_LIBS) \
|
|
|
|
../shared/libshared.la
|
|
|
|
desktop_shell_la_CFLAGS = $(GCC_CFLAGS) $(COMPOSITOR_CFLAGS)
|
|
|
|
desktop_shell_la_SOURCES = \
|
|
|
|
shell.c \
|
|
|
|
desktop-shell-protocol.c \
|
|
|
|
desktop-shell-server-protocol.h
|
|
|
|
endif
|
|
|
|
|
|
|
|
if ENABLE_TABLET_SHELL
|
|
|
|
tablet_shell = tablet-shell.la
|
|
|
|
tablet_shell_la_LDFLAGS = -module -avoid-version
|
|
|
|
tablet_shell_la_LIBADD = $(COMPOSITOR_LIBS)
|
|
|
|
tablet_shell_la_CFLAGS = $(GCC_CFLAGS) $(COMPOSITOR_CFLAGS)
|
|
|
|
tablet_shell_la_SOURCES = \
|
|
|
|
tablet-shell.c \
|
|
|
|
tablet-shell-protocol.c \
|
|
|
|
tablet-shell-server-protocol.h
|
|
|
|
endif
|
|
|
|
|
|
|
|
if HAVE_LCMS
|
|
|
|
cms_static = cms-static.la
|
|
|
|
cms_static_la_LDFLAGS = -module -avoid-version
|
|
|
|
cms_static_la_LIBADD = $(COMPOSITOR_LIBS) $(LCMS_LIBS) ../shared/libshared.la
|
|
|
|
cms_static_la_CFLAGS = $(GCC_CFLAGS) $(COMPOSITOR_CFLAGS) $(LCMS_CFLAGS)
|
|
|
|
cms_static_la_SOURCES = \
|
|
|
|
cms-static.c \
|
|
|
|
cms-helper.c \
|
|
|
|
cms-helper.h
|
|
|
|
if ENABLE_COLORD
|
|
|
|
cms_colord = cms-colord.la
|
|
|
|
cms_colord_la_LDFLAGS = -module -avoid-version
|
|
|
|
cms_colord_la_LIBADD = $(COMPOSITOR_LIBS) $(COLORD_LIBS)
|
|
|
|
cms_colord_la_CFLAGS = $(GCC_CFLAGS) $(COMPOSITOR_CFLAGS) $(COLORD_CFLAGS)
|
|
|
|
cms_colord_la_SOURCES = \
|
|
|
|
cms-colord.c \
|
|
|
|
cms-helper.c \
|
|
|
|
cms-helper.h
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
noinst_PROGRAMS = spring-tool
|
|
|
|
|
|
|
|
spring_tool_CFLAGS = $(GCC_CFLAGS) $(COMPOSITOR_CFLAGS)
|
|
|
|
spring_tool_LDADD = $(COMPOSITOR_LIBS) -lm
|
|
|
|
spring_tool_SOURCES = \
|
|
|
|
spring-tool.c \
|
|
|
|
animation.c \
|
|
|
|
../shared/matrix.c \
|
|
|
|
../shared/matrix.h \
|
|
|
|
compositor.h
|
|
|
|
|
|
|
|
BUILT_SOURCES = \
|
|
|
|
screenshooter-server-protocol.h \
|
|
|
|
screenshooter-protocol.c \
|
|
|
|
text-cursor-position-server-protocol.h \
|
|
|
|
text-cursor-position-protocol.c \
|
|
|
|
tablet-shell-protocol.c \
|
|
|
|
tablet-shell-server-protocol.h \
|
|
|
|
desktop-shell-protocol.c \
|
|
|
|
desktop-shell-server-protocol.h \
|
|
|
|
text-protocol.c \
|
|
|
|
text-server-protocol.h \
|
|
|
|
input-method-protocol.c \
|
|
|
|
input-method-server-protocol.h \
|
|
|
|
workspaces-server-protocol.h \
|
|
|
|
workspaces-protocol.c \
|
protocol: add sub-surfaces
Add protocol for sub-surfaces, wl_subcompositor as the global interface,
and wl_subsurface as the per-surface interface extension.
This patch is meant to be reverted, once sub-surfaces are moved into
Wayland core.
Changes in v2:
- Rewrite wl_subcompositor.get_subsurface description, and move mapping
and commit details into wl_subsurface description. Check the wording
in wl_subsurface.set_position description.
- Add wl_subsurface.set_commit_mode request, and document it, with the
commit_mode enum. Add bad_value error code for wl_subsurface.
- Moved the protocol into Weston repository so we can land it upstream
sooner for public exposure. It is to be moved into Wayland core later.
- Add destroy requests to both wl_subcompositor and wl_subsurface, and
document them. Experience has showed, that interfaces should always
have a destructor unless there is a good and future-proof reason to not
have it.
Changes in v3:
- Specify, that wl_subsurface will become inert, if the corresponding
wl_surface is destroyed, instead of requiring a certain destruction
order.
- Replaced wl_subsurface.set_commit_mode with wl_subsurface.set_sync and
wl_subsurface.set_desync. Parent-cached commit mode is now called
synchronized, and independent mode is desynchronized. Removed
commit_mode enum, and bad_value error.
- Added support for nested sub-surfaces.
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years ago
|
|
|
subsurface-server-protocol.h \
|
|
|
|
subsurface-protocol.c \
|
|
|
|
git-version.h
|
|
|
|
|
|
|
|
CLEANFILES = $(BUILT_SOURCES)
|
|
|
|
|
|
|
|
wayland_protocoldir = $(top_srcdir)/protocol
|
|
|
|
include $(top_srcdir)/wayland-scanner.mk
|