Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-2-2
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-2-2
Commits
b5cf1c1e
Commit
b5cf1c1e
authored
Feb 08, 2013
by
Felix Paul Kühne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
opengl: fixed shader support for iOS
note that certain samples are not supported so far
parent
6c648e41
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
16 additions
and
3 deletions
+16
-3
modules/video_output/opengl.c
modules/video_output/opengl.c
+16
-3
No files found.
modules/video_output/opengl.c
View file @
b5cf1c1e
...
...
@@ -194,7 +194,8 @@ static void BuildVertexShader(vout_display_opengl_t *vgl,
/* Basic vertex shader */
const
char
*
vertexShader
=
"#version "
GLSL_VERSION
"
\n
"
"varying vec4 TexCoord0,TexCoord1, TexCoord2;"
"precision highp float;"
"varying vec4 TexCoord0,TexCoord1, TexCoord2;"
"attribute vec4 MultiTexCoord0,MultiTexCoord1,MultiTexCoord2;"
"attribute vec4 VertexPosition;"
"void main() {"
...
...
@@ -237,6 +238,7 @@ static void BuildYUVFragmentShader(vout_display_opengl_t *vgl,
/* Basic linear YUV -> RGB conversion using bilinear interpolation */
const
char
*
template_glsl_yuv
=
"#version "
GLSL_VERSION
"
\n
"
"precision highp float;"
"uniform sampler2D Texture0;"
"uniform sampler2D Texture1;"
"uniform sampler2D Texture2;"
...
...
@@ -287,6 +289,7 @@ static void BuildRGBFragmentShader(vout_display_opengl_t *vgl,
// Simple shader for RGB
const
char
*
code
=
"#version "
GLSL_VERSION
"
\n
"
"precision highp float;"
"uniform sampler2D Texture[3];"
"varying vec4 TexCoord0,TexCoord1,TexCoord2;"
"void main()"
...
...
@@ -304,6 +307,7 @@ static void BuildRGBAFragmentShader(vout_display_opengl_t *vgl,
// Simple shader for RGBA
const
char
*
code
=
"#version "
GLSL_VERSION
"
\n
"
"precision highp float;"
"uniform sampler2D Texture;"
"uniform vec4 FillColor;"
"varying vec4 TexCoord0;"
...
...
@@ -342,9 +346,9 @@ vout_display_opengl_t *vout_display_opengl_New(video_format_t *fmt,
bool
supports_shaders
=
strverscmp
((
const
char
*
)
ogl_version
,
"2.0"
)
>=
0
;
#else
bool
supports_shaders
=
false
;
#ifdef __APPLE__
if
(
kCFCoreFoundationVersionNumber
>=
786
.)
supports_shaders
=
true
;
supports_shaders
=
true
;
#endif
#endif
...
...
@@ -382,6 +386,13 @@ vout_display_opengl_t *vout_display_opengl_New(video_format_t *fmt,
GLint
max_texture_units
=
0
;
glGetIntegerv
(
GL_MAX_TEXTURE_IMAGE_UNITS
,
&
max_texture_units
);
#ifdef __APPLE__
/* work-around an iOS 6 bug */
if
(
kCFCoreFoundationVersionNumber
>=
786
.)
max_texture_units
=
8
;
supports_shaders
=
true
;
#endif
/* Initialize with default chroma */
vgl
->
fmt
=
*
fmt
;
vgl
->
fmt
.
i_chroma
=
VLC_CODEC_RGB32
;
...
...
@@ -401,8 +412,10 @@ vout_display_opengl_t *vout_display_opengl_New(video_format_t *fmt,
/* Use YUV if possible and needed */
bool
need_fs_yuv
=
false
;
float
yuv_range_correction
=
1
.
0
;
if
(
max_texture_units
>=
3
&&
supports_shaders
&&
vlc_fourcc_IsYUV
(
fmt
->
i_chroma
)
&&
!
vlc_fourcc_IsYUV
(
vgl
->
fmt
.
i_chroma
))
{
printf
(
"passed check
\n
"
);
const
vlc_fourcc_t
*
list
=
vlc_fourcc_GetYUVFallback
(
fmt
->
i_chroma
);
while
(
*
list
)
{
const
vlc_chroma_description_t
*
dsc
=
vlc_fourcc_GetChromaDescription
(
*
list
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment