xine-lib: xine-lib-1.2.13/src/video_out/video_out_opengl.c File Reference

xine-lib 1.2.13-20230125hg15249

Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
video_out_opengl.c File Reference
`#include <stdio.h>`
`#include <stdlib.h>`
`#include <string.h>`
`#include <math.h>`
`#include <errno.h>`
`#include <ctype.h>`
`#include <pthread.h>`
`#include <GL/gl.h>`
`#include "myglext.h"`
`#include <GL/glx.h>`
`#include <dlfcn.h>`
`#include "xine.h"`
`#include <xine/video_out.h>`
`#include <xine/xine_internal.h>`
`#include "yuv2rgb.h"`
`#include <xine/xineutils.h>`
`#include "x11osd.h"`
`#include "color_matrix.c"`

## Data Structures
struct | opengl_frame_t
struct | opengl_driver_t
struct | opengl_class_t
struct | opengl_render_t

## Macros
#define | LOG_MODULE "video_out_opengl"
#define | BYTES_PER_PIXEL 4
#define | NUM_FRAMES_BACKLOG 4 /* Allow thread some time to render frames */
#define | SECONDS_PER_CYCLE 60 /* Animation parameters */
#define | CYCLE_FACTOR1 3
#define | CYCLE_FACTOR2 5
#define | GLchar MYGLChar
#define | GLintptr MYGLintptr
#define | GLsizeiptr MYGLsizeiptr
#define | GLintptrARB MYGLintptrARB
#define | GLsizeiptrARB MYGLsizeiptrARB
#define | GLcharARB MYGLcharARB
#define | GLhandleARB MYGLhandleARB
#define | GLhalfARB MYGLhalfARB
#define | GLhalfNV MYGLhalfNV
#define | CHECKERR(a) ((void)0)
#define | RGB_TEXTURE_FORMAT GL_BGRA
#define | YUV_FORMAT MODE_32_RGB
#define | YUV_SWAP_MODE 0
#define | MY_2PI (M_PI * 2)
#define | CM_LUT
#define | CM_DRIVER_T opengl_driver_t
#define | CYL_TESSELATION 128
#define | CYL_WIDTH 2.5
#define | CYL_HEIGHT 3.0
#define | DIST_FACTOR 16.568542 /* 2 * (sqrt(2)-1) * 20 */
#define | gluPerspective myGluPerspective
#define | TOR_TESSELATION_B 128
#define | TOR_TESSELATION_S 64
#define | TOR_RADIUS_B 2.5
#define | TOR_RADIUS_S 1.0

## Typedefs
typedef void *(* | thread_run_t) (void *)

## Enumerations
enum | render_e { RENDER_NONE =0 , RENDER_DRAW , RENDER_CLEAN , RENDER_SETUP , RENDER_CREATE , RENDER_VISUAL , RENDER_RELEASE , RENDER_EXIT }

## Functions
static void | render_tex2d (opengl_driver_t *this, opengl_frame_t *frame)
static void | render_tex2dtiled (opengl_driver_t *this, opengl_frame_t *frame)
static void | render_draw (opengl_driver_t *this, opengl_frame_t *frame)
static void | render_cyl (opengl_driver_t *this, opengl_frame_t *frame)
static void | render_env_tor (opengl_driver_t *this, opengl_frame_t *frame)
static int | render_help_image_tex (opengl_driver_t *this, int new_w, int new_h, GLint glformat, GLint texformat)
static int | render_help_image_tiledtex (opengl_driver_t *this, int new_w, int new_h, GLint glformat, GLint texformat)
static int | render_image_nop (opengl_driver_t *this, opengl_frame_t *frame)
static int | render_image_tex (opengl_driver_t *this, opengl_frame_t *frame)
static int | render_image_tiledtex (opengl_driver_t *this, opengl_frame_t *frame)
static int | render_image_fp_yuv (opengl_driver_t *this, opengl_frame_t *frame)
static int | render_image_envtex (opengl_driver_t *this, opengl_frame_t *frame)
static int | render_help_verify_ext (opengl_driver_t *this, const char *ext)
static void * | getdladdr (const GLubyte *_funcName)
static void * | getaddr (const char *funcName)
static void | render_help_check_exts (opengl_driver_t *this)
static int | render_help_setup_tex (opengl_driver_t *this)
static void | myGluPerspective (GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar)
static int | render_setup_2d (opengl_driver_t *this)
static int | render_setup_tex2d (opengl_driver_t *this)
static int | render_setup_3d (opengl_driver_t *this)
static int | render_setup_cyl (opengl_driver_t *this)
static int | render_setup_torus (opengl_driver_t *this)
static int | render_setup_fp_yuv (opengl_driver_t *this)
static void | render_gfx_vinfo (opengl_driver_t *this)
static void * | render_run (opengl_driver_t *this)
static uint32_t | opengl_get_capabilities (vo_driver_t *this_gen)
static void | opengl_frame_proc_slice (vo_frame_t *vo_img, uint8_t **src)
static void | opengl_frame_field (vo_frame_t *vo_img, int which_field)
static void | opengl_frame_dispose (vo_frame_t *vo_img)
static vo_frame_t * | opengl_alloc_frame (vo_driver_t *this_gen)
static void | opengl_compute_ideal_size (opengl_driver_t *this)
static void | opengl_compute_rgb_size (opengl_driver_t *this)
static void | opengl_update_frame_format (vo_driver_t *this_gen, vo_frame_t *frame_gen, uint32_t width, uint32_t height, double ratio, int format, int flags)
static void | opengl_overlay_clut_yuv2rgb (opengl_driver_t *this, vo_overlay_t *overlay, opengl_frame_t *frame)
static void | opengl_overlay_begin (vo_driver_t *this_gen, vo_frame_t *frame_gen, int changed)
static void | opengl_overlay_end (vo_driver_t *this_gen, vo_frame_t *vo_img)
static void | opengl_overlay_blend (vo_driver_t *this_gen, vo_frame_t *frame_gen, vo_overlay_t *overlay)
static int | opengl_redraw_needed (vo_driver_t *this_gen)
static void | opengl_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen)
static int | opengl_get_property (vo_driver_t *this_gen, int property)
static int | opengl_set_property (vo_driver_t *this_gen, int property, int value)
static void | opengl_get_property_min_max (vo_driver_t *this_gen, int property, int *min, int *max)
static int | opengl_gui_data_exchange (vo_driver_t *this_gen, int data_type, void *data)
static void | opengl_dispose_internal (opengl_driver_t *this, int thread_running)
static void | opengl_dispose (vo_driver_t *this_gen)
static void | opengl_cb_render_fun (void *this_gen, xine_cfg_entry_t *entry)
static void | opengl_cb_default (void *val_gen, xine_cfg_entry_t *entry)
static vo_driver_t * | opengl_open_plugin (video_driver_class_t *class_gen, const void *visual_gen)
static int | opengl_verify_direct (x11_visual_t *vis)
static void * | opengl_init_class (xine_t *xine, const void *visual_gen)

## Variables
static const int32_t | Inverse_Table_6_9 [8][4]
static const opengl_render_t | opengl_rb []
static const vo_info_t | vo_info_opengl
const plugin_info_t xine_plugin_info[] | EXPORTED

## Macro Definition Documentation

## ◆ BYTES_PER_PIXEL

#define BYTES_PER_PIXEL 4

Referenced by opengl_frame_field(), and opengl_update_frame_format().

## ◆ CHECKERR

#define CHECKERR | ( |  | a | ) | ((void)0)

Referenced by render_gfx_vinfo(), render_help_setup_tex(), render_image_fp_yuv(), render_image_tiledtex(), render_run(), render_setup_2d(), render_setup_3d(), and render_setup_fp_yuv().

## ◆ CM_DRIVER_T

#define CM_DRIVER_T opengl_driver_t

## ◆ CM_LUT

#define CM_LUT

## ◆ CYCLE_FACTOR1

#define CYCLE_FACTOR1 3

Referenced by render_cyl(), and render_env_tor().

## ◆ CYCLE_FACTOR2

#define CYCLE_FACTOR2 5

Referenced by render_cyl(), and render_env_tor().

## ◆ CYL_HEIGHT

#define CYL_HEIGHT 3.0

Referenced by render_cyl().

## ◆ CYL_TESSELATION

#define CYL_TESSELATION 128

Referenced by render_cyl().

## ◆ CYL_WIDTH

#define CYL_WIDTH 2.5

Referenced by render_cyl().

## ◆ DIST_FACTOR

#define DIST_FACTOR 16.568542 /* 2 * (sqrt(2)-1) * 20 */

Referenced by render_env_tor().

## ◆ GLchar

#define GLchar MYGLChar

## ◆ GLcharARB

#define GLcharARB MYGLcharARB

## ◆ GLhalfARB

#define GLhalfARB MYGLhalfARB

## ◆ GLhalfNV

#define GLhalfNV MYGLhalfNV

## ◆ GLhandleARB

#define GLhandleARB MYGLhandleARB

## ◆ GLintptr

#define GLintptr MYGLintptr

## ◆ GLintptrARB

#define GLintptrARB MYGLintptrARB

## ◆ GLsizeiptr

#define GLsizeiptr MYGLsizeiptr

## ◆ GLsizeiptrARB

#define GLsizeiptrARB MYGLsizeiptrARB

## ◆ gluPerspective

#define gluPerspective myGluPerspective

Referenced by render_setup_3d().

## ◆ LOG_MODULE

#define LOG_MODULE "video_out_opengl"

Referenced by opengl_open_plugin().

## ◆ MY_2PI

#define MY_2PI (M_PI * 2)

Referenced by render_cyl(), and render_setup_torus().

## ◆ NUM_FRAMES_BACKLOG

#define NUM_FRAMES_BACKLOG 4 /* Allow thread some time to render frames */

Referenced by opengl_display_frame(), opengl_dispose_internal(), and opengl_set_property().

## ◆ RGB_TEXTURE_FORMAT

#define RGB_TEXTURE_FORMAT GL_BGRA

Referenced by render_draw(), render_help_check_exts(), render_image_tex(), and render_image_tiledtex().

## ◆ SECONDS_PER_CYCLE

#define SECONDS_PER_CYCLE 60 /* Animation parameters */

Referenced by render_cyl(), and render_env_tor().

## ◆ TOR_RADIUS_B

#define TOR_RADIUS_B 2.5

Referenced by render_setup_torus().

## ◆ TOR_RADIUS_S

#define TOR_RADIUS_S 1.0

Referenced by render_setup_torus().

## ◆ TOR_TESSELATION_B

#define TOR_TESSELATION_B 128

Referenced by render_setup_torus().

## ◆ TOR_TESSELATION_S

#define TOR_TESSELATION_S 64

Referenced by render_setup_torus().

## ◆ YUV_FORMAT

#define YUV_FORMAT MODE_32_RGB

Referenced by opengl_open_plugin().

## ◆ YUV_SWAP_MODE

#define YUV_SWAP_MODE 0

Referenced by opengl_open_plugin().

## Typedef Documentation

## ◆ thread_run_t

typedef void *(* thread_run_t) (void *)

## Enumeration Type Documentation

## ◆ render_e

enum render_e

Enumerator
RENDER_NONE |
RENDER_DRAW |
RENDER_CLEAN |
RENDER_SETUP |
RENDER_CREATE |
RENDER_VISUAL |
RENDER_RELEASE |
RENDER_EXIT |

## Function Documentation

## ◆ getaddr()

static void * getaddr | ( | const char * | funcName | ) |
| static

References getdladdr().

Referenced by render_help_check_exts().

## ◆ getdladdr()

static void * getdladdr | ( | const GLubyte * | _funcName | ) |
| static

References _x_asprintf(), and NULL.

Referenced by getaddr().

## ◆ myGluPerspective()

static void myGluPerspective | ( | GLdouble | fovy,
|  | GLdouble | aspect,
|  | GLdouble | zNear,
|  | GLdouble | zFar )
| static

## ◆ opengl_alloc_frame()

static vo_frame_t * opengl_alloc_frame | ( | vo_driver_t * | this_gen | ) |
| static

References vo_frame_s::dispose, vo_frame_s::driver, vo_frame_s::field, vo_frame_s::mutex, NULL, opengl_frame_dispose(), opengl_frame_field(), opengl_frame_proc_slice(), vo_frame_s::proc_frame, vo_frame_s::proc_slice, opengl_frame_t::vo_frame, and opengl_frame_t::yuv2rgb.

Referenced by opengl_open_plugin().

## ◆ opengl_cb_default()

static void opengl_cb_default | ( | void * | val_gen,
|  | xine_cfg_entry_t * | entry )
| static

References xine_cfg_entry_s::num_value.

Referenced by opengl_open_plugin().

## ◆ opengl_cb_render_fun()

static void opengl_cb_render_fun | ( | void * | this_gen,
|  | xine_cfg_entry_t * | entry )
| static

References xine_cfg_entry_s::num_value, and RENDER_SETUP.

Referenced by opengl_open_plugin().

## ◆ opengl_compute_ideal_size()

static void opengl_compute_ideal_size | ( | opengl_driver_t * | this | ) |
| static

References _x_vo_scale_compute_ideal_size().

Referenced by opengl_redraw_needed(), and opengl_set_property().

## ◆ opengl_compute_rgb_size()

static void opengl_compute_rgb_size | ( | opengl_driver_t * | this | ) |
| static

References _x_vo_scale_compute_output_size().

Referenced by opengl_redraw_needed().

## ◆ opengl_display_frame()

static void opengl_display_frame | ( | vo_driver_t * | this_gen,
|  | vo_frame_t * | frame_gen )
| static

References vo_frame_s::free, opengl_frame_t::height, NUM_FRAMES_BACKLOG, opengl_redraw_needed(), opengl_frame_t::ratio, RENDER_DRAW, opengl_frame_t::vo_frame, and opengl_frame_t::width.

Referenced by opengl_open_plugin().

## ◆ opengl_dispose()

static void opengl_dispose | ( | vo_driver_t * | this_gen | ) |
| static

References opengl_dispose_internal().

Referenced by opengl_open_plugin().

## ◆ opengl_dispose_internal()

static void opengl_dispose_internal | ( | opengl_driver_t * | this,
|  | int | thread_running )
| static

References _x_alphablend_free(), _x_vo_scale_cleanup(), NULL, NUM_FRAMES_BACKLOG, RENDER_EXIT, and x11osd_destroy().

Referenced by opengl_dispose(), and opengl_open_plugin().

## ◆ opengl_frame_dispose()

static void opengl_frame_dispose | ( | vo_frame_t * | vo_img | ) |
| static

References vo_frame_s::base, yuv2rgb_s::dispose, vo_frame_s::mutex, opengl_frame_t::rgb, opengl_frame_t::vo_frame, xine_free_aligned(), and opengl_frame_t::yuv2rgb.

Referenced by opengl_alloc_frame().

## ◆ opengl_frame_field()

static void opengl_frame_field | ( | vo_frame_t * | vo_img,
|  | int | which_field )
| static

References BYTES_PER_PIXEL, vo_frame_s::driver, yuv2rgb_s::next_slice, NULL, opengl_rb, opengl_frame_t::rgb, opengl_frame_t::rgb_dst, VO_BOTH_FIELDS, VO_BOTTOM_FIELD, VO_TOP_FIELD, opengl_frame_t::width, and opengl_frame_t::yuv2rgb.

Referenced by opengl_alloc_frame(), and opengl_update_frame_format().

## ◆ opengl_frame_proc_slice()

static void opengl_frame_proc_slice | ( | vo_frame_t * | vo_img,
|  | uint8_t ** | src )
| static

References cm_names, contrast, vo_frame_s::crop_bottom, vo_frame_s::crop_left, vo_frame_s::crop_right, vo_frame_s::crop_top, vo_frame_s::driver, opengl_frame_t::format, vo_frame_s::proc_called, opengl_frame_t::rgb_dst, opengl_frame_t::vo_frame, XINE_IMGFMT_YV12, XINE_VERBOSITY_LOG, xprintf, opengl_frame_t::yuv2rgb, yuv2rgb_s::yuv2rgb_fun, and yuv2rgb_s::yuy22rgb_fun.

Referenced by opengl_alloc_frame().

## ◆ opengl_get_capabilities()

static uint32_t opengl_get_capabilities | ( | vo_driver_t * | this_gen | ) |
| static

References VO_CAP_BRIGHTNESS, VO_CAP_COLOR_MATRIX, VO_CAP_CONTRAST, VO_CAP_FULLRANGE, VO_CAP_SATURATION, VO_CAP_YUY2, and VO_CAP_YV12.

Referenced by opengl_open_plugin().

## ◆ opengl_get_property()

static int opengl_get_property | ( | vo_driver_t * | this_gen,
|  | int | property )
| static

References contrast, VO_PROP_ASPECT_RATIO, VO_PROP_BRIGHTNESS, VO_PROP_CONTRAST, VO_PROP_MAX_NUM_FRAMES, VO_PROP_SATURATION, VO_PROP_WINDOW_HEIGHT, VO_PROP_WINDOW_WIDTH, XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by opengl_open_plugin().

## ◆ opengl_get_property_min_max()

static void opengl_get_property_min_max | ( | vo_driver_t * | this_gen,
|  | int | property,
|  | int * | min,
|  | int * | max )
| static

References VO_PROP_BRIGHTNESS, VO_PROP_CONTRAST, and VO_PROP_SATURATION.

Referenced by opengl_open_plugin().

## ◆ opengl_gui_data_exchange()

static int opengl_gui_data_exchange | ( | vo_driver_t * | this_gen,
|  | int | data_type,
|  | void * | data )
| static

References _x_vo_scale_translate_gui2video(), x11_rectangle_t::h, RENDER_CLEAN, RENDER_CREATE, RENDER_RELEASE, RENDER_VISUAL, x11_rectangle_t::w, x11_rectangle_t::x, x11osd_drawable_changed(), x11osd_expose(), XINE_GUI_SEND_COMPLETION_EVENT, XINE_GUI_SEND_DRAWABLE_CHANGED, XINE_GUI_SEND_EXPOSE_EVENT, XINE_GUI_SEND_SELECT_VISUAL, XINE_GUI_SEND_TRANSLATE_GUI_TO_VIDEO, XINE_GUI_SEND_WILL_DESTROY_DRAWABLE, XINE_VERBOSITY_NONE, xprintf, and x11_rectangle_t::y.

Referenced by opengl_open_plugin().

## ◆ opengl_init_class()

static void * opengl_init_class | ( | xine_t * | xine,
|  | const void * | visual_gen )
| static

References default_video_driver_class_dispose, video_driver_class_s::description, video_driver_class_s::dispose, opengl_class_t::driver_class, video_driver_class_s::identifier, N_, NULL, video_driver_class_s::open_plugin, opengl_open_plugin(), opengl_verify_direct(), opengl_class_t::xine, XINE_VERBOSITY_LOG, and xprintf.

## ◆ opengl_open_plugin()

static vo_driver_t * opengl_open_plugin | ( | video_driver_class_t * | class_gen,
|  | const void * | visual_gen )
| static

References _, _x_alphablend_init(), _x_vo_scale_init(), xine_s::config, contrast, x11_visual_t::d, x11_visual_t::dest_size_cb, x11_visual_t::display, vo_frame_s::dispose, x11_visual_t::frame_output_cb, LOG_MODULE, name, NULL, opengl_alloc_frame(), opengl_cb_default(), opengl_cb_render_fun(), opengl_display_frame(), opengl_dispose(), opengl_dispose_internal(), opengl_get_capabilities(), opengl_get_property(), opengl_get_property_min_max(), opengl_gui_data_exchange(), opengl_overlay_begin(), opengl_overlay_blend(), opengl_overlay_end(), opengl_rb, opengl_redraw_needed(), opengl_set_property(), opengl_update_frame_format(), RENDER_CREATE, render_run(), RENDER_VISUAL, x11_visual_t::screen, x11_visual_t::user_data, x11osd_create(), X11OSD_SHAPED, config_values_s::xine, opengl_class_t::xine, XINE_VERBOSITY_LOG, XINE_VO_ASPECT_AUTO, xprintf, yuv2rgb_factory_init(), YUV_FORMAT, and YUV_SWAP_MODE.

Referenced by opengl_init_class().

## ◆ opengl_overlay_begin()

static void opengl_overlay_begin | ( | vo_driver_t * | this_gen,
|  | vo_frame_t * | frame_gen,
|  | int | changed )
| static

References vo_frame_s::overlay_offset_x, vo_frame_s::overlay_offset_y, and x11osd_clear().

Referenced by opengl_open_plugin().

## ◆ opengl_overlay_blend()

static void opengl_overlay_blend | ( | vo_driver_t * | this_gen,
|  | vo_frame_t * | frame_gen,
|  | vo_overlay_t * | overlay )
| static

References _x_blend_rgb24(), _x_blend_rgb32(), _x_blend_yuv(), _x_blend_yuy2(), vo_frame_s::base, opengl_frame_t::format, opengl_frame_t::height, vo_overlay_s::hili_rgb_clut, opengl_overlay_clut_yuv2rgb(), vo_frame_s::pitches, opengl_frame_t::rgb, vo_overlay_s::rgb_clut, opengl_frame_t::rgb_dst, vo_overlay_s::rle, vo_overlay_s::unscaled, opengl_frame_t::vo_frame, opengl_frame_t::width, x11osd_blend(), and XINE_IMGFMT_YV12.

Referenced by opengl_open_plugin().

## ◆ opengl_overlay_clut_yuv2rgb()

static void opengl_overlay_clut_yuv2rgb | ( | opengl_driver_t * | this,
|  | vo_overlay_t * | overlay,
|  | opengl_frame_t * | frame )
| static

References clut_s::cb, vo_overlay_s::color, clut_s::cr, vo_overlay_s::hili_color, vo_overlay_s::hili_rgb_clut, vo_overlay_s::rgb_clut, clut_s::y, opengl_frame_t::yuv2rgb, and yuv2rgb_s::yuv2rgb_single_pixel_fun.

Referenced by opengl_overlay_blend().

## ◆ opengl_overlay_end()

static void opengl_overlay_end | ( | vo_driver_t * | this_gen,
|  | vo_frame_t * | vo_img )
| static

References x11osd_expose().

Referenced by opengl_open_plugin().

## ◆ opengl_redraw_needed()

static int opengl_redraw_needed | ( | vo_driver_t * | this_gen | ) |
| static

References _x_vo_scale_redraw_needed(), opengl_compute_ideal_size(), opengl_compute_rgb_size(), and RENDER_CLEAN.

Referenced by opengl_display_frame(), and opengl_open_plugin().

## ◆ opengl_set_property()

static int opengl_set_property | ( | vo_driver_t * | this_gen,
|  | int | property,
|  | int | value )
| static

References _x_vo_scale_aspect_ratio_name_table, contrast, NULL, NUM_FRAMES_BACKLOG, opengl_compute_ideal_size(), VO_PROP_ASPECT_RATIO, VO_PROP_BRIGHTNESS, VO_PROP_CONTRAST, VO_PROP_DISCARD_FRAMES, VO_PROP_SATURATION, XINE_VERBOSITY_DEBUG, XINE_VO_ASPECT_AUTO, XINE_VO_ASPECT_NUM_RATIOS, and xprintf.

Referenced by opengl_open_plugin().

## ◆ opengl_update_frame_format()

static void opengl_update_frame_format | ( | vo_driver_t * | this_gen,
|  | vo_frame_t * | frame_gen,
|  | uint32_t | width,
|  | uint32_t | height,
|  | double | ratio,
|  | int | format,
|  | int | flags )
| static

References vo_frame_s::base, BYTES_PER_PIXEL, yuv2rgb_s::configure, opengl_frame_t::flags, opengl_frame_t::format, height, opengl_frame_t::height, opengl_frame_field(), vo_frame_s::pitches, opengl_frame_t::ratio, RENDER_SETUP, opengl_frame_t::rgb, VO_BOTH_FIELDS, VO_BOTTOM_FIELD, opengl_frame_t::vo_frame, VO_TOP_FIELD, opengl_frame_t::width, width, xine_freep_aligned, XINE_IMGFMT_YV12, xine_mallocz_aligned(), and opengl_frame_t::yuv2rgb.

Referenced by opengl_open_plugin().

## ◆ opengl_verify_direct()

static int opengl_verify_direct | ( | x11_visual_t * | vis | ) |
| static

References x11_visual_t::display, NULL, and x11_visual_t::screen.

Referenced by opengl_init_class().

## ◆ render_cyl()

static void render_cyl | ( | opengl_driver_t * | this,
|  | opengl_frame_t * | frame )
| static

References CYCLE_FACTOR1, CYCLE_FACTOR2, CYL_HEIGHT, CYL_TESSELATION, CYL_WIDTH, opengl_frame_t::height, MY_2PI, NULL, SECONDS_PER_CYCLE, and opengl_frame_t::width.

## ◆ render_draw()

static void render_draw | ( | opengl_driver_t * | this,
|  | opengl_frame_t * | frame )
| static

References opengl_frame_t::height, opengl_frame_t::rgb, RGB_TEXTURE_FORMAT, and opengl_frame_t::width.

## ◆ render_env_tor()

static void render_env_tor | ( | opengl_driver_t * | this,
|  | opengl_frame_t * | frame )
| static

References CYCLE_FACTOR1, CYCLE_FACTOR2, DIST_FACTOR, opengl_frame_t::height, NULL, SECONDS_PER_CYCLE, and opengl_frame_t::width.

## ◆ render_gfx_vinfo()

static void render_gfx_vinfo | ( | opengl_driver_t * | this | ) |
| static

References CHECKERR.

Referenced by render_run().

## ◆ render_help_check_exts()

static void render_help_check_exts | ( | opengl_driver_t * | this | ) |
| static

References getaddr(), render_help_verify_ext(), RGB_TEXTURE_FORMAT, XINE_VERBOSITY_NONE, and xprintf.

Referenced by render_setup_2d(), and render_setup_3d().

## ◆ render_help_image_tex()

static int render_help_image_tex | ( | opengl_driver_t * | this,
|  | int | new_w,
|  | int | new_h,
|  | GLint | glformat,
|  | GLint | texformat )
| static

References lprintf.

Referenced by render_image_fp_yuv(), and render_image_tex().

## ◆ render_help_image_tiledtex()

static int render_help_image_tiledtex | ( | opengl_driver_t * | this,
|  | int | new_w,
|  | int | new_h,
|  | GLint | glformat,
|  | GLint | texformat )
| static

References lprintf.

Referenced by render_image_tiledtex().

## ◆ render_help_setup_tex()

static int render_help_setup_tex | ( | opengl_driver_t * | this | ) |
| static

References CHECKERR.

Referenced by render_setup_cyl(), render_setup_tex2d(), and render_setup_torus().

## ◆ render_help_verify_ext()

static int render_help_verify_ext | ( | opengl_driver_t * | this,
|  | const char * | ext )
| static

References XINE_VERBOSITY_LOG, and xprintf.

Referenced by render_help_check_exts().

## ◆ render_image_envtex()

static int render_image_envtex | ( | opengl_driver_t * | this,
|  | opengl_frame_t * | frame )
| static

References opengl_frame_t::height, render_image_tex(), and opengl_frame_t::width.

## ◆ render_image_fp_yuv()

static int render_image_fp_yuv | ( | opengl_driver_t * | this,
|  | opengl_frame_t * | frame )
| static

References vo_frame_s::base, CHECKERR, opengl_frame_t::format, opengl_frame_t::height, MYGL_FRAGMENT_PROGRAM_ARB, vo_frame_s::pitches, render_help_image_tex(), opengl_frame_t::vo_frame, opengl_frame_t::width, and XINE_IMGFMT_YV12.

## ◆ render_image_nop()

static int render_image_nop | ( | opengl_driver_t * | this,
|  | opengl_frame_t * | frame )
| static

## ◆ render_image_tex()

static int render_image_tex | ( | opengl_driver_t * | this,
|  | opengl_frame_t * | frame )
| static

References opengl_frame_t::height, render_help_image_tex(), opengl_frame_t::rgb, RGB_TEXTURE_FORMAT, and opengl_frame_t::width.

Referenced by render_image_envtex().

## ◆ render_image_tiledtex()

static int render_image_tiledtex | ( | opengl_driver_t * | this,
|  | opengl_frame_t * | frame )
| static

References CHECKERR, opengl_frame_t::height, render_help_image_tiledtex(), opengl_frame_t::rgb, RGB_TEXTURE_FORMAT, and opengl_frame_t::width.

## ◆ render_run()

static void * render_run | ( | opengl_driver_t * | this | ) |
| static

References _x_assert, CHECKERR, opengl_render_t::defaction, vo_frame_s::id, lprintf, NULL, opengl_rb, RENDER_CLEAN, RENDER_CREATE, RENDER_DRAW, RENDER_EXIT, render_gfx_vinfo(), RENDER_NONE, RENDER_RELEASE, RENDER_SETUP, RENDER_VISUAL, opengl_frame_t::vo_frame, XINE_VERBOSITY_NONE, and xprintf.

Referenced by opengl_open_plugin().

## ◆ render_setup_2d()

static int render_setup_2d | ( | opengl_driver_t * | this | ) |
| static

References CHECKERR, MYGL_FRAGMENT_PROGRAM_ARB, and render_help_check_exts().

Referenced by render_setup_tex2d().

## ◆ render_setup_3d()

static int render_setup_3d | ( | opengl_driver_t * | this | ) |
| static

References CHECKERR, gluPerspective, MYGL_FRAGMENT_PROGRAM_ARB, and render_help_check_exts().

Referenced by render_setup_cyl(), and render_setup_torus().

## ◆ render_setup_cyl()

static int render_setup_cyl | ( | opengl_driver_t * | this | ) |
| static

References render_help_setup_tex(), and render_setup_3d().

## ◆ render_setup_fp_yuv()

static int render_setup_fp_yuv | ( | opengl_driver_t * | this | ) |
| static

References CHECKERR, cm_names, contrast, Inverse_Table_6_9, MYGL_FRAGMENT_PROGRAM_ARB, MYGL_PROGRAM_ERROR_POSITION_ARB, MYGL_PROGRAM_FORMAT_ASCII_ARB, render_setup_tex2d(), XINE_VERBOSITY_LOG, XINE_VERBOSITY_NONE, and xprintf.

## ◆ render_setup_tex2d()

static int render_setup_tex2d | ( | opengl_driver_t * | this | ) |
| static

References render_help_setup_tex(), and render_setup_2d().

Referenced by render_setup_fp_yuv().

## ◆ render_setup_torus()

static int render_setup_torus | ( | opengl_driver_t * | this | ) |
| static

References MY_2PI, render_help_setup_tex(), render_setup_3d(), TOR_RADIUS_B, TOR_RADIUS_S, TOR_TESSELATION_B, TOR_TESSELATION_S, and z.

## ◆ render_tex2d()

static void render_tex2d | ( | opengl_driver_t * | this,
|  | opengl_frame_t * | frame )
| static

References opengl_frame_t::height, and opengl_frame_t::width.

## ◆ render_tex2dtiled()

static void render_tex2dtiled | ( | opengl_driver_t * | this,
|  | opengl_frame_t * | frame )
| static

References opengl_frame_t::height, and opengl_frame_t::width.

## Variable Documentation

## ◆ EXPORTED

const plugin_info_t xine_plugin_info [] EXPORTED

Initial value:
= {
{ PLUGIN_VIDEO_OUT, 22, "opengl", XINE_VERSION_CODE, &vo_info_opengl, opengl_init_class },
{ PLUGIN_NONE, 0, NULL, 0, NULL, NULL }
}
vo_info_opengl
static const vo_info_t vo_info_opengl
Definition video_out_opengl.c:2200
opengl_init_class
static void * opengl_init_class(xine_t *xine, const void *visual_gen)
Definition video_out_opengl.c:2174
XINE_VERSION_CODE
#define XINE_VERSION_CODE
Definition xine_internal.h:57
NULL
NULL
Definition xine_plugin.c:78
PLUGIN_NONE
#define PLUGIN_NONE
Definition xine_plugin.h:29
PLUGIN_VIDEO_OUT
#define PLUGIN_VIDEO_OUT
Definition xine_plugin.h:36

## ◆ Inverse_Table_6_9

const int32_t Inverse_Table_6_9[8][4]
| static

Initial value:
= {
{117504, 138453, 13954, 34903},
{117504, 138453, 13954, 34903},
{104597, 132201, 25675, 53279},
{104597, 132201, 25675, 53279},
{104448, 132798, 24759, 53109},
{104597, 132201, 25675, 53279},
{104597, 132201, 25675, 53279},
{117579, 136230, 16907, 35559}
}

Referenced by render_setup_fp_yuv().

## ◆ opengl_rb

const opengl_render_t opengl_rb[]
| static

Initial value:
= {
{ "2D_Tex_Fragprog", render_tex2d, render_image_fp_yuv,
render_setup_fp_yuv, 0, RENDER_NONE, 1 },
{ "2D_Tex", render_tex2d, render_image_tex,
render_setup_tex2d, 1, RENDER_NONE, 2 },
{ "2D_Tex_Tiled", render_tex2dtiled, render_image_tiledtex,
render_setup_tex2d, 1, RENDER_NONE, 3 },
{ "Image_Pipeline", render_draw, render_image_nop,
render_setup_2d, 1, RENDER_NONE, -1 },
{ "Cylinder", render_cyl, render_image_tex,
render_setup_cyl, 1, RENDER_DRAW, 1 },
{ "Env_Mapped_Torus", render_env_tor, render_image_envtex,
render_setup_torus, 1, RENDER_DRAW, 1 }
}
render_tex2dtiled
static void render_tex2dtiled(opengl_driver_t *this, opengl_frame_t *frame)
Definition video_out_opengl.c:290
render_setup_tex2d
static int render_setup_tex2d(opengl_driver_t *this)
Definition video_out_opengl.c:864
render_image_nop
static int render_image_nop(opengl_driver_t *this, opengl_frame_t *frame)
Definition video_out_opengl.c:552
render_image_envtex
static int render_image_envtex(opengl_driver_t *this, opengl_frame_t *frame)
Definition video_out_opengl.c:673
RENDER_DRAW
@ RENDER_DRAW
Definition video_out_opengl.c:154
RENDER_NONE
@ RENDER_NONE
Definition video_out_opengl.c:154
render_tex2d
static void render_tex2d(opengl_driver_t *this, opengl_frame_t *frame)
Definition video_out_opengl.c:269
render_env_tor
static void render_env_tor(opengl_driver_t *this, opengl_frame_t *frame)
Definition video_out_opengl.c:387
render_setup_fp_yuv
static int render_setup_fp_yuv(opengl_driver_t *this)
Definition video_out_opengl.c:947
render_setup_2d
static int render_setup_2d(opengl_driver_t *this)
Definition video_out_opengl.c:835
render_draw
static void render_draw(opengl_driver_t *this, opengl_frame_t *frame)
Definition video_out_opengl.c:333
render_setup_torus
static int render_setup_torus(opengl_driver_t *this)
Definition video_out_opengl.c:911
render_image_fp_yuv
static int render_image_fp_yuv(opengl_driver_t *this, opengl_frame_t *frame)
Definition video_out_opengl.c:620
render_setup_cyl
static int render_setup_cyl(opengl_driver_t *this)
Definition video_out_opengl.c:898
render_image_tex
static int render_image_tex(opengl_driver_t *this, opengl_frame_t *frame)
Definition video_out_opengl.c:558
render_cyl
static void render_cyl(opengl_driver_t *this, opengl_frame_t *frame)
Definition video_out_opengl.c:345
render_image_tiledtex
static int render_image_tiledtex(opengl_driver_t *this, opengl_frame_t *frame)
Definition video_out_opengl.c:575

Referenced by opengl_frame_field(), opengl_open_plugin(), and render_run().

## ◆ vo_info_opengl

const vo_info_t vo_info_opengl
| static

Initial value:
= {
.priority = 7,
.visual_type = XINE_VISUAL_TYPE_X11,
}
XINE_VISUAL_TYPE_X11
#define XINE_VISUAL_TYPE_X11
Definition xine.h:154