]> git.wh0rd.org Git - fontconfig.git/commitdiff
Generate FC_SIZE and FC_DPI for legacy bitmap fonts
authorJuliusz Chroboczek <Juliusz.Chroboczek@pps.jussieu.fr>
Mon, 12 May 2003 09:04:24 +0000 (09:04 +0000)
committerJuliusz Chroboczek <Juliusz.Chroboczek@pps.jussieu.fr>
Mon, 12 May 2003 09:04:24 +0000 (09:04 +0000)
src/fcfreetype.c

index 31da0c6e25828a2da4c6cbe46ae1dcaefb591fc3..4144294e152ca72cc7eb77e99bba5e6b94d6ef51 100644 (file)
@@ -978,6 +978,47 @@ FcFreeTypeQuery (const FcChar8     *file,
                goto bail1;
        if (!FcPatternAddBool (pat, FC_ANTIALIAS, FcFalse))
            goto bail1;
+#ifdef USE_FTBDF
+        if(face->num_fixed_sizes == 1) {
+            int rc;
+            int value;
+            BDF_PropertyRec prop;
+
+            rc = MY_Get_BDF_Property(face, "PIXEL_SIZE", &prop);
+            if(rc == 0 && prop.type == BDF_PROPERTY_TYPE_INTEGER)
+                value = prop.u.integer;
+            else if(rc == 0 && prop.type == BDF_PROPERTY_TYPE_CARDINAL)
+                value = prop.u.cardinal;
+            else
+                goto nevermind;
+            if(value != face->available_sizes[0].height)
+                /* ``impossible'' */
+                goto nevermind;
+
+            rc = MY_Get_BDF_Property(face, "POINT_SIZE", &prop);
+            if(rc == 0 && prop.type == BDF_PROPERTY_TYPE_INTEGER)
+                value = prop.u.integer;
+            else if(rc == 0 && prop.type == BDF_PROPERTY_TYPE_CARDINAL)
+                value = prop.u.cardinal;
+            else
+                goto nevermind;
+            if(!FcPatternAddDouble(pat, FC_SIZE, value / 10.0))
+                goto nevermind;
+
+            rc = MY_Get_BDF_Property(face, "RESOLUTION_Y", &prop);
+            if(rc == 0 && prop.type == BDF_PROPERTY_TYPE_INTEGER)
+                value = prop.u.integer;
+            else if(rc == 0 && prop.type == BDF_PROPERTY_TYPE_CARDINAL)
+                value = prop.u.cardinal;
+            else
+                goto nevermind;
+            if(!FcPatternAddDouble(pat, FC_DPI, (double)value))
+                goto nevermind;
+
+        }
+    nevermind:
+        ;
+#endif
     }
 
     /*