VLC 4.0.0-dev

Window object. More...

#include <vlc_window.h>

Collaboration diagram for vlc_window:
[legend]

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_operationsops
 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
 

Detailed Description

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.

Field Documentation

◆ anativewindow

void* vlc_window::anativewindow

Android native window.

◆ android_id

int vlc_window::android_id

AWindow_ID.

◆ crtc

uint32_t vlc_window::crtc

KMS CRTC identifier.

◆ dcomp_device

void* vlc_window::dcomp_device

DirectComposition device.

◆ dcomp_visual

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().

◆ drm_fd

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().

◆ has_double_click

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().

◆ hwnd

void* vlc_window::hwnd

Win32 window handle.

◆ 

struct { ... } vlc_window::info

◆ nsobject

void* vlc_window::nsobject

macOS/iOS view object

◆ obj

struct vlc_object_t vlc_window::obj

◆ ops

const struct vlc_window_operations* vlc_window::ops

◆ owner

◆ sys

void* vlc_window::sys

Referenced by vlc_window_New().

◆ type

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().

◆ wl [1/2]

struct wl_surface* vlc_window::wl

Wayland surface (client pointer)

◆ wl [2/2]

struct wl_display* vlc_window::wl

Wayland display (client pointer)

◆ x11

char* vlc_window::x11

X11 display string (NULL = use default)

◆ xid

uint32_t vlc_window::xid

X11 windows ID.


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