diff --git a/app/resources.qrc b/app/resources.qrc index 7d8cc9dc..8046a379 100644 --- a/app/resources.qrc +++ b/app/resources.qrc @@ -84,11 +84,9 @@ SDL_GameControllerDB/gamecontrollerdb.txt ModeSeven.ttf shaders/egl_nv12.frag - shaders/egl_nv12.vert shaders/egl_opaque.frag - shaders/egl_opaque.vert shaders/egl_overlay.frag - shaders/egl_overlay.vert + shaders/egl.vert shaders/d3d11_vertex.fxc shaders/d3d11_overlay_pixel.fxc shaders/d3d11_yuv420_pixel.fxc diff --git a/app/shaders/egl_overlay.vert b/app/shaders/egl.vert similarity index 98% rename from app/shaders/egl_overlay.vert rename to app/shaders/egl.vert index c51b547a..128b34f7 100644 --- a/app/shaders/egl_overlay.vert +++ b/app/shaders/egl.vert @@ -5,4 +5,4 @@ varying vec2 vTexCoord; void main() { vTexCoord = aTexCoord; gl_Position = vec4(aPosition, 0, 1); -} +} \ No newline at end of file diff --git a/app/shaders/egl_nv12.frag b/app/shaders/egl_nv12.frag index 66d3a6cd..193b84d4 100644 --- a/app/shaders/egl_nv12.frag +++ b/app/shaders/egl_nv12.frag @@ -1,9 +1,7 @@ -#version 300 es #extension GL_OES_EGL_image_external : require precision mediump float; -out vec4 FragColor; -in vec2 vTextCoord; +varying vec2 vTexCoord; uniform mat3 yuvmat; uniform vec3 offset; @@ -12,11 +10,11 @@ uniform samplerExternalOES plane1; uniform samplerExternalOES plane2; void main() { - vec3 YCbCr = vec3( - texture2D(plane1, vTextCoord)[0], - texture2D(plane2, vTextCoord + chromaOffset).xy - ); + vec3 YCbCr = vec3( + texture2D(plane1, vTexCoord)[0], + texture2D(plane2, vTexCoord + chromaOffset).xy + ); - YCbCr -= offset; - FragColor = vec4(clamp(yuvmat * YCbCr, 0.0, 1.0), 1.0f); + YCbCr -= offset; + gl_FragColor = vec4(clamp(yuvmat * YCbCr, 0.0, 1.0), 1.0f); } diff --git a/app/shaders/egl_nv12.vert b/app/shaders/egl_nv12.vert deleted file mode 100644 index bf0848d9..00000000 --- a/app/shaders/egl_nv12.vert +++ /dev/null @@ -1,10 +0,0 @@ -#version 300 es - -layout (location = 0) in vec2 aPosition; // 2D: X,Y -layout (location = 1) in vec2 aTexCoord; -out vec2 vTextCoord; - -void main() { - vTextCoord = aTexCoord; - gl_Position = vec4(aPosition, 0, 1); -} diff --git a/app/shaders/egl_opaque.frag b/app/shaders/egl_opaque.frag index 3c462657..8ddd1c95 100644 --- a/app/shaders/egl_opaque.frag +++ b/app/shaders/egl_opaque.frag @@ -1,12 +1,10 @@ -#version 300 es #extension GL_OES_EGL_image_external : require precision mediump float; -out vec4 FragColor; -in vec2 vTextCoord; +varying vec2 vTexCoord; uniform samplerExternalOES uTexture; void main() { - FragColor = texture2D(uTexture, vTextCoord); + gl_FragColor = texture2D(uTexture, vTexCoord); } diff --git a/app/shaders/egl_opaque.vert b/app/shaders/egl_opaque.vert deleted file mode 100644 index bf0848d9..00000000 --- a/app/shaders/egl_opaque.vert +++ /dev/null @@ -1,10 +0,0 @@ -#version 300 es - -layout (location = 0) in vec2 aPosition; // 2D: X,Y -layout (location = 1) in vec2 aTexCoord; -out vec2 vTextCoord; - -void main() { - vTextCoord = aTexCoord; - gl_Position = vec4(aPosition, 0, 1); -} diff --git a/app/shaders/egl_overlay.frag b/app/shaders/egl_overlay.frag index 1c5539db..7b3f080e 100644 --- a/app/shaders/egl_overlay.frag +++ b/app/shaders/egl_overlay.frag @@ -1,4 +1,5 @@ precision mediump float; + uniform sampler2D uTexture; varying vec2 vTexCoord; diff --git a/app/streaming/video/ffmpeg-renderers/eglvid.cpp b/app/streaming/video/ffmpeg-renderers/eglvid.cpp index 69ede9e9..5b006177 100644 --- a/app/streaming/video/ffmpeg-renderers/eglvid.cpp +++ b/app/streaming/video/ffmpeg-renderers/eglvid.cpp @@ -351,7 +351,7 @@ bool EGLRenderer::compileShaders() { // XXX: TODO: other formats if (m_EGLImagePixelFormat == AV_PIX_FMT_NV12 || m_EGLImagePixelFormat == AV_PIX_FMT_P010) { - m_ShaderProgram = compileShader("egl_nv12.vert", "egl_nv12.frag"); + m_ShaderProgram = compileShader("egl.vert", "egl_nv12.frag"); if (!m_ShaderProgram) { return false; } @@ -369,7 +369,7 @@ bool EGLRenderer::compileShaders() { glUseProgram(0); } else if (m_EGLImagePixelFormat == AV_PIX_FMT_DRM_PRIME) { - m_ShaderProgram = compileShader("egl_opaque.vert", "egl_opaque.frag"); + m_ShaderProgram = compileShader("egl.vert", "egl_opaque.frag"); if (!m_ShaderProgram) { return false; } @@ -389,7 +389,7 @@ bool EGLRenderer::compileShaders() { return false; } - m_OverlayShaderProgram = compileShader("egl_overlay.vert", "egl_overlay.frag"); + m_OverlayShaderProgram = compileShader("egl.vert", "egl_overlay.frag"); if (!m_OverlayShaderProgram) { return false; }