X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fapp.cpp;h=58a62ee2bd156b9568641d5f3b65ddbde59f2483;hb=92c8b647e4e164479c10a84021564533e73cbd69;hp=96394c336ebbdd29abc7dbe10556cc525ecdac51;hpb=626b0fc7a92da537f4914afcd3ff390f855785c4;p=staging%2Fwindowmanager.git diff --git a/src/app.cpp b/src/app.cpp index 96394c3..58a62ee 100644 --- a/src/app.cpp +++ b/src/app.cpp @@ -18,6 +18,8 @@ #include #include +#include +#include namespace wm { @@ -192,12 +194,13 @@ int App::init_layout() { // Quick and dirty setup of layers // XXX: This likely needs to be sorted by order (note, we don't (yet?) // do any zorder arrangement). - for (auto const &i: this->surface2layer.mapping) { + for (auto const &i : this->surface2layer.mapping) { c->layer_create(i.layer_id, o->width, o->height); auto &l = layers[i.layer_id]; l->set_destination_rectangle(0, 0, o->width, o->height); l->set_visibility(1); - logdebug("Setting up layer %s (%d) for surfaces %d-%d", i.name.c_str(), i.layer_id, i.id_min, i.id_max); + logdebug("Setting up layer %s (%d) for surfaces %d-%d", i.name.c_str(), + i.layer_id, i.id_min, i.id_max); } // Add layers to screen (XXX: are they sorted correctly?) @@ -210,6 +213,12 @@ int App::init_layout() { return 0; } +// _ _ _____ _ +// _ __ _ __ _____ _(_) ___ __| | | ____|_ _____ _ __ | |_ ___ +// | '_ \| '__/ _ \ \/ / |/ _ \/ _` | | _| \ \ / / _ \ '_ \| __/ __| +// | |_) | | | (_) > <| | __/ (_| | | |___ \ V / __/ | | | |_\__ \ +// | .__/|_| \___/_/\_\_|\___|\__,_| |_____| \_/ \___|_| |_|\__|___/ +// |_| void App::surface_created(uint32_t surface_id) { DB("surface_id is " << surface_id); int layer_id = @@ -219,13 +228,26 @@ void App::surface_created(uint32_t surface_id) { surface_id); } else { this->controller->add_task( - "fullscreen surface", [layer_id, surface_id](struct genivi::controller *c) { + "fullscreen surface", + [layer_id, surface_id](struct genivi::controller *c) { auto &s = c->surfaces[surface_id]; - s->set_destination_rectangle(0, 0, c->output_size.w, - c->output_size.h); + // s->set_destination_rectangle(0, 0, c->output_size.w, c->output_size.h); + // s->set_source_rectangle(0, 100, c->output_size.w, c->output_size.h - 200); + if (layer_id != 1000) { + // s->set_source_rectangle(0, 0, c->output_size.w, c->output_size.h - 200); + s->set_configuration(c->output_size.w, c->output_size.h - 200); + s->set_destination_rectangle(0, 100, c->output_size.w, + c->output_size.h - 200); + } else { + // s->set_source_rectangle(0, 0, c->output_size.w, c->output_size.h); + s->set_configuration(c->output_size.w, c->output_size.h); + s->set_destination_rectangle(0, 0, c->output_size.w, + c->output_size.h); + } s->set_visibility(1); c->layers[layer_id]->add_surface(s.get()); - logdebug("Surface %u now fullscreen on layer %u", surface_id, layer_id); + logdebug("Surface %u now on layer %u", surface_id, + layer_id); }); } } @@ -273,6 +295,12 @@ binding_api::result_type binding_api::debug_status() { return Ok(jr); } +binding_api::result_type binding_api::debug_terminate() { + logdebug("%s", __func__); + raise(SIGKILL); // XXX afb-daemon kills it's pgroup using TERM, which doesn't play well with perf + return Ok(json_object_new_object()); +} + // _ _ _ _ _ // ___ ___ _ __ | |_ _ __ ___ | | | ___ _ __ | |__ ___ ___ | | _____ // / __/ _ \| '_ \| __| '__/ _ \| | |/ _ \ '__|| '_ \ / _ \ / _ \| |/ / __|