Display services: Difference between revisions
No edit summary |
|||
Line 130: | Line 130: | ||
== OpenLayer == | == OpenLayer == | ||
Takes a PID-descriptor, a type-0x6 buffer for the output [[#NativeWindow]], a [[#DisplayName]](which was previously used with [[#OpenDisplay]]), an u64 | Takes a PID-descriptor, a type-0x6 buffer for the output [[#NativeWindow]], a [[#DisplayName]](which was previously used with [[#OpenDisplay]]), an u64 LayerId, and an u64 [[AM_services|AppletResourceUserId]]. Returns an output u64 NativeWindow_Size. | ||
Official user-processes use | Official user-processes use a LayerId stored in a global state field("...ExternalLayerId") if non-zero, otherwise: | ||
* When AppletResourceUserId==0, [[#CreateStrayLayer]] is used instead of the OpenLayer cmd. | * When AppletResourceUserId==0, [[#CreateStrayLayer]] is used instead of the OpenLayer cmd. | ||
* When AppletResourceUserId!=0, {unknown cmd} is used and the output from that is used for | * When AppletResourceUserId!=0, {unknown cmd} is used and the output from that is used for LayerId with the OpenLayer cmd. | ||
== CloseLayer == | == CloseLayer == | ||
Takes an input u64. | Takes an input u64: LayerId which was used with [[#OpenLayer]]. | ||
== CreateStrayLayer == | == CreateStrayLayer == | ||
Takes a type-0x6 buffer for the output [[#NativeWindow]], an u32(LayerFlags bitmask), and an u64 DisplayId. Returns two output u64s: | Takes a type-0x6 buffer for the output [[#NativeWindow]], an u32(LayerFlags bitmask), and an u64 DisplayId. Returns two output u64s: LayerId and NativeWindow_Size. | ||
== DestroyStrayLayer == | == DestroyStrayLayer == | ||
Takes an input u64. | Takes an input u64: LayerId from [[#CreateStrayLayer]]. | ||
== SetLayerScalingMode == | == SetLayerScalingMode == |