Code Review
/
staging
/
windowmanager.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
wayland: do not special-case ~display for DEBUG_OUTPUT
[staging/windowmanager.git]
/
src
/
main.cpp
diff --git
a/src/main.cpp
b/src/main.cpp
index
cc94190
..
7734d97
100644
(file)
--- a/
src/main.cpp
+++ b/
src/main.cpp
@@
-3,13
+3,6
@@
#include <unistd.h>
#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <memory>
-#include <string>
-#include <vector>
-
#include <sys/poll.h>
struct conn {
#include <sys/poll.h>
struct conn {
@@
-24,46
+17,48
@@
namespace {
// | (__| | | | __/ (__| < | __/\ V / __/ | | | |_\__ \ | | |
// \___|_| |_|\___|\___|_|\_\___\___| \_/ \___|_| |_|\__|___/ | | |
// |_____| \_\/_/
// | (__| | | | __/ (__| < | __/\ V / __/ | | | |_\__ \ | | |
// \___|_| |_|\___|\___|_|\_\___\___| \_/ \___|_| |_|\__|___/ | | |
// |_____| \_\/_/
-int check_events(struct wl::display
*d, struct conn *
c, int fd) {
- struct pollfd pfd[2] = {{.fd = d
->
get_fd(), .events = POLLIN, .revents = 0},
+int check_events(struct wl::display
&d, struct conn &
c, int fd) {
+ struct pollfd pfd[2] = {{.fd = d
.
get_fd(), .events = POLLIN, .revents = 0},
{.fd = fd, .events = POLLIN, .revents = 0}};
{.fd = fd, .events = POLLIN, .revents = 0}};
- d
->
flush();
+ d
.
flush();
if (poll(pfd, fd != -1 ? 2 : 1, -1) != -1 && errno != EINTR) {
int ret = 0;
if (poll(pfd, fd != -1 ? 2 : 1, -1) != -1 && errno != EINTR) {
int ret = 0;
- if (
pfd[0].revents & POLLIN
) {
- ret = d
->
dispatch();
+ if (
(pfd[0].revents & POLLIN) != 0
) {
+ ret = d
.
dispatch();
}
}
- if (ret == -1)
+ if (ret == -1)
{
return ret;
return ret;
+ }
- if (fd != -1 && (
pfd[1].revents & POLLIN
)) {
+ if (fd != -1 && (
(pfd[1].revents & POLLIN) != 0
)) {
char buf[256];
// read all there is ...
char buf[256];
// read all there is ...
- while (read(pfd[1].fd, buf, sizeof(buf)) == sizeof(buf))
+ while (read(pfd[1].fd, buf, sizeof(buf)) == sizeof(buf))
{
;
;
+ }
// Display current status
// Display current status
- if (!c
->
c->surfaces.empty()) {
+ if (!c
.
c->surfaces.empty()) {
puts("Surfaces:");
puts("Surfaces:");
- for (auto const &i : c
->
c->surfaces) {
-
struct genivi::rect
const &r = i.second->dst_rect;
-
struct genivi::size
const &s = i.second->size;
+ for (auto const &i : c
.
c->surfaces) {
+
auto
const &r = i.second->dst_rect;
+
auto
const &s = i.second->size;
printf("%d [%ux%u] (%ux%u@%dx%d), ", i.first, s.w, s.h, r.w, r.h,
r.x, r.y);
}
puts("\b\b ");
}
printf("%d [%ux%u] (%ux%u@%dx%d), ", i.first, s.w, s.h, r.w, r.h,
r.x, r.y);
}
puts("\b\b ");
}
- if (!c
->
c->layers.empty()) {
+ if (!c
.
c->layers.empty()) {
puts("Layers:");
puts("Layers:");
- for (auto const &i : c
->
c->layers) {
-
struct genivi::rect
const &r = i.second->dst_rect;
-
struct genivi::size
const &s = i.second->size;
+ for (auto const &i : c
.
c->layers) {
+
auto
const &r = i.second->dst_rect;
+
auto
const &s = i.second->size;
printf("%d [%ux%u] (%ux%u@%dx%d), ", i.first, s.w, s.h, r.w, r.h,
r.x, r.y);
}
printf("%d [%ux%u] (%ux%u@%dx%d), ", i.first, s.w, s.h, r.w, r.h,
r.x, r.y);
}
@@
-96,8
+91,8
@@
void init_layout(struct conn &c) {
s->clear();
// Setup our dummy scene...
s->clear();
// Setup our dummy scene...
- c.c->layer_create(100, 0, 0); // bottom layer, anything else
- c.c->layer_create(1000, 0, 0); // top layer, mandelbrot
+ c.c->layer_create(100, 0, 0);
// bottom layer, anything else
+ c.c->layer_create(1000, 0, 0);
// top layer, mandelbrot
auto &l100 = c.c->layers[100];
auto &l1k = c.c->layers[1000];
auto &l100 = c.c->layers[100];
auto &l1k = c.c->layers[1000];
@@
-105,6
+100,8
@@
void init_layout(struct conn &c) {
// Set layers fullscreen
l100->set_destination_rectangle(0, 0, o->width, o->height);
l1k->set_destination_rectangle(0, 0, o->width, o->height);
// Set layers fullscreen
l100->set_destination_rectangle(0, 0, o->width, o->height);
l1k->set_destination_rectangle(0, 0, o->width, o->height);
+ l100->set_visibility(1);
+ l1k->set_visibility(1);
// Add layers to screen
s->set_render_order({100, 1000});
// Add layers to screen
s->set_render_order({100, 1000});
@@
-112,7
+109,7
@@
void init_layout(struct conn &c) {
c.c->commit_changes();
// Note: this does not flush the display!
}
c.c->commit_changes();
// Note: this does not flush the display!
}
-}
+}
// namespace
// _ ____
// _ __ ___ __ _(_)_ __ / /\ \
// _ ____
// _ __ ___ __ _(_)_ __ / /\ \
@@
-120,49
+117,53
@@
void init_layout(struct conn &c) {
// | | | | | | (_| | | | | | | | |
// |_| |_| |_|\__,_|_|_| |_| | | |
// \_\/_/
// | | | | | | (_| | | | | | | | |
// |_| |_| |_|\__,_|_|_| |_| | | |
// \_\/_/
-int main(int
argc, char **argv
) {
+int main(int
/*argc*/, char ** /*argv*/
) {
lognotice("WinMan ver. %s", WINMAN_VERSION_STRING);
lognotice("WinMan ver. %s", WINMAN_VERSION_STRING);
- if (
!getenv("XDG_RUNTIME_DIR"))
+ if (
getenv("XDG_RUNTIME_DIR") == nullptr) {
fatal("Environment variable XDG_RUNTIME_DIR not set");
fatal("Environment variable XDG_RUNTIME_DIR not set");
+ }
-
auto d = std::make_unique<wl::display>()
;
- if (!d
->ok())
+
struct wl::display d {}
;
+ if (!d
.ok()) {
fatal("Could not connect to compositor");
fatal("Could not connect to compositor");
+ }
- struct conn c{};
+ struct conn c
{};
- d
->r->
add_global_handler(
+ d
.r.
add_global_handler(
"ivi_controller", [&c](wl_registry *r, uint32_t name, uint32_t v) {
c.c = std::make_unique<genivi::controller>(r, name, v);
});
"ivi_controller", [&c](wl_registry *r, uint32_t name, uint32_t v) {
c.c = std::make_unique<genivi::controller>(r, name, v);
});
- d
->r->
add_global_handler(
+ d
.r.
add_global_handler(
"wl_output", [&c](wl_registry *r, uint32_t name, uint32_t v) {
c.outputs.emplace_back(std::make_unique<wl::output>(r, name, v));
});
// First level objects
"wl_output", [&c](wl_registry *r, uint32_t name, uint32_t v) {
c.outputs.emplace_back(std::make_unique<wl::output>(r, name, v));
});
// First level objects
- d
->
roundtrip();
+ d
.
roundtrip();
// Second level objects
// Second level objects
- d
->
roundtrip();
+ d
.
roundtrip();
// Third level objects
// Third level objects
- d
->
roundtrip();
+ d
.
roundtrip();
- if (!c.c)
+ if (!c.c)
{
fatal("ivi_controller global not available");
fatal("ivi_controller global not available");
+ }
- if (c.outputs.empty())
+ if (c.outputs.empty())
{
fatal("no output was set up!");
fatal("no output was set up!");
+ }
init_layout(c);
init_layout(c);
- while (check_events(d
.get(), &
c, STDIN_FILENO) != -1) {
+ while (check_events(d
,
c, STDIN_FILENO) != -1) {
c.c->execute_pending();
c.c->execute_pending();
- d
->
flush();
+ d
.
flush();
}
}
- d
->
roundtrip();
+ d
.
roundtrip();
return 0;
}
return 0;
}