[][src]Function libmpv_sys::mpv_render_context_create

pub unsafe extern "C" fn mpv_render_context_create(
    res: *mut *mut mpv_render_context,
    mpv: *mut mpv_handle,
    params: *mut mpv_render_param
) -> c_int

Initialize the renderer state. Depending on the backend used, this will access the underlying GPU API and initialize its own objects.

You must free the context with mpv_render_context_free(). Not doing so before the mpv core is destroyed may result in memory leaks or crashes.

Currently, only at most 1 context can exists per mpv core (it represents the main video output).

You should pass the following parameters:

  • MPV_RENDER_PARAM_API_TYPE to select the underlying backend/GPU API.
  • Backend-specific init parameter, like MPV_RENDER_PARAM_OPENGL_INIT_PARAMS.
  • Setting MPV_RENDER_PARAM_ADVANCED_CONTROL and following its rules is strongly recommended.
  • If you want to use hwdec, possibly hwdec interop resources.

@param res set to the context (on success) or NULL (on failure). The value is never read and always overwritten. @param mpv handle used to get the core (the mpv_render_context won't depend on this specific handle, only the core referenced by it) @param params an array of parameters, terminated by type==0. It's left unspecified what happens with unknown parameters. At least MPV_RENDER_PARAM_API_TYPE is required, and most backends will require another backend-specific parameter. @return error code, including but not limited to: MPV_ERROR_UNSUPPORTED: the OpenGL version is not supported (or required extensions are missing) MPV_ERROR_NOT_IMPLEMENTED: an unknown API type was provided, or support for the requested API was not built in the used libmpv binary. MPV_ERROR_INVALID_PARAMETER: at least one of the provided parameters was not valid.