VLC 4.0.0-dev
|
Window object. More...
#include <vlc_window.h>
Data Fields | |
struct vlc_object_t | obj |
unsigned | type |
Window handle type. More... | |
union { | |
void * hwnd | |
Win32 window handle. More... | |
uint32_t xid | |
X11 windows ID. More... | |
void * nsobject | |
macOS/iOS view object More... | |
int android_id | |
AWindow_ID. More... | |
struct wl_surface * wl | |
Wayland surface (client pointer) More... | |
void * dcomp_visual | |
Win32 direct composition visual. More... | |
uint32_t crtc | |
KMS CRTC identifier. More... | |
} | handle |
Window handle (mandatory) More... | |
union { | |
char * x11 | |
X11 display string (NULL = use default) More... | |
struct wl_display * wl | |
Wayland display (client pointer) More... | |
void * dcomp_device | |
DirectComposition device. More... | |
int drm_fd | |
KMS DRM device. More... | |
void * anativewindow | |
Android native window. More... | |
} | display |
Display server (mandatory) More... | |
const struct vlc_window_operations * | ops |
operations handled by the window. More... | |
struct { | |
bool has_double_click | |
Whether double click events are sent, or need to be emulated. More... | |
} | info |
void * | sys |
vlc_window_owner_t | owner |
Window object.
This structure is an abstract interface to the windowing system. The window is normally used to draw video (and subpictures) into, but it can also be used for other purpose (e.g. OpenGL visualization).
The window is responsible for providing a window handle, whose exact meaning depends on the windowing system. It also must report some events such as user input (keyboard, mouse) and window resize.
Finally, it must support some control requests such as for fullscreen mode.
void* vlc_window::anativewindow |
Android native window.
int vlc_window::android_id |
AWindow_ID.
uint32_t vlc_window::crtc |
KMS CRTC identifier.
void* vlc_window::dcomp_device |
DirectComposition device.
void* vlc_window::dcomp_visual |
Win32 direct composition visual.
union { ... } vlc_window::display |
Display server (mandatory)
This must be filled by the plugin upon activation.
The window handle is relative to the display server. The exact meaning of the display server depends on the window handle type. Not all window handle type provide a display server field.
Referenced by vlc_gl_surface_Create().
int vlc_window::drm_fd |
KMS DRM device.
union { ... } vlc_window::handle |
Window handle (mandatory)
This must be filled by the plugin upon successful vlc_window_Enable().
Depending on the type above, a different member of this union is used.
Referenced by vlc_window_New().
bool vlc_window::has_double_click |
Whether double click events are sent, or need to be emulated.
Referenced by vlc_window_New(), and vout_display_window_MouseEvent().
void* vlc_window::hwnd |
Win32 window handle.
struct { ... } vlc_window::info |
Referenced by vlc_window_New(), and vout_display_window_MouseEvent().
void* vlc_window::nsobject |
macOS/iOS view object
struct vlc_object_t vlc_window::obj |
const struct vlc_window_operations* vlc_window::ops |
operations handled by the window.
Once this is set it MUST NOT be changed
Referenced by vlc_window_Delete(), vlc_window_Disable(), vlc_window_Enable(), vlc_window_SetFullScreen(), vlc_window_SetSize(), vlc_window_SetState(), vlc_window_SetTitle(), and vlc_window_UnsetFullScreen().
vlc_window_owner_t vlc_window::owner |
Referenced by vlc_gl_surface_CheckSize(), vlc_gl_surface_Destroy(), vlc_gl_surface_ResizeNotify(), vlc_window_New(), vlc_window_ReportClose(), vlc_window_ReportFullscreen(), vlc_window_ReportICCProfile(), vlc_window_ReportKeyPress(), vlc_window_ReportOutputDevice(), vlc_window_ReportSize(), vlc_window_ReportState(), vlc_window_ReportWindowed(), vlc_window_SendMouseEvent(), vout_display_ResizeWindow(), vout_display_window_Delete(), vout_display_window_FullscreenNotify(), vout_display_window_IccEvent(), vout_display_window_MouseEvent(), vout_display_window_ResizeNotify(), vout_display_window_SetMouseHandler(), vout_display_window_StateNotify(), and vout_display_window_WindowingNotify().
void* vlc_window::sys |
Referenced by vlc_window_New().
unsigned vlc_window::type |
Window handle type.
This identified the windowing system and protocol that the window needs to use. This also selects which member of the handle union and the display union are to be set.
The possible values are defined in vlc_window_type.
Referenced by vout_display_cfg_IsWindowed().
struct wl_surface* vlc_window::wl |
Wayland surface (client pointer)
struct wl_display* vlc_window::wl |
Wayland display (client pointer)
char* vlc_window::x11 |
X11 display string (NULL = use default)
uint32_t vlc_window::xid |
X11 windows ID.