diff --git a/base/renderprogs/bink.pixel b/base/renderprogs/bink.pixel index 1fee8654..bc5913e2 100644 --- a/base/renderprogs/bink.pixel +++ b/base/renderprogs/bink.pixel @@ -54,7 +54,10 @@ void main( PS_IN fragment, out PS_OUT result ) { float3 p = ( YScalar * Y ); p += ( crc * Cr ) + ( crb * Cb ) + adj; - result.color.xyz = p; - result.color.w = 1.0; - result.color *= rpColor; + float4 color; + color.xyz = p; + color.w = 1.0; + color *= rpColor; + + result.color = sRGBAToLinearRGBA( color ); } \ No newline at end of file diff --git a/neo/renderer/RenderBackend.cpp b/neo/renderer/RenderBackend.cpp index 8c9ba3e8..bd2b23d9 100644 --- a/neo/renderer/RenderBackend.cpp +++ b/neo/renderer/RenderBackend.cpp @@ -576,12 +576,22 @@ void idRenderBackend::BindVariableStageImage( const textureStage_t* texture, con { GL_SelectTexture( 0 ); cin.imageY->Bind(); + GL_SelectTexture( 1 ); cin.imageCr->Bind(); + GL_SelectTexture( 2 ); cin.imageCb->Bind(); + // DG: imageY is only used for bink videos (with libbinkdec), so the bink shader must be used - renderProgManager.BindShader_Bink(); + if( viewDef->is2Dgui ) + { + renderProgManager.BindShader_BinkGUI(); + } + else + { + renderProgManager.BindShader_Bink(); + } } else if( cin.image != NULL ) {