[vlc-devel] [PATCH 1/2] OpenGL: put in a new file the geometry building functions to reduce a bit the size of vout_helper.c
Adrien Maglo
magsoft at videolan.org
Mon Jul 31 17:27:07 CEST 2017
On 31/07/2017 17:13, Rémi Denis-Courmont wrote:
> Le maanantaina 31. heinäkuuta 2017, 16.30.19 EEST Adrien Maglo a écrit :
>> ---
>> modules/video_output/Makefile.am | 3 +-
>> modules/video_output/opengl/geometry.c | 296
>> ++++++++++++++++++++++++++++++ modules/video_output/opengl/geometry.h |
>> 49 +++++
>> modules/video_output/opengl/vout_helper.c | 271 +--------------------------
>> 4 files changed, 348 insertions(+), 271 deletions(-)
>> create mode 100644 modules/video_output/opengl/geometry.c
>> create mode 100644 modules/video_output/opengl/geometry.h
>>
>> diff --git a/modules/video_output/Makefile.am
>> b/modules/video_output/Makefile.am index 094a7f5025..274b79968c 100644
>> --- a/modules/video_output/Makefile.am
>> +++ b/modules/video_output/Makefile.am
>> @@ -8,7 +8,8 @@ OPENGL_COMMONLDFLAGS =
>> OPENGL_COMMONLIBS =
>> OPENGL_COMMONSOURCES = video_output/opengl/vout_helper.c \
>> video_output/opengl/vout_helper.h video_output/opengl/internal.h \
>> - video_output/opengl/converters.c
>> + video_output/opengl/converters.c video_output/opengl/geometry.h \
>> + video_output/opengl/geometry.c
>> if HAVE_ANDROID
>> OPENGL_COMMONSOURCES += video_output/opengl/converter_android.c
>> endif
>> diff --git a/modules/video_output/opengl/geometry.c
>> b/modules/video_output/opengl/geometry.c new file mode 100644
>> index 0000000000..09966a9ec9
>> --- /dev/null
>> +++ b/modules/video_output/opengl/geometry.c
>> @@ -0,0 +1,296 @@
>> +/**************************************************************************
>> *** + * geometry.c: OpenGL geometry builder
>> +
>> ***************************************************************************
>> ** + * Copyright (C) 2016 VLC authors and VideoLAN
>> + *
>> + * This program is free software; you can redistribute it and/or modify it
>> + * under the terms of the GNU Lesser General Public License as published by
>> + * the Free Software Foundation; either version 2.1 of the License, or + *
>> (at your option) any later version.
>> + *
>> + * This program is distributed in the hope that it will be useful,
>> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
>> + * GNU Lesser General Public License for more details.
>> + *
>> + * You should have received a copy of the GNU Lesser General Public License
>> + * along with this program; if not, write to the Free Software Foundation,
>> + * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. +
>> ***************************************************************************
>> **/ +#ifdef HAVE_CONFIG_H
>> +# include "config.h"
>> +#endif
>> +
>> +#include <math.h>
>> +
>> +#include "geometry.h"
>> +
>> +
>> +int BuildSphere(unsigned nbPlanes,
>> + GLfloat **vertexCoord, GLfloat **textureCoord, unsigned
>> *nbVertices, + GLushort **indices, unsigned *nbIndices,
>> + const float *left, const float *top,
>> + const float *right, const float *bottom)
>> +{
>
> Either use restrict, cache the values in local variables, or both.
I understand the remark about the use of restrict but I am not sure
about the cache.
These geometry building functions are called only if the video format
resolution or offset change. This should not happen often.
Best regards,
--
MagSoft
More information about the vlc-devel
mailing list