aboutsummaryrefslogtreecommitdiffhomepage
path: root/video/out/gl_video.c
Commit message (Collapse)AuthorAge
...
| * Merge branch 'master' into low_quality_intel_crapGravatar wm42013-04-30
|/ | | | | | Conflicts: video/out/gl_video_shaders.glsl video/out/vo_opengl.c
* gl_video: remove double const qualifierGravatar Stefano Pigozzi2013-03-30
| | | | This fixes a warning when compiling with clang.
* gl_video: add some missing includesGravatar wm42013-03-30
| | | | On most platforms, they are recursively included, but not all.
* gl_video: actually fix shader compilation on OSXGravatar wm42013-03-28
| | | | | | | | | | | | | The previous attempt was missing some code paths, so there were still shaders generated that triggered the shader compilation error. Fix it instead by special handling USE_CONV in the shader. By the way, the shader compiler did not accept: #if defined(USE_CONV) && (USE_CONV == ...) In my opinion this should be perfectly fine, but it gives the same error as before. So test USE_CONV separately with #ifndef.
* gl_video: fix OSX by not using undefined name in GLSL "#if"Gravatar wm42013-03-28
| | | | | | | | | | | | | | | | | | | The OSX shader compiler was giving this error: ERROR: 0:235: '' : syntax error incorrect preprocessor directive on this line: [235] #if USE_CONV == CONV_PLANAR USE_CONV was undefined in some cases. The expected behavior is that the shader preprocessor interprets this as branch not taken (AFAIK exactly as in C), which is probably what the standard would dictate. This is possible an OSX bug. But admittedly, I'm not sure whether this is really standard behavior (in C or GLSL), and doing this is extremely weird at best, so make sure that USE_CONV is always defined. Should fix behavior on OSX.
* gl_video: use choice option type for dither-depth suboptionGravatar wm42013-03-28
| | | | | Replaces the numeric magic values -1 and 0 with "no" and "auto". The numeric values are still allowed for compatibility.
* gl_video: add some alpha FBO formatsGravatar wm42013-03-28
|
* vo_opengl: add alpha outputGravatar wm42013-03-28
| | | | | | | | | | | | | | | | | | | Allows playing video with alpha information on X11, as long as the video contains alpha and the window manager does compositing. See vo.rst. Whether a window can be transparent is decided by the choice of the X Visual used for window creation. Unfortunately, there's no direct way to request such a Visual through the GLX or the X API, and use of the XRender extension is required to find out whether a Visual implies a framebuffer with alpha used by XRender (see for example [1]). Instead of depending on the XRender wrapper library (which would require annoying configure checks, even though XRender is virtually always supported), use a simple heuristics to find out whether a Visual has alpha. Since getting it wrong just means an optional feature will not work as expected, we consider this ok. [1] http://stackoverflow.com/questions/4052940/how-to-make-an-opengl- rendering-context-with-transparent-background/9215724#9215724
* gl_video: always upload all planesGravatar wm42013-03-28
| | | | | | | When displaying YUV with alpha plane (an extremely rare special case), we didn't upload the alpha plane, because we don't do anything with it. This actually created some annoying special cases, so upload the alpha planes as well, even if they're unused.
* gl_video: support NV21 tooGravatar wm42013-03-28
|
* gl_video: add support for NV12Gravatar wm42013-03-28
| | | | | There's really no reason for this, but it feels nice being able to support a weird pixel format.
* gl_video: make it possible for planes to have different formatsGravatar wm42013-03-28
| | | | | | Preparation for NV12 support. Also adds support for IMGFMT_YA8.
* gl_video: move video image fields into a structGravatar wm42013-03-28
| | | | | | This is a bit cleaner. Also don't repeat the chroma shift calculations over and over, but store the image size instead, which is simpler and will give us a chance to fix display of non-mod-2 image sizes.
* vo_opengl: split into multiple files, convert to new option APIGravatar wm42013-03-28
gl_video.c contains all rendering code, gl_lcms.c the .icc loader and creation of 3D LUT (and all LittleCMS specific code). vo_opengl.c is reduced to interfacing between the various parts.