mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-23 06:26:23 +00:00
Original commit message from CVS: * sys/glsink/Makefile.am: * sys/glsink/glimagesink.c: * sys/glsink/glvideo.c: * sys/glsink/glvideo.h: * sys/glsink/gstvideo-common.c: * sys/glsink/gstvideo-common.h: Add support for xRGB, xBGR, and AYUV. Re-add support for power-of-2 textures.
71 lines
1.7 KiB
C
71 lines
1.7 KiB
C
|
|
#ifndef __GLVIDEO_H__
|
|
#define __GLVIDEO_H__
|
|
|
|
#include <GL/glx.h>
|
|
#include <GL/gl.h>
|
|
#include <glib.h>
|
|
|
|
typedef struct _GLVideoDisplay GLVideoDisplay;
|
|
typedef struct _GLVideoDrawable GLVideoDrawable;
|
|
|
|
typedef enum {
|
|
GLVIDEO_IMAGE_TYPE_RGBx,
|
|
GLVIDEO_IMAGE_TYPE_BGRx,
|
|
GLVIDEO_IMAGE_TYPE_xRGB,
|
|
GLVIDEO_IMAGE_TYPE_xBGR,
|
|
GLVIDEO_IMAGE_TYPE_YUY2,
|
|
GLVIDEO_IMAGE_TYPE_UYVY,
|
|
GLVIDEO_IMAGE_TYPE_AYUV,
|
|
} GLVideoImageType;
|
|
|
|
|
|
struct _GLVideoDisplay {
|
|
Display *display;
|
|
XVisualInfo *visinfo;
|
|
GLXContext context;
|
|
GMutex *lock;
|
|
|
|
Screen *screen;
|
|
int scrnum;
|
|
Window root;
|
|
|
|
int max_texture_size;
|
|
|
|
gboolean have_ycbcr_texture;
|
|
gboolean have_texture_rectangle;
|
|
gboolean have_color_matrix;
|
|
};
|
|
|
|
struct _GLVideoDrawable {
|
|
GLVideoDisplay *display;
|
|
|
|
Window window;
|
|
|
|
gboolean destroy_on_free;
|
|
|
|
int win_width;
|
|
int win_height;
|
|
};
|
|
|
|
|
|
GLVideoDisplay *glv_display_new (const char *display_name);
|
|
gboolean glv_display_can_handle_type (GLVideoDisplay *display,
|
|
GLVideoImageType type);
|
|
void glv_display_free (GLVideoDisplay *display);
|
|
|
|
/* drawable */
|
|
|
|
GLVideoDrawable * glv_drawable_new_window (GLVideoDisplay *display);
|
|
GLVideoDrawable * glv_drawable_new_root_window (GLVideoDisplay *display);
|
|
GLVideoDrawable * glv_drawable_new_from_window (GLVideoDisplay *display, Window window);
|
|
void glv_drawable_free (GLVideoDrawable *drawable);
|
|
void glv_drawable_lock (GLVideoDrawable *drawable);
|
|
void glv_drawable_unlock (GLVideoDrawable *drawable);
|
|
void glv_drawable_update_attributes (GLVideoDrawable *drawable);
|
|
void glv_drawable_clear (GLVideoDrawable *drawable);
|
|
void glv_drawable_draw_image (GLVideoDrawable *drawable, GLVideoImageType type, void *data, int width, int height);
|
|
|
|
|
|
#endif
|
|
|