SRSDK
0.10.39
|
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_interlacer * | leia_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_interlacer * | leia_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_interlacer * | leia_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_interlacer * | leia_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. | |
The main entity used for performing interlacing on Leia devices.
Use one of the graphics API-specific init functions to create it:
This object is reference counted. See md_reference_counting_rules.