Commits on Source (18)
-
Only glBindTexture is used from the interop code, so remove the dependency from the vtable in vlc_gl_api_t altogether. The rationale for removing vlc_gl_api_t is that interop implementations are already required to load specific function for most of them (like the eglCreateImageKHR function) and having vlc_gl_api_t in the public module API require exposing the OpenGL vtable and types to the public scope, which is pretty ard to justify and port/maintain for every platform.
326dba18 -
interop and picture_t definition are not needed in the header.
c1195653 -
config.h is ought to be included in source files, not headers.
0803976a -
This removes the dependency from the vtable in vlc_gl_api_t.
fc2e04da -
The surface type doesn't matter, especially since initialization for X11 is done by the decoder device now. All that matter is that the extension is available for the given context, providing access to the vdpau interop functions from this context.
f575cb60 -
This removes the dependency from the vtable in vlc_gl_api_t, for future removal of the api from the interop API.
b42d8e9e -
This removes the dependency from the vtable in vlc_gl_api_t, for future removal of the api from the interop API.
f4b2bfd1 -
d1d33406
-
69bea27b
-
Checking an extension is different between OpenGL compatibility profile or ES2 profile, and OpenGL core profile. Separating the call in a different function simplify the handling of those extension checks, and provides better compatibility with the core profile.
b8ad7a78 -
This improves compatibility with the core profile for OpenGL and removes usage of the extension field from vlc_gl_api_t, to remove dependency from the interop to the vlc_gl_api_t.
1235aa62 -
The API type is already available in the vlc_gl_t object.
daa14ec5 -
Directly load the function in the call. This is not very pretty, but much easier to write than storing the pointer in a private part of the importer.
b66ef9ed -
Allocate a private part for the interop containing the actual OpenGL vtable used by the interop "core" code.
64d4415f -
Avoid using vlc_gl_api_t to determine whether npot are usable or not and directly inline the same check from gl_api.c.
7648af6e -
The implementations are now independant of the vlc_gl_api_t structure and the OpenGL virtual table. The rationale for removing vlc_gl_api_t is that interop implementations are already required to load specific function for most of them (like the eglCreateImageKHR function) and having vlc_gl_api_t in the public module API require exposing the OpenGL vtable and types to the public scope, which is pretty ard to justify and port/maintain for every platform.
562ba66c -
Create an header file containing the interop definition and operations, so that the entrypoint can also be implemented out-of-tree and doesn't depend on code from the modules/ directory.
a3803e96 -
We don't depend on OpenGL types for the signature anymore.
5a010800
Showing
- include/vlc_opengl.h 2 additions, 0 deletionsinclude/vlc_opengl.h
- include/vlc_opengl_interop.h 161 additions, 0 deletionsinclude/vlc_opengl_interop.h
- modules/hw/nvdec/nvdec_gl.c 27 additions, 8 deletionsmodules/hw/nvdec/nvdec_gl.c
- modules/video_filter/opengl.c 1 addition, 1 deletionmodules/video_filter/opengl.c
- modules/video_output/opengl/importer.c 11 additions, 5 deletionsmodules/video_output/opengl/importer.c
- modules/video_output/opengl/importer.h 2 additions, 6 deletionsmodules/video_output/opengl/importer.h
- modules/video_output/opengl/interop.c 75 additions, 37 deletionsmodules/video_output/opengl/interop.c
- modules/video_output/opengl/interop.h 6 additions, 144 deletionsmodules/video_output/opengl/interop.h
- modules/video_output/opengl/interop_android.c 22 additions, 9 deletionsmodules/video_output/opengl/interop_android.c
- modules/video_output/opengl/interop_cvpx.m 28 additions, 12 deletionsmodules/video_output/opengl/interop_cvpx.m
- modules/video_output/opengl/interop_dxva2.c 4 additions, 4 deletionsmodules/video_output/opengl/interop_dxva2.c
- modules/video_output/opengl/interop_sw.c 78 additions, 45 deletionsmodules/video_output/opengl/interop_sw.c
- modules/video_output/opengl/interop_vaapi.c 15 additions, 5 deletionsmodules/video_output/opengl/interop_vaapi.c
- modules/video_output/opengl/interop_vdpau.c 12 additions, 6 deletionsmodules/video_output/opengl/interop_vdpau.c
- modules/video_output/opengl/vout_helper.c 2 additions, 2 deletionsmodules/video_output/opengl/vout_helper.c
- src/Makefile.am 1 addition, 0 deletionssrc/Makefile.am
- src/libvlccore.sym 1 addition, 0 deletionssrc/libvlccore.sym
- src/video_output/opengl.c 74 additions, 0 deletionssrc/video_output/opengl.c
include/vlc_opengl_interop.h
0 → 100644