SRSDK  0.10.39
Loading...
Searching...
No Matches
leia_interlacer Struct Reference

The main entity used for performing interlacing on Leia devices. More...

#include <interlacer.h>

Public Types

typedef void(* leia_interlacer_enable_act) (struct leia_interlacer *, leia_bool enable)
 Enable or disable Anti-crosstalk.
 
typedef leia_bool(* leia_interlacer_is_act_enabled) (struct leia_interlacer *)
 Gets whether anti-crosstalk is enabled or not.
 
typedef leia_bool(* leia_interlacer_init_zone_plate) (struct leia_interlacer *, int32_t viewportWidth, int32_t viewportHeight, float *posX, float *posY, float *scaleX, float *scaleY, float *overrideSupportCirclePhase)
 Init zone plate.
 
typedef void(* leia_interlacer_set_zone_plate) (struct leia_interlacer *, float posX, float posY, float scaleX, float scaleY, float overrideSupportCirclePhase)
 Set the origin and scale of the zoom plate.
 
typedef void(* leia_interlacer_initialize_gui) (struct leia_interlacer *, struct leia_interlacer_debug_menu_configuration const *config, leia_bool sRGB)
 Initializes and enables use of a debug GUI.
 
typedef void(* leia_interlacer_set_gui_visibility) (struct leia_interlacer *, leia_bool isVisible)
 Set whether the GUI is visible.
 
typedef leia_bool(* leia_interlacer_is_gui_visible) (struct leia_interlacer *)
 Gets whether we the GUI is visible.
 
typedef struct leia_interlacer_gui_input_state(* leia_interlacer_process_gui_input_wndproc) (struct leia_interlacer *, void *surface, uint32_t msg, uint64_t wparam, int64_t lparam)
 Process user-input for the GUI.
 
typedef struct leia_interlacer_gui_input_state(* leia_interlacer_process_gui_input_ndk) (struct leia_interlacer *, struct AInputEvent const *inputEvent)
 Process user-input for the GUI.
 
typedef struct leia_interlacer_gui_input_state(* leia_interlacer_process_gui_motion_input) (struct leia_interlacer *, JNIEnv *jni, jobject motionInput)
 Process user-input for the GUI.
 
typedef void(* leia_interlacer_shutdown_gui) (struct leia_interlacer *)
 Shutdown the GUI.
 
typedef void(* leia_interlacer_set_calibration_pattern) (struct leia_interlacer *, enum leia_calibration_pattern pattern)
 Sets the calibration pattern.
 
typedef void(* leia_interlacer_set_gamma) (struct leia_interlacer *, float rGamma, float gGamma, float bGamma)
 Set the gamma value during interlacing.
 

Public Member Functions

LEIASDK_API void leia_interlacer_d3d11_do_post_process (struct leia_interlacer *, int32_t width, int32_t height, leia_bool blendedInterlace, struct ID3D11RenderTargetView *resultTexture)
 Perform Direct3D 11 graphics rendering.
 
LEIASDK_API void leia_interlacer_d3d11_set_source_views (struct leia_interlacer *, struct ID3D11ShaderResourceView *texture, int32_t viewIndex, int layer)
 Set Direct3D 11 view texture.
 
LEIASDK_API void leia_interlacer_d3d12_do_post_process (struct leia_interlacer *, int32_t width, int32_t height, leia_bool blendedInterlace, struct ID3D12Resource *renderTarget)
 Perform Direct3D 11 graphics rendering.
 
LEIASDK_API void leia_interlacer_d3d12_set_source_views (struct leia_interlacer *, struct ID3D12Resource *resource, int viewIndex, int layer)
 Set Direct3D 12 view texture.
 
LEIASDK_API void leia_interlacer_retain (struct leia_interlacer *)
 Increment leia_interlacer reference count.
 
LEIASDK_API void leia_interlacer_release (struct leia_interlacer *)
 Decrement leia_interlacer reference count.
 
LEIASDK_API int32_t leia_interlacer_get_max_layer_count (struct leia_interlacer *)
 Gets the max number of layers that can be interlaced at once.
 
LEIASDK_API int32_t leia_interlacer_get_max_view_count (struct leia_interlacer *)
 Gets the max number of views per layer that can be interlaced at once.
 
LEIASDK_API void leia_interlacer_set_layer_count (struct leia_interlacer *, int layerCount)
 Sets the number of layers to interlace.
 
LEIA_NODISCARD LEIASDK_API int leia_interlacer_get_layer_count (struct leia_interlacer *)
 Gets the current number of layers.
 
LEIASDK_API void leia_interlacer_set_num_tiles (struct leia_interlacer *, int32_t tx, int32_t ty)
 Set the layout of views in a atlas.
 
LEIASDK_API void leia_interlacer_get_num_tiles (struct leia_interlacer *, int32_t *tx, int32_t *ty)
 Get the layout of views in the atlas.
 
LEIASDK_API void leia_interlacer_set_tile_layout (struct leia_interlacer *, enum leia_tile_layout tileLayout)
 Set the layout of the tiles in the atlas.
 
LEIASDK_API void leia_interlacer_output_as_tiles (struct leia_interlacer *, leia_bool enable)
 Enable or disable output of raw source tiles.
 
LEIASDK_API void leia_interlacer_set_baseline_scaling (struct leia_interlacer *, float baseline)
 Sets the baseline scaling.
 
LEIA_NODISCARD LEIASDK_API float leia_interlacer_get_baseline_scaling (struct leia_interlacer *)
 Get the baseline scaling.
 
LEIA_NODISCARD LEIASDK_API float leia_interlacer_get_convergence_distance (struct leia_interlacer *)
 Get the convergence distance.
 
LEIASDK_API void leia_interlacer_set_convergence_distance (struct leia_interlacer *, float distance)
 Set the convergence distance.
 
LEIASDK_API void leia_interlacer_get_converged_orthographic_view_info (struct leia_interlacer *, int32_t viewIndex, LEIA_CONST_FLOAT_SLICE(3) cameraPos, LEIA_CONST_FLOAT_SLICE(3) cameraDir, LEIA_CONST_FLOAT_SLICE(3) cameraUp, float width, float height, float nearPlane, float farPlane, LEIA_FLOAT_SLICE(3) viewPos, LEIA_FLOAT_SLICE(16) viewProjectionMatrix, float *viewShearX, float *viewShearY)
 Retrieve information related to a view.
 
LEIASDK_API void leia_interlacer_get_converged_perspective_view_info (struct leia_interlacer *, int32_t viewIndex, LEIA_CONST_FLOAT_SLICE(3) cameraPos, LEIA_CONST_FLOAT_SLICE(3) cameraDir, LEIA_CONST_FLOAT_SLICE(3) cameraUp, float fieldOfView, float aspectRatio, float nearPlane, float farPlane, LEIA_FLOAT_SLICE(3) viewPos, LEIA_FLOAT_SLICE(16) viewProjectionMatrix, float *viewFieldOfView, float *viewShearX, float *viewShearY)
 Retrieve information related to a view.
 
LEIASDK_API void leia_interlacer_set_fit_mode (struct leia_interlacer *, enum leia_fit_mode mode)
 Set the fit mode.
 
LEIA_NODISCARD LEIASDK_API enum leia_fit_mode leia_interlacer_get_fit_mode (struct leia_interlacer *)
 Get the fit mode.
 
LEIASDK_API void leia_interlacer_get_rect_matrix (struct leia_interlacer *, LEIA_FLOAT_SLICE(16) transformMatrix)
 Get the rect matrix.
 
LEIASDK_API void leia_interlacer_set_local_matrix (struct leia_interlacer *, LEIA_CONST_FLOAT_SLICE(16) transformMatrix)
 Set the local matrix.
 
LEIASDK_API void leia_interlacer_set_custom_texture_matrix (struct leia_interlacer *, LEIA_CONST_FLOAT_SLICE(16) textureTransform)
 Set the custom texture matrix.
 
LEIASDK_API void leia_interlacer_set_alpha (struct leia_interlacer *, float alpha)
 Sets the alpha blending value.
 
LEIASDK_API void leia_interlacer_set_flip_input_uv_vertical (struct leia_interlacer *, leia_bool flip)
 Set whether to flip the views vertically.
 
LEIASDK_API void leia_interlacer_set_single_view_mode (struct leia_interlacer *, leia_bool setSingleView, int32_t singleViewIndex)
 Set single-view interlacing mode.
 
LEIASDK_API void leia_interlacer_set_single_view_mode_listener (struct leia_interlacer *, struct leia_interlacer_single_view_mode_listener const *listener)
 Set single-view mode callback.
 
LEIASDK_API void leia_interlacer_set_source_views_size (struct leia_interlacer *, int32_t sourceWidth, int32_t sourceHeight, leia_bool isHorizontalViews)
 Set dimensions of the views.
 
LEIASDK_API void leia_interlacer_get_source_views_size (struct leia_interlacer *, int32_t *sourceWidth, int32_t *sourceHeight, leia_bool *isHorizontalViews)
 Get dimensions of the views previously set via leia_interlacer_set_source_views_size.
 
LEIASDK_API void leia_interlacer_set_source_media_is_video (struct leia_interlacer *, leia_bool isVideo)
 Set whether source media is a video or not.
 
LEIASDK_API void leia_interlacer_set_source_media_scale (struct leia_interlacer *, float scaleX, float scaleY)
 Set source media scale factors.
 
LEIASDK_API void leia_interlacer_set_source_views_srgb (struct leia_interlacer *, leia_bool isSRGB)
 Set whether view textures are in a sRGB format.
 
LEIASDK_API void leia_interlacer_set_in_shader_srgb_conversion (struct leia_interlacer *, leia_bool sRGBRead, leia_bool sRGBWrite)
 Set whether to sRGB conversions are enabled or disabled in the interlacing shader.
 
LEIASDK_API void leia_interlacer_set_viewport_screen_position (struct leia_interlacer *, int32_t posX, int32_t posY)
 Set the viewport screen position.
 
LEIASDK_API void leia_interlacer_set_viewport (struct leia_interlacer *, int32_t posX, int32_t posY, int32_t width, int32_t height)
 Set the viewport.
 
LEIASDK_API void leia_interlacer_enable_reconvergence (struct leia_interlacer *, leia_bool enable)
 Enable or disable reconvergence.
 
LEIA_NODISCARD LEIASDK_API leia_bool leia_interlacer_is_reconvergence_enabled (struct leia_interlacer *)
 Gets whether we are using reconvergence.
 
LEIA_NODISCARD LEIASDK_API float leia_interlacer_get_reconvergence (struct leia_interlacer *, int layer)
 Get the reconvergence amount.
 
LEIASDK_API void leia_interlacer_set_reconvergence (struct leia_interlacer *, float value, int layer)
 Set the reconvergence amount.
 
LEIASDK_API void leia_interlacer_set_reconvergence_zoom (struct leia_interlacer *, leia_bool zoomX, leia_bool zoomXY, int layer)
 Set what directions reconvergence is calculated for.
 
LEIASDK_API void leia_interlacer_set_use_atlas_for_views (struct leia_interlacer *, leia_bool)
 Set whether the views are a single atlas vs individual textures.
 
LEIA_NODISCARD LEIASDK_API leia_bool leia_interlacer_get_use_atlas_for_views (struct leia_interlacer *)
 Gets whether we are using a single atlas or individual views.
 
LEIASDK_API void leia_interlacer_get_view_offset (struct leia_interlacer *, int32_t view, LEIA_FLOAT_SLICE(3) offset)
 Gets a view offset.
 
LEIASDK_API void leia_interlacer_set_invert_screen_texture_coordinates (struct leia_interlacer *, leia_bool invert)
 Set whether to invert screen texture coordinates vertically.
 
LEIA_NODISCARD LEIASDK_API enum leia_graphics_api leia_interlacer_get_graphics_api (struct leia_interlacer *)
 Get the graphics API.
 
LEIASDK_API void leia_get_view_comfort_zone (enum leia_view_info_mode mode, float baselineScaling, float convergencePlaneDistance, float nearPlane, float farPlane, float *viewComfortZoneNear, float *viewComfortZoneFar)
 A helper function to compute comfort zone range.
 
LEIASDK_API void leia_get_view_info (enum leia_view_info_mode mode, LEIA_CONST_FLOAT_SLICE(3) viewOffset, LEIA_CONST_FLOAT_SLICE(3) cameraPos, LEIA_CONST_FLOAT_SLICE(3) cameraDir, LEIA_CONST_FLOAT_SLICE(3) cameraUp, float perspectiveFieldOfView, float perspectiveAspectRatio, float orthoWidth, float orthoHeight, float nearPlane, float farPlane, float convergencePlaneDistance, float convergencePlaneHeight, LEIA_FLOAT_SLICE(3) viewPos, LEIA_FLOAT_SLICE(16) viewProjectionMatrix, float *viewFieldOfView, float *viewShearX, float *viewShearY)
 A helper function to compute per-view values.
 
LEIASDK_API void leia_interlacer_opengl_do_post_process (struct leia_interlacer *, int32_t width, int32_t height, leia_bool blendedInterlace)
 Perform OpenGL graphics rendering.
 
LEIASDK_API void leia_interlacer_opengl_set_output_render_target (struct leia_interlacer *, uint32_t renderTarget)
 Set the OpenGL output texture.
 
LEIASDK_API void leia_interlacer_opengl_set_source_views (struct leia_interlacer *, uint32_t glTextureId, uint32_t glTextureTarget, int32_t viewIndex, int layer)
 Set the OpenGL view texture.
 
LEIASDK_API void leia_interlacer_vulkan_do_post_process (struct leia_interlacer *, int32_t width, int32_t height, leia_bool blendedInterlace, VkFramebuffer frameBuffer, VkImage colorImage, VkImage depthImage, VkSemaphore imageAvailableSemaphore, VkSemaphore renderFinishedSemaphore, int32_t currentFrame)
 Perform Vulkan graphics rendering.
 
LEIASDK_API void leia_interlacer_vulkan_set_source_views (struct leia_interlacer *, VkImage texture, VkImageView textureView, int32_t viewIndex, int layer)
 Set Vulkan view texture.
 

Related Symbols

(Note that these are not member symbols.)

LEIA_NODISCARD LEIASDK_API struct leia_interlacerleia_interlacer_d3d11_initialize (struct leia_core *core, struct leia_interlacer_init_configuration const *config, struct ID3D11DeviceContext *context)
 Initialize interlacer for usage with Direct3D 11.
 
LEIA_NODISCARD LEIASDK_API struct leia_interlacerleia_interlacer_d3d12_initialize (struct leia_core *core, struct leia_interlacer_init_configuration const *config, struct ID3D12Device *device, struct ID3D12CommandQueue *commandQueue)
 Initialize interlacer for usage with Direct3D 12.
 
LEIA_NODISCARD LEIASDK_API struct leia_interlacerleia_interlacer_opengl_initialize (struct leia_core *core, struct leia_interlacer_init_configuration const *config, void *context)
 Initialize interlacer for usage with OpenGL.
 
LEIA_NODISCARD LEIASDK_API struct leia_interlacerleia_interlacer_vulkan_initialize (struct leia_core *, struct leia_interlacer_init_configuration const *, VkDevice device, VkPhysicalDevice physicalDevice, VkFormatInt renderTargetFormat, VkFormatInt depthStencilFormat, int32_t maxInFlightFrameCount)
 Initialize interlacer for usage with Vulkan.
 

Detailed Description


The documentation for this struct was generated from the following files: