@ -124,10 +124,14 @@ float3 yuv2rgb(float y, float u, float v) {
float3 yuv2lrgb ( float3 yuv ) {
float3 yuv2lrgb ( float3 yuv ) {
float3 rgb = yuv2rgb ( yuv.x, yuv.y, yuv.z ) ;
float3 rgb = yuv2rgb ( yuv.x, yuv.y, yuv.z ) ;
# ifdef linearize
float r = linearize ( rgb.x ) ;
float r = linearize ( rgb.x ) ;
float g = linearize ( rgb.y ) ;
float g = linearize ( rgb.y ) ;
float b = linearize ( rgb.z ) ;
float b = linearize ( rgb.z ) ;
return ( float3 ) ( r, g, b ) ;
return ( float3 ) ( r, g, b ) ;
# else
return rgb ;
# endif
}
}
float3 rgb2yuv ( float r, float g, float b ) {
float3 rgb2yuv ( float r, float g, float b ) {
@ -151,19 +155,25 @@ float rgb2y(float r, float g, float b) {
}
}
float3 lrgb2yuv ( float3 c ) {
float3 lrgb2yuv ( float3 c ) {
# ifdef delinearize
float r = delinearize ( c.x ) ;
float r = delinearize ( c.x ) ;
float g = delinearize ( c.y ) ;
float g = delinearize ( c.y ) ;
float b = delinearize ( c.z ) ;
float b = delinearize ( c.z ) ;
return rgb2yuv ( r, g, b ) ;
return rgb2yuv ( r, g, b ) ;
# else
return rgb2yuv ( c.x, c.y, c.z ) ;
# endif
}
}
float lrgb2y ( float3 c ) {
float lrgb2y ( float3 c ) {
# ifdef delinearize
float r = delinearize ( c.x ) ;
float r = delinearize ( c.x ) ;
float g = delinearize ( c.y ) ;
float g = delinearize ( c.y ) ;
float b = delinearize ( c.z ) ;
float b = delinearize ( c.z ) ;
return rgb2y ( r, g, b ) ;
return rgb2y ( r, g, b ) ;
# else
return rgb2y ( c.x, c.y, c.z ) ;
# endif
}
}
float3 lrgb2lrgb ( float3 c ) {
float3 lrgb2lrgb ( float3 c ) {