Added a way to retreive an opengl context from a vout display.
authorLaurent Aimar <fenrir@videolan.org>
Sat, 12 Dec 2009 21:41:45 +0000 (22:41 +0100)
committerLaurent Aimar <fenrir@videolan.org>
Sun, 13 Dec 2009 12:52:36 +0000 (13:52 +0100)
include/vlc_vout_display.h
include/vlc_vout_wrapper.h
src/libvlccore.sym
src/video_output/display.c

index f7c436d..5f927e0 100644 (file)
@@ -157,6 +157,9 @@ enum {
      * The cropping requested is stored by video_format_t::i_x/y_offset and
      * video_format_t::i_visible_width/height */
     VOUT_DISPLAY_CHANGE_SOURCE_CROP,   /* const video_format_t *p_source */
+
+    /* Ask an opengl interface if available. */
+    VOUT_DISPLAY_GET_OPENGL,           /* vout_opengl_t ** */
 };
 
 /**
index 13637c9..d6a9e2b 100644 (file)
@@ -25,6 +25,7 @@
 #define VLC_VOUT_WRAPPER_H 1
 
 #include <vlc_vout_display.h>
+#include <vlc_vout_opengl.h>
 
 /* XXX DO NOT use it outside the vout module wrapper XXX */
 
@@ -87,6 +88,7 @@ VLC_EXPORT(void, vout_SetDisplayZoom, (vout_display_t *, int num, int den));
 VLC_EXPORT(void, vout_SetDisplayOnTop, (vout_display_t *, bool is_on_top));
 VLC_EXPORT(void, vout_SetDisplayAspect, (vout_display_t *, unsigned sar_num, unsigned sar_den));
 VLC_EXPORT(void, vout_SetDisplayCrop, (vout_display_t *, unsigned crop_num, unsigned crop_den, unsigned x, unsigned y, unsigned width, unsigned height));
+VLC_EXPORT(vout_opengl_t *, vout_GetDisplayOpengl, (vout_display_t *));
 
 #endif /* VLC_VOUT_WRAPPER_H */
 
index 246a739..06274d9 100644 (file)
@@ -597,6 +597,7 @@ vout_AreDisplayPicturesInvalid
 vout_IsDisplayFiltered
 vout_FilterDisplay
 vout_ManageDisplay
+vout_GetDisplayOpengl
 vout_SetDisplayFullscreen
 vout_SetDisplayFilled
 vout_SetDisplayZoom
index 5559797..7702358 100644 (file)
@@ -1012,7 +1012,13 @@ void vout_SetDisplayCrop(vout_display_t *vd,
         osys->ch_crop = true;
     }
 }
-
+vout_opengl_t *vout_GetDisplayOpengl(vout_display_t *vd)
+{
+    vout_opengl_t *gl;
+    if (vout_display_Control(vd, VOUT_DISPLAY_GET_OPENGL, &gl))
+        return NULL;
+    return gl;
+}
 
 static vout_display_t *DisplayNew(vout_thread_t *vout,
                                   const video_format_t *source_org,