[Fontconfig-bugs] [Bug 71287] size specific design selection support in OS/2 table version 5

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Sun Dec 22 20:09:26 PST 2013


https://bugs.freedesktop.org/show_bug.cgi?id=71287

--- Comment #8 from Behdad Esfahbod <freedesktop at behdad.org> ---
+ lower_size = os2->usLowerOpticalPointSize / 20;
+ upper_size = os2->usUpperOpticalPointSize / 20;

Float division instead?


+ if (os2)
+ {
+ r = FcRangeCreateDouble (lower_size, upper_size);
+ if (!FcPatternAddRange (pat, FC_SIZE, r))

If the range is not available (either old os2 or that the range is
all-inclusive), then, NOT set size?  That would preserve most
backward-compatibility.


+ if (FcRangeIsInRange (r1, r2))
+ ret = 0.0;
+ else
+ ret = fabs (r1->u.d.end - r2->u.d.end);

This sounds wrong.  If not in-range, then we want min((r1.end - r2.start),
abs(r1.start - r2.end)).  No?


+FcRange *
+FcRangeEvaluate (FcOp op, const FcRange *left, const FcRange *right)
+{
+ FcRange *ret = NULL;
+ FcRange cl = FcRangeCanonicalize (left), cr = FcRangeCanonicalize (right);
+
+ switch ((int) op) {
+ case FcOpOr:
+ ret = FcRangeCreateDouble (FC_MIN (cl.u.d.begin, cr.u.d.begin),
+ FC_MAX (cl.u.d.end, cr.u.d.end));
+ break;
+ case FcOpAnd:
+ ret = FcRangeCreateDouble (FC_MAX (cl.u.d.begin, cr.u.d.begin),
+ FC_MIN (cl.u.d.end, cr.u.d.end));
+ break;
+ case FcOpPlus:
+ ret = FcRangeCreateDouble (cl.u.d.begin + cr.u.d.begin,
+ cl.u.d.end + cr.u.d.end);
+ break;
+ case FcOpMinus:
+ ret = FcRangeCreateDouble (cl.u.d.begin - cr.u.d.begin,
+ cl.u.d.end - cr.u.d.end);
+ break;
+ case FcOpTimes:
+ ret = FcRangeCreateDouble (cl.u.d.begin * cr.u.d.begin,
+ cl.u.d.end * cr.u.d.end);
+ break;
+ case FcOpDivide:
+ ret = FcRangeCreateDouble (cl.u.d.begin / cr.u.d.begin,
+ cl.u.d.end / cr.u.d.end);
+ break;

These don't make much sense.  I suppose we can initially not implement any of
these, and add as we need them.


I haven't done any testing or a full close review.  It's a bit unsettling how
much boilerplate changes we need for this.  But, again, thanks for working on
this.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/fontconfig-bugs/attachments/20131223/ce41f8ba/attachment.html>


More information about the Fontconfig-bugs mailing list