diff options
Diffstat (limited to 'xicc/xcam.c')
-rw-r--r-- | xicc/xcam.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/xicc/xcam.c b/xicc/xcam.c index 99f3c67..8e1a0cd 100644 --- a/xicc/xcam.c +++ b/xicc/xcam.c @@ -23,7 +23,7 @@ static void icx_cam_free(icxcam *s); static int icx_set_view(icxcam *s, ViewingCondition Ev, double Wxyz[3], - double La, double Yb, double Lv, double Yf, double Fxyz[3], + double La, double Yb, double Lv, double Yf, double Yg, double Gxyz[3], int hk); static int icx_XYZ_to_cam(struct _icxcam *s, double Jab[3], double XYZ[3]); static int icx_cam_to_XYZ(struct _icxcam *s, double XYZ[3], double Jab[3]); @@ -61,8 +61,8 @@ icxcam *new_icxcam(icxCAM which) { } /* Initialise methods */ - s->del = icx_cam_free; - s->set_view = icx_set_view; + s->del = icx_cam_free; + s->set_view = icx_set_view; s->XYZ_to_cam = icx_XYZ_to_cam; s->cam_to_XYZ = icx_cam_to_XYZ; s->settrace = settrace; @@ -126,7 +126,8 @@ double Yb, /* Relative Luminance of Background to reference white */ double Lv, /* Luminance of white in the Viewing/Scene/Image field (cd/m^2) */ /* Ignored if Ev is set to other than vc_none */ double Yf, /* Flare as a fraction of the reference white (Y range 0.0 .. 1.0) */ -double Fxyz[3], /* The Flare white coordinates (typically the Ambient color) */ +double Yg, /* Glare as a fraction of the ambient (Y range 0.0 .. 1.0) */ +double Gxyz[3], /* The Glare white coordinates (typically the Ambient color) */ int hk /* Flag, NZ to use Helmholtz-Kohlraush effect */ ) { s->Wxyz[0] = Wxyz[0]; @@ -136,11 +137,11 @@ int hk /* Flag, NZ to use Helmholtz-Kohlraush effect */ switch(s->tag) { case cam_CIECAM97s3: { cam97s3 *pp = (cam97s3 *)s->p; - return pp->set_view(pp, Ev, Wxyz, La, Yb, Lv, Yf, Fxyz, hk); + return pp->set_view(pp, Ev, Wxyz, La, Yb, Lv, 0.2 * Yg, Gxyz, hk); } case cam_CIECAM02: { cam02 *pp = (cam02 *)s->p; - return pp->set_view(pp, Ev, Wxyz, La, Yb, Lv, Yf, Fxyz, hk); + return pp->set_view(pp, Ev, Wxyz, La, Yb, Lv, Yf, Yg, Gxyz, hk); } default: break; |