[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