21#ifndef VLC_GL_SAMPLER_H
22#define VLC_GL_SAMPLER_H 1
211 return sampler->
ops->
update(sampler, picture);
234#define set_callback_opengl_sampler(open) \
236 vlc_gl_sampler_open_fn *fn = open; \
#define PICTURE_PLANE_MAX
Maximum number of plane for a picture.
Definition vlc_picture.h:67
Internal module descriptor.
Definition modules.h:76
An OpenGL picture state, with textures and a coordinate transformation matrix.
Definition vlc_opengl_picture.h:40
Definition vlc_opengl_sampler.h:54
int(* update)(struct vlc_gl_sampler *sampler, const struct vlc_gl_picture *picture)
Update the input picture.
Definition vlc_opengl_sampler.h:83
void(* select_plane)(struct vlc_gl_sampler *sampler, unsigned plane)
Select the plane to expose.
Definition vlc_opengl_sampler.h:95
void(* close)(struct vlc_gl_sampler *sampler)
Close the sampler, releasing resources.
Definition vlc_opengl_sampler.h:102
void(* fetch_locations)(struct vlc_gl_sampler *sampler, uint32_t program)
Callback to fetch locations of uniform or attribute variables.
Definition vlc_opengl_sampler.h:64
void(* load)(struct vlc_gl_sampler *sampler)
Callback to load sampler data.
Definition vlc_opengl_sampler.h:74
OpenGL sampler.
Definition vlc_opengl_sampler.h:111
unsigned tex_count
Number of texture planes.
Definition vlc_opengl_sampler.h:122
struct vlc_gl_sampler::@027113026266275344074003175020250126365045174031 shader
video_format_t fmt_in
Input video format.
Definition vlc_opengl_sampler.h:119
void * sys
Private data for the sampler implementation.
Definition vlc_opengl_sampler.h:193
uint32_t tex_target
GL texture target (e.g.
Definition vlc_opengl_sampler.h:131
int32_t tex_heights[(5)]
Per-plane texture heights.
Definition vlc_opengl_sampler.h:128
int32_t tex_widths[(5)]
Per-plane texture widths.
Definition vlc_opengl_sampler.h:125
vlc_object_t obj
Definition vlc_opengl_sampler.h:112
char * version
Version header appropriate for this shader.
Definition vlc_opengl_sampler.h:160
char * extensions
Piece of fragment shader code declaring OpenGL extensions.
Definition vlc_opengl_sampler.h:176
struct vlc_gl_t * gl
OpenGL context.
Definition vlc_opengl_sampler.h:116
char * precision
Precision preamble appropriate for this shader.
Definition vlc_opengl_sampler.h:165
char * body
Piece of fragment shader code providing the GLSL function vlc_texture(vec2 coords).
Definition vlc_opengl_sampler.h:187
module_t * module
Definition vlc_opengl_sampler.h:113
uint32_t formats[(5)]
Per-plane GL format (GLenum values).
Definition vlc_opengl_sampler.h:134
bool half_float
Whether textures use half-float storage.
Definition vlc_opengl_sampler.h:137
const float * pic_to_tex_matrix
Matrix to convert from picture coordinates to texture coordinates.
Definition vlc_opengl_sampler.h:154
const struct vlc_gl_sampler_ops * ops
Definition vlc_opengl_sampler.h:190
Definition vlc_opengl.h:100
VLC object common members.
Definition vlc_objects.h:53
This file is a collection of common definitions and types.
This file defines the elementary streams format types.
This file defines the public OpenGL picture interface.
static int vlc_gl_sampler_Update(struct vlc_gl_sampler *sampler, const struct vlc_gl_picture *picture)
Definition vlc_opengl_sampler.h:209
static void vlc_gl_sampler_Load(struct vlc_gl_sampler *sampler)
Definition vlc_opengl_sampler.h:203
static void vlc_gl_sampler_FetchLocations(struct vlc_gl_sampler *sampler, uint32_t program)
Definition vlc_opengl_sampler.h:197
static void vlc_gl_sampler_SelectPlane(struct vlc_gl_sampler *sampler, unsigned plane)
Definition vlc_opengl_sampler.h:216
int vlc_gl_sampler_open_fn(struct vlc_gl_sampler *sampler, bool expose_planes)
Activation function for OpenGL sampler module implementations.
Definition vlc_opengl_sampler.h:233
This file defines picture structures and functions in vlc.