]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - ft2.c
fix a C++ error
[xonotic/darkplaces.git] / ft2.c
diff --git a/ft2.c b/ft2.c
index 4ec7ac9d5b223fc65c25759374fd1093765eca39..790f79989448d3afe650503a5dfb21a513f44ec8 100644 (file)
--- a/ft2.c
+++ b/ft2.c
@@ -290,7 +290,7 @@ ft2_font_t *Font_Alloc(void)
 {
        if (!ft2_dll)
                return NULL;
-       return Mem_Alloc(font_mempool, sizeof(ft2_font_t));
+       return (ft2_font_t *)Mem_Alloc(font_mempool, sizeof(ft2_font_t));
 }
 
 qboolean Font_Attach(ft2_font_t *font, ft2_attachment_t *attachment)
@@ -387,9 +387,13 @@ qboolean Font_LoadFont(const char *name, dp_font_t *dpfnt)
 
                if (!Font_LoadFile(dpfnt->fallbacks[i], dpfnt->fallback_faces[i], &dpfnt->settings, fb))
                {
-                       Con_Printf("Failed to allocate font for fallback %i of font %s\n", i, name);
+                       if(!FS_FileExists(va("%s.tga", dpfnt->fallbacks[i])))
+                       if(!FS_FileExists(va("%s.png", dpfnt->fallbacks[i])))
+                       if(!FS_FileExists(va("%s.jpg", dpfnt->fallbacks[i])))
+                       if(!FS_FileExists(va("%s.pcx", dpfnt->fallbacks[i])))
+                               Con_Printf("Failed to load font %s for fallback %i of font %s\n", dpfnt->fallbacks[i], i, name);
                        Mem_Free(fb);
-                       break;
+                       continue;
                }
                count = 0;
                for (s = 0; s < MAX_FONT_SIZES && dpfnt->req_sizes[s] >= 0; ++s)
@@ -528,7 +532,7 @@ static qboolean Font_LoadFile(const char *name, int _face, ft2_settings_t *setti
                args.flags = FT_OPEN_MEMORY;
                args.memory_base = (const FT_Byte*)font->attachments[i].data;
                args.memory_size = font->attachments[i].size;
-               if (qFT_Attach_Stream(font->face, &args))
+               if (qFT_Attach_Stream((FT_Face)font->face, &args))
                        Con_Printf("Failed to add attachment %u to %s\n", (unsigned)i, font->name);
        }
 
@@ -587,7 +591,7 @@ void Font_Postprocess_Update(ft2_font_t *fnt, int bpp, int w, int h)
                if(pp.buf)
                        Mem_Free(pp.buf);
                pp.bufsize = needed * 4;
-               pp.buf = Mem_Alloc(font_mempool, pp.bufsize);
+               pp.buf = (unsigned char *)Mem_Alloc(font_mempool, pp.bufsize);
                pp.buf2 = pp.buf + needed;
        }
 }
@@ -774,9 +778,9 @@ static qboolean Font_LoadSize(ft2_font_t *font, float size, qboolean check_only)
                        for (r = 0; r < 256; ++r)
                        {
                                FT_ULong ul, ur;
-                               ul = qFT_Get_Char_Index(font->face, l);
-                               ur = qFT_Get_Char_Index(font->face, r);
-                               if (qFT_Get_Kerning(font->face, ul, ur, FT_KERNING_DEFAULT, &kernvec))
+                               ul = qFT_Get_Char_Index((FT_Face)font->face, l);
+                               ur = qFT_Get_Char_Index((FT_Face)font->face, r);
+                               if (qFT_Get_Kerning((FT_Face)font->face, ul, ur, FT_KERNING_DEFAULT, &kernvec))
                                {
                                        fmap->kerning.kerning[l][r][0] = 0;
                                        fmap->kerning.kerning[l][r][1] = 0;
@@ -924,9 +928,9 @@ qboolean Font_GetKerningForMap(ft2_font_t *font, int map_index, float w, float h
                        Con_Printf("Failed to get kerning for %s\n", font->name);
                        return false;
                }
-               ul = qFT_Get_Char_Index(font->face, left);
-               ur = qFT_Get_Char_Index(font->face, right);
-               if (qFT_Get_Kerning(font->face, ul, ur, FT_KERNING_DEFAULT, &kernvec))
+               ul = qFT_Get_Char_Index((FT_Face)font->face, left);
+               ur = qFT_Get_Char_Index((FT_Face)font->face, right);
+               if (qFT_Get_Kerning((FT_Face)font->face, ul, ur, FT_KERNING_DEFAULT, &kernvec))
                {
                        if (outx) *outx = Font_SnapTo(kernvec.x * fmap->sfx, 1 / fmap->size);// * (w / (float)fmap->size);
                        if (outy) *outy = Font_SnapTo(kernvec.y * fmap->sfy, 1 / fmap->size);// * (h / (float)fmap->size);
@@ -963,7 +967,7 @@ void Font_UnloadFont(ft2_font_t *font)
 
        if (font->attachments && font->attachmentcount)
        {
-               for (i = 0; i < font->attachmentcount; ++i) {
+               for (i = 0; i < (int)font->attachmentcount; ++i) {
                        if (font->attachments[i].data)
                                Mem_Free(font->attachments[i].data);
                }
@@ -1121,7 +1125,7 @@ static qboolean Font_LoadMap(ft2_font_t *font, ft2_font_map_t *mapstart, Uchar _
                return false;
        }
 
-       map = Mem_Alloc(font_mempool, sizeof(ft2_font_map_t));
+       map = (ft2_font_map_t *)Mem_Alloc(font_mempool, sizeof(ft2_font_map_t));
        if (!map)
        {
                Con_Printf("ERROR: Out of memory when loading fontmap for %s\n", font->name);
@@ -1138,7 +1142,7 @@ static qboolean Font_LoadMap(ft2_font_t *font, ft2_font_map_t *mapstart, Uchar _
        map->sfy = mapstart->sfy;
 
        pitch = map->glyphSize * FONT_CHARS_PER_LINE * bytesPerPixel;
-       data = Mem_Alloc(font_mempool, (FONT_CHAR_LINES * map->glyphSize) * pitch);
+       data = (unsigned char *)Mem_Alloc(font_mempool, (FONT_CHAR_LINES * map->glyphSize) * pitch);
        if (!data)
        {
                Con_Printf("ERROR: Failed to allocate memory for font %s size %g\n", font->name, map->size);
@@ -1199,7 +1203,7 @@ static qboolean Font_LoadMap(ft2_font_t *font, ft2_font_map_t *mapstart, Uchar _
                imagedata += gpad_t * pitch + gpad_l * bytesPerPixel;
                //status = qFT_Load_Char(face, ch, FT_LOAD_RENDER);
                // we need the glyphIndex
-               face = font->face;
+               face = (FT_Face)font->face;
                usefont = NULL;
                if (font->image_font && mapch == ch && img_fontmap[mapch])
                {
@@ -1216,7 +1220,7 @@ static qboolean Font_LoadMap(ft2_font_t *font, ft2_font_map_t *mapstart, Uchar _
                                if (!Font_SetSize(usefont, mapstart->intSize, mapstart->intSize))
                                        continue;
                                // try that glyph
-                               face = usefont->face;
+                               face = (FT_Face)usefont->face;
                                glyphIndex = qFT_Get_Char_Index(face, ch);
                                if (glyphIndex == 0)
                                        continue;
@@ -1229,7 +1233,7 @@ static qboolean Font_LoadMap(ft2_font_t *font, ft2_font_map_t *mapstart, Uchar _
                        {
                                //Con_Printf("failed to load fallback glyph for char %lx from font %s\n", (unsigned long)ch, font->name);
                                // now we let it use the "missing-glyph"-glyph
-                               face = font->face;
+                               face = (FT_Face)font->face;
                                glyphIndex = 0;
                        }
                }
@@ -1237,7 +1241,7 @@ static qboolean Font_LoadMap(ft2_font_t *font, ft2_font_map_t *mapstart, Uchar _
                if (!usefont)
                {
                        usefont = font;
-                       face = font->face;
+                       face = (FT_Face)font->face;
                        status = qFT_Load_Glyph(face, glyphIndex, FT_LOAD_RENDER | load_flags);
                        if (status)
                        {