Added viDestroyManagedLayer (#316)

This commit is contained in:
averne 2019-08-08 12:41:10 +02:00 committed by fincs
parent 3bbc181531
commit f13d9ba6cc
2 changed files with 34 additions and 0 deletions

View File

@ -92,6 +92,7 @@ Result viSetLayerSize(ViLayer *layer, u64 width, u64 height);
Result viSetLayerZ(ViLayer *layer, u64 z);
Result viSetLayerPosition(ViLayer *layer, float x, float y);
Result viCloseLayer(ViLayer *layer);
Result viDestroyManagedLayer(ViLayer *layer);
Result viSetLayerScalingMode(ViLayer *layer, ViScalingMode scaling_mode);

View File

@ -615,6 +615,39 @@ Result viCreateManagedLayer(const ViDisplay *display, ViLayerFlags layer_flags,
return rc;
}
Result viDestroyManagedLayer(ViLayer *layer) {
IpcCommand c;
ipcInitialize(&c);
struct {
u64 magic;
u64 cmd_id;
u64 layer_id;
} *raw;
raw = ipcPrepareHeader(&c, sizeof(*raw));
raw->magic = SFCI_MAGIC;
raw->cmd_id = 2011;
raw->layer_id = layer->layer_id;
Result rc = serviceIpcDispatch(&g_viIManagerDisplayService);
if (R_SUCCEEDED(rc)) {
IpcParsedCommand r;
ipcParse(&r);
struct {
u64 magic;
u64 result;
} *resp = r.Raw;
rc = resp->result;
memset(layer, 0, sizeof(ViLayer));
}
return rc;
}
Result viSetContentVisibility(bool v) {
IpcCommand c;
ipcInitialize(&c);