mirror of
https://github.com/switchbrew/libnx.git
synced 2025-07-04 18:42:15 +02:00
Added viDestroyManagedLayer, only zero initialized field of ViLayer when closing
This commit is contained in:
parent
b59682652d
commit
ef3eec43b4
@ -90,6 +90,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);
|
||||
|
||||
|
@ -615,6 +615,38 @@ 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;
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
Result viSetContentVisibility(bool v) {
|
||||
IpcCommand c;
|
||||
ipcInitialize(&c);
|
||||
@ -960,7 +992,7 @@ Result viCloseLayer(ViLayer *layer)
|
||||
} *resp = r.Raw;
|
||||
|
||||
rc = resp->result;
|
||||
memset(layer, 0, sizeof(ViLayer));
|
||||
layer->initialized = false;
|
||||
}
|
||||
|
||||
return rc;
|
||||
|
Loading…
Reference in New Issue
Block a user