Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-1.1
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-1.1
Commits
774a42d0
Commit
774a42d0
authored
Feb 09, 2004
by
Eric Petit
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
macosx/* : added --macosx-opengl-effect, current possible values are
"none" and "cube". Sorry, couldn't resist ;)
parent
5e53660a
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
150 additions
and
21 deletions
+150
-21
modules/gui/macosx/macosx.m
modules/gui/macosx/macosx.m
+15
-3
modules/gui/macosx/vout.h
modules/gui/macosx/vout.h
+2
-1
modules/gui/macosx/vout.m
modules/gui/macosx/vout.m
+133
-17
No files found.
modules/gui/macosx/macosx.m
View file @
774a42d0
...
...
@@ -2,7 +2,7 @@
* macosx.m: MacOS X module for vlc
*****************************************************************************
* Copyright (C) 2001-2003 VideoLAN
* $Id: macosx.m,v 1.
19 2004/01/26 18:30:37
titer Exp $
* $Id: macosx.m,v 1.
20 2004/02/09 13:28:31
titer Exp $
*
* Authors: Colin Delacroix
<colin
@
zoy
.
org
>
* Eugenio Jarosiewicz
<ej0
@
cise
.
ufl
.
edu
>
...
...
@@ -55,8 +55,16 @@ void E_(CloseVideo) ( vlc_object_t * );
"0 is fully transparent.")
#define OPENGL_TEXT N_("Use OpenGL")
#define OPENGL_LONGTEXT N_( \
"Use OpenGL instead of QuickTime to render the video on the screen." )
#define OPENGL_LONGTEXT N_("Use OpenGL instead of QuickTime to " \
"render the video on the screen.")
#define OPENGL_EFFECT_TEXT N_("OpenGL effect")
#define OPENGL_EFFECT_LONGTEXT N_("Use 'None' to display the video " \
"without any fantasy, 'Cube' to let the video play on " \
"transparent faces of a rotating cube")
static char * effect_list[] = { "none", "cube" };
static char * effect_list_text[] = { N_("None"), N_("Cube") };
vlc_module_begin();
set_description( _("MacOS X interface, sound and video") );
...
...
@@ -71,5 +79,9 @@ vlc_module_begin();
OPAQUENESS_TEXT, OPAQUENESS_LONGTEXT, VLC_TRUE );
add_bool( "macosx-opengl", 0, NULL, OPENGL_TEXT,
OPENGL_LONGTEXT, VLC_TRUE );
add_string( "macosx-opengl-effect", "none", NULL,
OPENGL_EFFECT_TEXT, OPENGL_EFFECT_LONGTEXT,
VLC_TRUE );
change_string_list( effect_list, effect_list_text, 0 );
vlc_module_end();
modules/gui/macosx/vout.h
View file @
774a42d0
...
...
@@ -2,7 +2,7 @@
* vout.h: MacOS X interface module
*****************************************************************************
* Copyright (C) 2001-2003 VideoLAN
* $Id: vout.h,v 1.2
2 2004/02/03 13:00:27
titer Exp $
* $Id: vout.h,v 1.2
3 2004/02/09 13:28:32
titer Exp $
*
* Authors: Colin Delacroix <colin@zoy.org>
* Florian G. Pflug <fgp@phlo.org>
...
...
@@ -60,6 +60,7 @@
@interface
VLCGLView
:
NSOpenGLView
{
vout_thread_t
*
p_vout
;
int
i_effect
;
int
b_init_done
;
unsigned
long
i_texture
;
float
f_x
;
...
...
modules/gui/macosx/vout.m
View file @
774a42d0
...
...
@@ -2,7 +2,7 @@
* vout.m: MacOS X video output module
*****************************************************************************
* Copyright (C) 2001-2003 VideoLAN
* $Id: vout.m,v 1.7
7 2004/02/03 13:00:27
titer Exp $
* $Id: vout.m,v 1.7
8 2004/02/09 13:28:32
titer Exp $
*
* Authors: Colin Delacroix <colin@zoy.org>
* Florian G. Pflug <fgp@phlo.org>
...
...
@@ -46,6 +46,9 @@
#define QT_MAX_DIRECTBUFFERS 10
#define VL_MAX_DISPLAYS 16
#define OPENGL_EFFECT_NONE 1
#define OPENGL_EFFECT_CUBE 2
struct
picture_sys_t
{
void
*
p_info
;
...
...
@@ -1275,6 +1278,7 @@ static void QTFreePicture( vout_thread_t *p_vout, picture_t *p_pic )
-
(
id
)
initWithFrame
:
(
NSRect
)
frame
vout
:
(
vout_thread_t
*
)
_p_vout
{
char
*
psz_effect
;
p_vout
=
_p_vout
;
NSOpenGLPixelFormatAttribute
attribs
[]
=
...
...
@@ -1300,8 +1304,37 @@ static void QTFreePicture( vout_thread_t *p_vout, picture_t *p_pic )
[[
self
openGLContext
]
makeCurrentContext
];
[[
self
openGLContext
]
update
];
/* Black bacjground */
glClearColor
(
0
.
0
,
0
.
0
,
0
.
0
,
0
.
0
);
/* Check if the user asked for useless visual effects */
psz_effect
=
config_GetPsz
(
p_vout
,
"macosx-opengl-effect"
);
if
(
!
strcmp
(
psz_effect
,
"none"
)
)
{
i_effect
=
OPENGL_EFFECT_NONE
;
}
else
if
(
!
strcmp
(
psz_effect
,
"cube"
)
)
{
i_effect
=
OPENGL_EFFECT_CUBE
;
glMatrixMode
(
GL_PROJECTION
);
glLoadIdentity
();
glFrustum
(
-
1
.
0
,
1
.
0
,
-
1
.
0
,
1
.
0
,
3
.
0
,
20
.
0
);
glMatrixMode
(
GL_MODELVIEW
);
glLoadIdentity
();
glTranslatef
(
0
.
0
,
0
.
0
,
-
5
.
0
);
glBlendFunc
(
GL_SRC_ALPHA
,
GL_ONE
);
glEnable
(
GL_BLEND
);
glEnable
(
GL_POLYGON_SMOOTH
);
glDisable
(
GL_DEPTH_TEST
);
}
else
{
msg_Warn
(
p_vout
,
"no valid opengl effect provided, using "
"
\"
none
\"
"
);
i_effect
=
OPENGL_EFFECT_NONE
;
}
b_init_done
=
0
;
return
self
;
...
...
@@ -1389,6 +1422,95 @@ static void QTFreePicture( vout_thread_t *p_vout, picture_t *p_pic )
PP_OUTPUTPICTURE
[
0
]
->
p_data
);
}
-
(
void
)
drawQuad
{
glBegin
(
GL_QUADS
);
/* Top left */
glTexCoord2f
(
0
.
0
,
0
.
0
);
glVertex3f
(
-
1
.
0
,
1
.
0
,
1
.
0
);
/* Bottom left */
glTexCoord2f
(
0
.
0
,
(
float
)
p_vout
->
output
.
i_height
);
glVertex3f
(
-
1
.
0
,
-
1
.
0
,
1
.
0
);
/* Bottom right */
glTexCoord2f
(
(
float
)
p_vout
->
output
.
i_width
,
(
float
)
p_vout
->
output
.
i_height
);
glVertex3f
(
1
.
0
,
-
1
.
0
,
1
.
0
);
/* Top right */
glTexCoord2f
(
(
float
)
p_vout
->
output
.
i_width
,
0
.
0
);
glVertex3f
(
1
.
0
,
1
.
0
,
1
.
0
);
glEnd
();
}
-
(
void
)
drawCube
{
glBegin
(
GL_QUADS
);
glTexCoord2f
(
0
.
0
,
0
.
0
);
glVertex3f
(
-
1
.
0
,
1
.
0
,
1
.
0
);
glTexCoord2f
(
0
.
0
,
(
float
)
p_vout
->
output
.
i_height
);
glVertex3f
(
-
1
.
0
,
-
1
.
0
,
1
.
0
);
glTexCoord2f
(
(
float
)
p_vout
->
output
.
i_width
,
(
float
)
p_vout
->
output
.
i_height
);
glVertex3f
(
1
.
0
,
-
1
.
0
,
1
.
0
);
glTexCoord2f
(
(
float
)
p_vout
->
output
.
i_width
,
0
.
0
);
glVertex3f
(
1
.
0
,
1
.
0
,
1
.
0
);
glEnd
();
glBegin
(
GL_QUADS
);
glTexCoord2f
(
0
.
0
,
0
.
0
);
glVertex3f
(
-
1
.
0
,
1
.
0
,
-
1
.
0
);
glTexCoord2f
(
0
.
0
,
(
float
)
p_vout
->
output
.
i_height
);
glVertex3f
(
-
1
.
0
,
-
1
.
0
,
-
1
.
0
);
glTexCoord2f
(
(
float
)
p_vout
->
output
.
i_width
,
(
float
)
p_vout
->
output
.
i_height
);
glVertex3f
(
-
1
.
0
,
-
1
.
0
,
1
.
0
);
glTexCoord2f
(
(
float
)
p_vout
->
output
.
i_width
,
0
.
0
);
glVertex3f
(
-
1
.
0
,
1
.
0
,
1
.
0
);
glEnd
();
glBegin
(
GL_QUADS
);
glTexCoord2f
(
0
.
0
,
0
.
0
);
glVertex3f
(
1
.
0
,
1
.
0
,
-
1
.
0
);
glTexCoord2f
(
0
.
0
,
(
float
)
p_vout
->
output
.
i_height
);
glVertex3f
(
1
.
0
,
-
1
.
0
,
-
1
.
0
);
glTexCoord2f
(
(
float
)
p_vout
->
output
.
i_width
,
(
float
)
p_vout
->
output
.
i_height
);
glVertex3f
(
-
1
.
0
,
-
1
.
0
,
-
1
.
0
);
glTexCoord2f
(
(
float
)
p_vout
->
output
.
i_width
,
0
.
0
);
glVertex3f
(
-
1
.
0
,
1
.
0
,
-
1
.
0
);
glEnd
();
glBegin
(
GL_QUADS
);
glTexCoord2f
(
0
.
0
,
0
.
0
);
glVertex3f
(
1
.
0
,
1
.
0
,
1
.
0
);
glTexCoord2f
(
0
.
0
,
(
float
)
p_vout
->
output
.
i_height
);
glVertex3f
(
1
.
0
,
-
1
.
0
,
1
.
0
);
glTexCoord2f
(
(
float
)
p_vout
->
output
.
i_width
,
(
float
)
p_vout
->
output
.
i_height
);
glVertex3f
(
1
.
0
,
-
1
.
0
,
-
1
.
0
);
glTexCoord2f
(
(
float
)
p_vout
->
output
.
i_width
,
0
.
0
);
glVertex3f
(
1
.
0
,
1
.
0
,
-
1
.
0
);
glEnd
();
glBegin
(
GL_QUADS
);
glTexCoord2f
(
0
.
0
,
0
.
0
);
glVertex3f
(
-
1
.
0
,
1
.
0
,
-
1
.
0
);
glTexCoord2f
(
0
.
0
,
(
float
)
p_vout
->
output
.
i_height
);
glVertex3f
(
-
1
.
0
,
1
.
0
,
1
.
0
);
glTexCoord2f
(
(
float
)
p_vout
->
output
.
i_width
,
(
float
)
p_vout
->
output
.
i_height
);
glVertex3f
(
1
.
0
,
1
.
0
,
1
.
0
);
glTexCoord2f
(
(
float
)
p_vout
->
output
.
i_width
,
0
.
0
);
glVertex3f
(
1
.
0
,
1
.
0
,
-
1
.
0
);
glEnd
();
glBegin
(
GL_QUADS
);
glTexCoord2f
(
0
.
0
,
0
.
0
);
glVertex3f
(
-
1
.
0
,
-
1
.
0
,
1
.
0
);
glTexCoord2f
(
0
.
0
,
(
float
)
p_vout
->
output
.
i_height
);
glVertex3f
(
-
1
.
0
,
-
1
.
0
,
-
1
.
0
);
glTexCoord2f
(
(
float
)
p_vout
->
output
.
i_width
,
(
float
)
p_vout
->
output
.
i_height
);
glVertex3f
(
1
.
0
,
-
1
.
0
,
-
1
.
0
);
glTexCoord2f
(
(
float
)
p_vout
->
output
.
i_width
,
0
.
0
);
glVertex3f
(
1
.
0
,
-
1
.
0
,
1
.
0
);
glEnd
();
}
-
(
void
)
drawRect
:
(
NSRect
)
rect
{
[[
self
openGLContext
]
makeCurrentContext
];
...
...
@@ -1409,23 +1531,17 @@ static void QTFreePicture( vout_thread_t *p_vout, picture_t *p_pic )
return
;
}
/* Draw
a quad with our texture on it
*/
/* Draw */
glBindTexture
(
GL_TEXTURE_RECTANGLE_EXT
,
i_texture
);
glBegin
(
GL_QUADS
);
/* Top left */
glTexCoord2f
(
0
.
0
,
0
.
0
);
glVertex2f
(
-
f_x
,
f_y
);
/* Bottom left */
glTexCoord2f
(
0
.
0
,
(
float
)
p_vout
->
output
.
i_height
);
glVertex2f
(
-
f_x
,
-
f_y
);
/* Bottom right */
glTexCoord2f
(
(
float
)
p_vout
->
output
.
i_width
,
(
float
)
p_vout
->
output
.
i_height
);
glVertex2f
(
f_x
,
-
f_y
);
/* Top right */
glTexCoord2f
(
(
float
)
p_vout
->
output
.
i_width
,
0
.
0
);
glVertex2f
(
f_x
,
f_y
);
glEnd
();
if
(
i_effect
==
OPENGL_EFFECT_CUBE
)
{
glRotatef
(
1
.
0
,
0
.
5
,
0
.
5
,
1
.
0
);
[
self
drawCube
];
}
else
{
[
self
drawQuad
];
}
/* Wait for the job to be done */
[[
self
openGLContext
]
flushBuffer
];
...
...
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