aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcus Fritzsch <marcus_fritzsch@mentor.com>2017-08-01 16:05:47 +0200
committerMarcus Fritzsch <marcus_fritzsch@mentor.com>2017-08-08 17:24:00 +0200
commit659a54b2cd58fb7cc4c9935e89a8b928957e88eb (patch)
tree8ea751c6c412cf0c16a8d2c4a486dc33380604e6
parentd16426164142cdddeaf16cb18a6ac5f191c8e0e4 (diff)
app: some comments and erorrs regarding IDs configuration
Signed-off-by: Marcus Fritzsch <marcus_fritzsch@mentor.com>
-rw-r--r--src/app.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/app.cpp b/src/app.cpp
index 461ac35..1c9b3c2 100644
--- a/src/app.cpp
+++ b/src/app.cpp
@@ -144,6 +144,11 @@ int App::init() {
return -1;
}
+ if (this->surface2layer.mapping.empty()) {
+ logerror("No surface -> layer mapping loaded");
+ return -1;
+ }
+
this->display->add_global_handler(
"wl_output", [this](wl_registry *r, uint32_t name, uint32_t v) {
this->outputs.emplace_back(std::make_unique<wl::output>(r, name, v));
@@ -269,6 +274,8 @@ void App::surface_created(uint32_t surface_id) {
int w = rect.w;
int h = rect.h;
+ // less-than-0 values refer to MAX + 1 - $VALUE
+ // e.g. MAX is either screen width or height
if (w < 0) {
w = c->output_size.w + 1 + w;
}
@@ -277,8 +284,11 @@ void App::surface_created(uint32_t surface_id) {
}
logdebug("Computed rect={ %d, %d, %d, %d }", x, y, w, h);
+ // configure surface to wxh dimensions
s->set_configuration(w, h);
+ // set source rect to "entire surface"
s->set_source_rectangle(0, 0, w, h);
+ // set destination to the display rectangle
s->set_destination_rectangle(x, y, w, h);
s->set_visibility(1);