Commits on Source (10)
-
Like in the D3D11 implementation, any OpenGL implementation and especially those coming from the user might ask a specific rendering orientation to remove the need to rotate the image after it has been done by the renderer. In particular, the libvlc output callback allows any orientation to be supplied by the user, but was currently ignored in release and was asserting in debug because it didn't support that. This commit changes the definition and usage of the opengl (offscreen) providers to expose a format instead. It is now also exposed for on-screen implementations also.
a64afdae -
Add a function to initialize the viewpoint from the given orientation, allowing to transform it into a 4x4 orientation matrix afterwards.
65f7d23b -
The orientation represent a property of the display, ie. how the display has been rotated and flipped. Forwarding this property to the filters will allow them to rotate the frames in the opposite direction to ensure the rendering intent is respected in the end.
a7ad2897 -
Copy the surface orientation property from the vlc_gl_t provider and store it inside the opengl filters object at initialization. The parameter is then forwarded only for the last filter into the rendering metadatas, allowing this filter to enforce the final rendering of the frame with the correct orientation.
679e734e -
Refactor the picture place function into a separate function, and manipulate the format when the orientation is different from ORIENT_NORMAL to place the picture correctly.
92424de6 -
Use the orientation parameter from the rendering metadatas to generate an orientation matrix and supply it to the shader. The orientation will be applied after everything.
ec5dcb2c -
Now that the whole OpenGL pipeline supports orientation, we can accept orientation direction that are not ORIENT_NORMAL, making the assertion obsolete.
c3bdc43d -
Provide a sane configuration by default, in particular so that it doesn't assert when the vgl update callback is failing.
15e0923f -
When updateCb() fails, the result was ignored and vgl continued to Open() as normal in release mode, and was even asserting on debug before. This split the Resize() function (which cannot return errors) into a different ResizeInternal() function with an error return value, to be called from the Open() instead of the .resize() callback.
6cdf61b6 -
1d17c9b5
Showing
- include/vlc_es.h 3 additions, 0 deletionsinclude/vlc_es.h
- include/vlc_opengl.h 6 additions, 3 deletionsinclude/vlc_opengl.h
- include/vlc_opengl_filter.h 1 addition, 0 deletionsinclude/vlc_opengl_filter.h
- modules/video_filter/egl_pbuffer.c 1 addition, 1 deletionmodules/video_filter/egl_pbuffer.c
- modules/video_filter/opengl.c 13 additions, 13 deletionsmodules/video_filter/opengl.c
- modules/video_output/apple/VLCCVOpenGLProvider.m 1 addition, 1 deletionmodules/video_output/apple/VLCCVOpenGLProvider.m
- modules/video_output/opengl/display.c 42 additions, 10 deletionsmodules/video_output/opengl/display.c
- modules/video_output/opengl/filters.c 8 additions, 1 deletionmodules/video_output/opengl/filters.c
- modules/video_output/opengl/filters.h 2 additions, 1 deletionmodules/video_output/opengl/filters.h
- modules/video_output/opengl/renderer.c 14 additions, 1 deletionmodules/video_output/opengl/renderer.c
- modules/video_output/opengl/renderer.h 1 addition, 0 deletionsmodules/video_output/opengl/renderer.h
- modules/video_output/opengl/vout_helper.c 1 addition, 1 deletionmodules/video_output/opengl/vout_helper.c
- modules/video_output/vgl.c 32 additions, 6 deletionsmodules/video_output/vgl.c
- src/libvlccore.sym 1 addition, 0 deletionssrc/libvlccore.sym
- src/misc/viewpoint.c 34 additions, 0 deletionssrc/misc/viewpoint.c
- src/video_output/opengl.c 2 additions, 1 deletionsrc/video_output/opengl.c