From bfcabe48ef3fc7a0388de007504fc232f826fb84 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Thu, 12 Nov 2015 19:04:01 -0500 Subject: Start fleshing out wayland client implementation This introduces a basic shared framework for making wayland clients within sway itself. --- swaybg/CMakeLists.txt | 10 ++++++++-- swaybg/main.c | 23 ++++++++++++++++++++++- 2 files changed, 30 insertions(+), 3 deletions(-) (limited to 'swaybg') diff --git a/swaybg/CMakeLists.txt b/swaybg/CMakeLists.txt index 89d8afde..9351441a 100644 --- a/swaybg/CMakeLists.txt +++ b/swaybg/CMakeLists.txt @@ -9,14 +9,20 @@ WAYLAND_ADD_PROTOCOL_CLIENT(proto-xdg-shell "xdg-shell.xml" xdg-shell) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../bin/") include_directories( - ${CMAKE_CURRENT_SOURCE_DIR}/include + ${CMAKE_CURRENT_SOURCE_DIR}/../include ${WAYLAND_CLIENT_INCLUDE_DIR} ${CAIRO_INCLUDE_DIRS} ${PANGO_INCLUDE_DIRS} ) +FILE(GLOB sources ${PROJECT_SOURCE_DIR}/*.c) +FILE(GLOB wl_sources ${PROJECT_SOURCE_DIR}/../wayland/*.c) +FILE(GLOB common ${PROJECT_SOURCE_DIR}/../common/*.c) + add_executable(swaybg - main.c + ${sources} + ${wl_sources} + ${common} ) TARGET_LINK_LIBRARIES(swaybg ${WAYLAND_CLIENT_LIBRARIES} ${CAIRO_LIBRARIES} ${PANGO_LIBRARIES}) diff --git a/swaybg/main.c b/swaybg/main.c index 4a8ef522..1b4af550 100644 --- a/swaybg/main.c +++ b/swaybg/main.c @@ -1,6 +1,27 @@ #include +#include +#include +#include "client.h" +#include "log.h" + +struct client_state *state; + +void sway_terminate(void) { + client_teardown(state); + exit(1); +} int main(int argc, char **argv) { - printf("Hello world"); + init_log(L_INFO); + state = client_setup(); + + do { + if (!client_prerender(state)) continue; + cairo_set_source_rgb(state->cairo, 255, 0, 0); + cairo_rectangle(state->cairo, 0, 0, 100, 100); + cairo_fill(state->cairo); + } while (client_render(state)); + + client_teardown(state); return 0; } -- cgit v1.2.3