|
|
|
bin_PROGRAMS = \
|
|
|
|
weston-info \
|
|
|
|
$(terminal)
|
|
|
|
|
|
|
|
noinst_PROGRAMS = \
|
|
|
|
$(clients_programs) \
|
|
|
|
$(pango_programs) \
|
|
|
|
$(poppler_programs) \
|
|
|
|
$(simple_clients_programs) \
|
|
|
|
$(simple_egl_clients_programs)
|
|
|
|
|
|
|
|
libexec_PROGRAMS = \
|
|
|
|
$(desktop_shell) \
|
|
|
|
$(tablet_shell) \
|
|
|
|
$(screenshooter) \
|
|
|
|
$(screensaver) \
|
|
|
|
$(keyboard) \
|
|
|
|
weston-simple-im
|
|
|
|
|
|
|
|
AM_CFLAGS = $(GCC_CFLAGS)
|
|
|
|
AM_CPPFLAGS = \
|
|
|
|
-DDATADIR='"$(datadir)"' \
|
|
|
|
-DBINDIR='"$(bindir)"' \
|
|
|
|
$(CLIENT_CFLAGS) $(CAIRO_EGL_CFLAGS)
|
|
|
|
|
|
|
|
if BUILD_SIMPLE_CLIENTS
|
|
|
|
simple_clients_programs = \
|
|
|
|
simple-shm \
|
|
|
|
simple-touch
|
|
|
|
|
|
|
|
simple_shm_SOURCES = simple-shm.c \
|
|
|
|
../shared/os-compatibility.c \
|
|
|
|
../shared/os-compatibility.h
|
|
|
|
simple_shm_CPPFLAGS = $(SIMPLE_CLIENT_CFLAGS)
|
|
|
|
simple_shm_LDADD = $(SIMPLE_CLIENT_LIBS)
|
|
|
|
|
|
|
|
simple_touch_SOURCES = simple-touch.c \
|
|
|
|
../shared/os-compatibility.c \
|
|
|
|
../shared/os-compatibility.h
|
|
|
|
simple_touch_CPPFLAGS = $(SIMPLE_CLIENT_CFLAGS)
|
|
|
|
simple_touch_LDADD = $(SIMPLE_CLIENT_LIBS)
|
|
|
|
endif
|
|
|
|
|
|
|
|
if BUILD_SIMPLE_EGL_CLIENTS
|
|
|
|
simple_egl_clients_programs = \
|
|
|
|
simple-egl
|
|
|
|
|
|
|
|
simple_egl_SOURCES = simple-egl.c
|
|
|
|
simple_egl_CPPFLAGS = $(SIMPLE_EGL_CLIENT_CFLAGS)
|
|
|
|
simple_egl_LDADD = $(SIMPLE_EGL_CLIENT_LIBS) -lm
|
|
|
|
endif
|
|
|
|
|
|
|
|
if BUILD_CLIENTS
|
|
|
|
terminal = weston-terminal
|
|
|
|
|
|
|
|
clients_programs = \
|
|
|
|
flower \
|
|
|
|
image \
|
|
|
|
cliptest \
|
|
|
|
dnd \
|
|
|
|
smoke \
|
|
|
|
resizor \
|
|
|
|
eventdemo \
|
|
|
|
clickdot \
|
|
|
|
transformed \
|
|
|
|
fullscreen \
|
|
|
|
calibrator \
|
clients: add subsurfaces demo
Add a demo program with:
- a main surface (green)
- a Cairo-image sub-surface (red)
- a raw GLESv2 widget (triangle)
Sub-surface input region is set empty to avoid problems in toytoolkit.
If Cairo links to libGL, then we will end up with also libGLESv2 linked
to subsurfaces program, and both libs getting really used, which leads
to disaster.
Do not build subsurfaces demo, if Cairo links to libGL and cairo-egl is
usable.
The GL rendering loop is not tied to the toytoolkit or the widget, but
runs directly from its own frame callback. Therefore it runs
independent of the rest of the application. This also relies on one of
two things:
- eglSwapInterval(0) is implemented, and therefore eglSwapBuffers never
blocks indefinitely, or
- toytoolkit has a workaround, that guarantees that eglSwapBuffers will
return soon, when we force a repaint on resize.
Otherwise the demo will deadlock.
The code is separated into three sections:
1. The library component, using only EGL, GLESv2, and libwayland-client
APIs, and not aware of any toolkit details of the parent application.
This runs independently until the parent application tells otherwise.
2. The glue code: a toytoolkit application widget, who has its own
rendering machinery.
3. The application written in toytoolkit.
This patch also adds new toytoolkit interfaces:
- widget_get_wl_surface()
- widget_get_last_time()
- widget_input_region_add()
Toytoolkit applications have not had a possibility to change the input
region. The frame widget (decorations) set the input region on its own
when used, otherwise the default input region of everything has been
used. If a window does not have a frame widget, it can now use
widget_input_region_add() to set a custom input region.
These are not window methods, because a widget may lie on a different
wl_surface (sub-surface) than the window.
Changes in v3:
- replace set_commit_mode with set_sync and set_desync
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years ago
|
|
|
$(subsurfaces) \
|
|
|
|
$(full_gl_client_programs)
|
|
|
|
|
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
|
|
|
desktop_shell = weston-desktop-shell
|
|
|
|
|
|
|
|
if ENABLE_TABLET_SHELL
|
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
|
|
|
tablet_shell = weston-tablet-shell
|
|
|
|
endif
|
|
|
|
|
|
|
|
screenshooter = weston-screenshooter
|
|
|
|
|
|
|
|
noinst_LTLIBRARIES = libtoytoolkit.la
|
|
|
|
|
|
|
|
libtoytoolkit_la_SOURCES = \
|
|
|
|
window.c \
|
|
|
|
window.h \
|
|
|
|
text-cursor-position-protocol.c \
|
|
|
|
text-cursor-position-client-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-client-protocol.h \
|
|
|
|
workspaces-protocol.c \
|
|
|
|
workspaces-client-protocol.h
|
|
|
|
|
|
|
|
libtoytoolkit_la_LIBADD = \
|
|
|
|
$(CLIENT_LIBS) \
|
|
|
|
$(CAIRO_EGL_LIBS) \
|
|
|
|
../shared/libshared-cairo.la -lrt -lm
|
|
|
|
|
|
|
|
flower_SOURCES = flower.c
|
|
|
|
flower_LDADD = libtoytoolkit.la
|
|
|
|
|
|
|
|
weston_screenshooter_SOURCES = \
|
|
|
|
screenshot.c \
|
|
|
|
screenshooter-protocol.c \
|
|
|
|
screenshooter-client-protocol.h
|
|
|
|
weston_screenshooter_LDADD = libtoytoolkit.la
|
|
|
|
|
|
|
|
weston_terminal_SOURCES = terminal.c
|
|
|
|
weston_terminal_LDADD = libtoytoolkit.la -lutil
|
|
|
|
|
|
|
|
image_SOURCES = image.c
|
|
|
|
image_LDADD = libtoytoolkit.la
|
|
|
|
|
|
|
|
cliptest_SOURCES = cliptest.c
|
|
|
|
cliptest_CPPFLAGS = $(AM_CPPFLAGS) $(PIXMAN_CFLAGS)
|
|
|
|
cliptest_LDADD = libtoytoolkit.la $(PIXMAN_LIBS)
|
|
|
|
|
|
|
|
dnd_SOURCES = dnd.c
|
|
|
|
dnd_LDADD = libtoytoolkit.la
|
|
|
|
|
|
|
|
smoke_SOURCES = smoke.c
|
|
|
|
smoke_LDADD = libtoytoolkit.la
|
|
|
|
|
|
|
|
resizor_SOURCES = resizor.c
|
|
|
|
resizor_LDADD = libtoytoolkit.la
|
|
|
|
|
|
|
|
eventdemo_SOURCES = eventdemo.c
|
|
|
|
eventdemo_LDADD = libtoytoolkit.la
|
|
|
|
|
|
|
|
clickdot_SOURCES = clickdot.c
|
|
|
|
clickdot_LDADD = libtoytoolkit.la
|
|
|
|
|
|
|
|
transformed_SOURCES = transformed.c
|
|
|
|
transformed_LDADD = libtoytoolkit.la
|
|
|
|
|
|
|
|
fullscreen_SOURCES = fullscreen.c
|
|
|
|
fullscreen_LDADD = libtoytoolkit.la
|
|
|
|
|
|
|
|
calibrator_SOURCES = calibrator.c ../shared/matrix.c ../shared/matrix.h
|
|
|
|
calibrator_LDADD = libtoytoolkit.la
|
|
|
|
|
clients: add subsurfaces demo
Add a demo program with:
- a main surface (green)
- a Cairo-image sub-surface (red)
- a raw GLESv2 widget (triangle)
Sub-surface input region is set empty to avoid problems in toytoolkit.
If Cairo links to libGL, then we will end up with also libGLESv2 linked
to subsurfaces program, and both libs getting really used, which leads
to disaster.
Do not build subsurfaces demo, if Cairo links to libGL and cairo-egl is
usable.
The GL rendering loop is not tied to the toytoolkit or the widget, but
runs directly from its own frame callback. Therefore it runs
independent of the rest of the application. This also relies on one of
two things:
- eglSwapInterval(0) is implemented, and therefore eglSwapBuffers never
blocks indefinitely, or
- toytoolkit has a workaround, that guarantees that eglSwapBuffers will
return soon, when we force a repaint on resize.
Otherwise the demo will deadlock.
The code is separated into three sections:
1. The library component, using only EGL, GLESv2, and libwayland-client
APIs, and not aware of any toolkit details of the parent application.
This runs independently until the parent application tells otherwise.
2. The glue code: a toytoolkit application widget, who has its own
rendering machinery.
3. The application written in toytoolkit.
This patch also adds new toytoolkit interfaces:
- widget_get_wl_surface()
- widget_get_last_time()
- widget_input_region_add()
Toytoolkit applications have not had a possibility to change the input
region. The frame widget (decorations) set the input region on its own
when used, otherwise the default input region of everything has been
used. If a window does not have a frame widget, it can now use
widget_input_region_add() to set a custom input region.
These are not window methods, because a widget may lie on a different
wl_surface (sub-surface) than the window.
Changes in v3:
- replace set_commit_mode with set_sync and set_desync
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
12 years ago
|
|
|
if BUILD_SUBSURFACES_CLIENT
|
|
|
|
subsurfaces = subsurfaces
|
|
|
|
subsurfaces_SOURCES = subsurfaces.c
|
|
|
|
subsurfaces_CPPFLAGS = $(AM_CPPFLAGS) $(SIMPLE_EGL_CLIENT_CFLAGS)
|
|
|
|
subsurfaces_LDADD = libtoytoolkit.la $(SIMPLE_EGL_CLIENT_LIBS) -lm
|
|
|
|
endif
|
|
|
|
|
|
|
|
if HAVE_PANGO
|
|
|
|
pango_programs = editor
|
|
|
|
editor_SOURCES = \
|
|
|
|
editor.c \
|
|
|
|
text-protocol.c \
|
|
|
|
text-client-protocol.h
|
|
|
|
editor_LDADD = libtoytoolkit.la $(PANGO_LIBS)
|
|
|
|
editor_CPPFLAGS = $(AM_CPPFLAGS) $(PANGO_CFLAGS)
|
|
|
|
endif
|
|
|
|
|
|
|
|
keyboard = weston-keyboard
|
|
|
|
weston_keyboard_SOURCES = \
|
|
|
|
keyboard.c \
|
|
|
|
desktop-shell-client-protocol.h \
|
|
|
|
desktop-shell-protocol.c \
|
|
|
|
input-method-protocol.c \
|
|
|
|
input-method-client-protocol.h
|
|
|
|
weston_keyboard_LDADD = libtoytoolkit.la
|
|
|
|
|
|
|
|
weston_simple_im_SOURCES = \
|
|
|
|
weston-simple-im.c \
|
|
|
|
input-method-protocol.c \
|
|
|
|
input-method-client-protocol.h
|
|
|
|
weston_simple_im_LDADD = $(CLIENT_LIBS)
|
|
|
|
|
|
|
|
weston_info_SOURCES = \
|
|
|
|
weston-info.c \
|
|
|
|
../shared/os-compatibility.c \
|
|
|
|
../shared/os-compatibility.h
|
|
|
|
weston_info_LDADD = $(WESTON_INFO_LIBS)
|
|
|
|
|
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_desktop_shell_SOURCES = \
|
|
|
|
desktop-shell.c \
|
|
|
|
desktop-shell-client-protocol.h \
|
|
|
|
desktop-shell-protocol.c
|
|
|
|
weston_desktop_shell_LDADD = libtoytoolkit.la
|
|
|
|
|
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_tablet_shell_SOURCES = \
|
|
|
|
tablet-shell.c \
|
|
|
|
tablet-shell-client-protocol.h \
|
|
|
|
tablet-shell-protocol.c
|
|
|
|
weston_tablet_shell_LDADD = libtoytoolkit.la
|
|
|
|
|
|
|
|
BUILT_SOURCES = \
|
|
|
|
screenshooter-client-protocol.h \
|
|
|
|
screenshooter-protocol.c \
|
|
|
|
text-cursor-position-client-protocol.h \
|
|
|
|
text-cursor-position-protocol.c \
|
|
|
|
text-protocol.c \
|
|
|
|
text-client-protocol.h \
|
|
|
|
input-method-protocol.c \
|
|
|
|
input-method-client-protocol.h \
|
|
|
|
desktop-shell-client-protocol.h \
|
|
|
|
desktop-shell-protocol.c \
|
|
|
|
tablet-shell-client-protocol.h \
|
|
|
|
tablet-shell-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-client-protocol.h \
|
|
|
|
subsurface-protocol.c \
|
|
|
|
workspaces-client-protocol.h \
|
|
|
|
workspaces-protocol.c
|
|
|
|
|
|
|
|
CLEANFILES = $(BUILT_SOURCES)
|
|
|
|
endif
|
|
|
|
|
|
|
|
if BUILD_FULL_GL_CLIENTS
|
|
|
|
full_gl_client_programs = gears
|
|
|
|
|
|
|
|
gears_SOURCES = gears.c
|
|
|
|
gears_LDADD = libtoytoolkit.la
|
|
|
|
|
|
|
|
if HAVE_GLU
|
|
|
|
screensaver = weston-screensaver
|
|
|
|
weston_screensaver_SOURCES = \
|
|
|
|
wscreensaver.c \
|
|
|
|
wscreensaver.h \
|
|
|
|
desktop-shell-client-protocol.h \
|
|
|
|
desktop-shell-protocol.c \
|
|
|
|
wscreensaver-glue.c \
|
|
|
|
wscreensaver-glue.h \
|
|
|
|
glmatrix.c \
|
|
|
|
matrix3.xpm
|
|
|
|
weston_screensaver_LDADD = libtoytoolkit.la $(GLU_LIBS)
|
|
|
|
weston_screensaver_CFLAGS = $(GLU_CFLAGS)
|
|
|
|
endif
|
|
|
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
@wayland_scanner_rules@
|
|
|
|
|
|
|
|
if HAVE_POPPLER
|
|
|
|
poppler_programs = view
|
|
|
|
view_SOURCES = view.c
|
|
|
|
view_LDADD = libtoytoolkit.la $(POPPLER_LIBS)
|
|
|
|
view_CPPFLAGS = $(AM_CPPFLAGS) $(POPPLER_CFLAGS)
|
|
|
|
endif
|