libtransistor
A userland library for the Nintendo Switch
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
Functions
vi.h File Reference

Visual Services. More...

#include <libtransistor/types.h>
#include <libtransistor/ipc/am.h>
#include <libtransistor/display/display.h>
#include <libtransistor/display/surface.h>
Include dependency graph for vi.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

result_t vi_init ()
 Initialize visual services.
 
result_t vi_open_display (const char *name, display_t *out)
 Open display. More...
 
result_t vi_close_display (display_t *display)
 Close display. More...
 
result_t vi_get_display_vsync_event (display_t *display)
 Get the V-Sync event for the given display. More...
 
result_t vi_create_stray_layer (uint32_t unknown, display_t *display, uint64_t *layer_id, igbp_t *igbp)
 Create a stray layer. More...
 
result_t vi_open_layer (const char *display_name, uint64_t layer_id, aruid_t aruid, igbp_t *igbp)
 Open a managed layer. More...
 
result_t vi_close_layer (uint64_t layer_id)
 Close a managed layer. More...
 
result_t vi_create_managed_layer (uint32_t unknown, display_t *display, uint64_t aruid, uint64_t *layer_id)
 Create a managed layer. More...
 
result_t vi_destroy_managed_layer (uint64_t layer_id)
 Destroy a managed layer. More...
 
result_t vi_adjust_refcount (int32_t handle, int32_t addval, int32_t type)
 Adjust reference count. More...
 
result_t vi_transact_parcel (int32_t handle, uint32_t transaction, uint32_t flags, void *in_parcel, size_t in_parcel_size, void *out_parcel, size_t out_parcel_size)
 Transact parcel. More...
 
result_t vi_get_native_handle (int32_t handle, uint32_t native_id, revent_h *out)
 Get a native handle from a binder.
 
result_t vi_imds_set_layer_visibility (bool visible, uint64_t layer_id)
 IManagerDisplayServices - Set layer visibility. More...
 
result_t vi_imds_set_display_layer_stack (uint32_t stack, display_t *display)
 IManagerDisplayServices - Set display layer stack. More...
 
result_t vi_imds_add_to_layer_stack (uint32_t stack, uint64_t layer_id)
 IManagerDisplayServices - Add to layer stack. More...
 
result_t vi_imds_set_conductor_layer (bool conductor, uint64_t layer_id)
 IManagerDisplayServices - Set conductor layer. More...
 
result_t vi_imds_set_content_visibility (bool visible)
 IManagerDisplayServices - Set content visibility. More...
 
result_t vi_isds_get_z_order_count_min (uint64_t layer_id, int64_t *z_count_min)
 ISystemDisplayServices - Get Z order count minimum. More...
 
result_t vi_isds_get_z_order_count_max (uint64_t layer_id, int64_t *z_count_max)
 ISystemDisplayServices - Get Z order count maximum. More...
 
result_t vi_isds_get_display_logical_resolution (display_t *display, int32_t *width, int32_t *height)
 ISystemDisplayServices - Get display logical resolution. More...
 
result_t vi_isds_set_layer_position (float x, float y, uint64_t layer_id)
 ISystemDisplayServices - Set layer position. More...
 
result_t vi_isds_set_layer_size (uint64_t layer_id, int64_t width, int64_t height)
 ISystemDisplayServices - Set layer size. More...
 
result_t vi_isds_get_layer_z (uint64_t layer_id, int64_t *z)
 ISystemDisplayServices - Get layer Z order. More...
 
result_t vi_isds_set_layer_z (uint64_t layer_id, int64_t z)
 ISystemDisplayServices - Set layer Z order. More...
 
result_t vi_isds_set_layer_visibility (bool visible, uint64_t layer_id)
 ISystemDisplayServices - Set layer visibility. More...
 
result_t vi_iads_set_display_enabled (bool enabled, display_t *display)
 IApplicationDisplayServices - Set display enabled. More...
 
result_t vi_iads_set_layer_scaling_mode (uint32_t scaling_mode, uint64_t layer_id)
 IApplicationDisplayServices - Set layer scaling mode. More...
 
void vi_finalize ()
 Finalize visual services.
 

Detailed Description

Visual Services.

Function Documentation

result_t vi_adjust_refcount ( int32_t  handle,
int32_t  addval,
int32_t  type 
)

Adjust reference count.

Parameters
handleBinder handle
addvalValue to add to reference count
typeType of reference?
result_t vi_close_display ( display_t display)

Close display.

Parameters
displayDisplay to close
result_t vi_close_layer ( uint64_t  layer_id)

Close a managed layer.

Parameters
layer_idID of existing managed layer
result_t vi_create_managed_layer ( uint32_t  unknown,
display_t display,
uint64_t  aruid,
uint64_t *  layer_id 
)

Create a managed layer.

Parameters
unknownUnknown
displayDisplay
aruidApplet resource user ID
layer_idID of newly created layer
result_t vi_create_stray_layer ( uint32_t  unknown,
display_t display,
uint64_t *  layer_id,
igbp_t igbp 
)

Create a stray layer.

Parameters
unknownUnknown
displayDisplay to create it for
layer_idID of created layer
igbpIGraphicBufferProducer for the newly created layer
result_t vi_destroy_managed_layer ( uint64_t  layer_id)

Destroy a managed layer.

Parameters
layer_idLayer ID
result_t vi_get_display_vsync_event ( display_t display)

Get the V-Sync event for the given display.

Parameters
displayDisplay to get V-Sync event for
result_t vi_iads_set_display_enabled ( bool  enabled,
display_t display 
)

IApplicationDisplayServices - Set display enabled.

Parameters
enabledEnabled?
displayDisplay
result_t vi_iads_set_layer_scaling_mode ( uint32_t  scaling_mode,
uint64_t  layer_id 
)

IApplicationDisplayServices - Set layer scaling mode.

Parameters
scaling_modeScaling mode
layer_idLayer

see https://android.googlesource.com/platform/system/core/+/7cd3e0a3a2f9b104cd6c04f699ae62c4577787e2/include/system/window.h#270

result_t vi_imds_add_to_layer_stack ( uint32_t  stack,
uint64_t  layer_id 
)

IManagerDisplayServices - Add to layer stack.

Parameters
stackID of layer stack
layer_idLayer to add to stack
result_t vi_imds_set_conductor_layer ( bool  conductor,
uint64_t  layer_id 
)

IManagerDisplayServices - Set conductor layer.

Parameters
conductorIs conductor
layer_idLayer ID

No idea what "conductor" means in this context.

result_t vi_imds_set_content_visibility ( bool  visible)

IManagerDisplayServices - Set content visibility.

Parameters
visibleVisible
result_t vi_imds_set_display_layer_stack ( uint32_t  stack,
display_t display 
)

IManagerDisplayServices - Set display layer stack.

Parameters
stackID of layer stack
displayDisplay

Not really sure about this, but I think it changes which layer stack is currently being displayed.

result_t vi_imds_set_layer_visibility ( bool  visible,
uint64_t  layer_id 
)

IManagerDisplayServices - Set layer visibility.

Parameters
visibleVisible
layer_idLayer ID
result_t vi_isds_get_display_logical_resolution ( display_t display,
int32_t *  width,
int32_t *  height 
)

ISystemDisplayServices - Get display logical resolution.

Parameters
displayDisplay
widthOutput for width
heightOutput for height
result_t vi_isds_get_layer_z ( uint64_t  layer_id,
int64_t *  z 
)

ISystemDisplayServices - Get layer Z order.

Parameters
layer_idLayer
zOutput for Z order
result_t vi_isds_get_z_order_count_max ( uint64_t  layer_id,
int64_t *  z_count_max 
)

ISystemDisplayServices - Get Z order count maximum.

Parameters
layer_idLayer ID
z_count_maxOutput for Z order count minimum
result_t vi_isds_get_z_order_count_min ( uint64_t  layer_id,
int64_t *  z_count_min 
)

ISystemDisplayServices - Get Z order count minimum.

Parameters
layer_idLayer ID
z_count_minOutput for Z order count minimum
result_t vi_isds_set_layer_position ( float  x,
float  y,
uint64_t  layer_id 
)

ISystemDisplayServices - Set layer position.

Parameters
xX position
yY position
layer_idLayer
result_t vi_isds_set_layer_size ( uint64_t  layer_id,
int64_t  width,
int64_t  height 
)

ISystemDisplayServices - Set layer size.

Parameters
layer_idLayer
widthWidth
heightHeight
result_t vi_isds_set_layer_visibility ( bool  visible,
uint64_t  layer_id 
)

ISystemDisplayServices - Set layer visibility.

Parameters
visibleIs visible?
layer_idLayer
result_t vi_isds_set_layer_z ( uint64_t  layer_id,
int64_t  z 
)

ISystemDisplayServices - Set layer Z order.

Parameters
layer_idLayer
zZ order
result_t vi_open_display ( const char *  name,
display_t out 
)

Open display.

Parameters
nameName of display to open
outStructure to initialize

Default is usually a good option for which display to open.

result_t vi_open_layer ( const char *  display_name,
uint64_t  layer_id,
aruid_t  aruid,
igbp_t igbp 
)

Open a managed layer.

Parameters
display_nameName of display
layer_idID of existing managed layer
aruidApplet resource user ID
igbpIGraphicBufferProducer for the layer
result_t vi_transact_parcel ( int32_t  handle,
uint32_t  transaction,
uint32_t  flags,
void *  in_parcel,
size_t  in_parcel_size,
void *  out_parcel,
size_t  out_parcel_size 
)

Transact parcel.

Parameters
handleBinder handle
transactionTransaction ID
flagsTransaction flags
in_parcelParcel data
in_parcel_sizeSize of parcel data
out_parcelParcel data
out_parcel_sizeSize of parcel data