From 5df07dbf538d951275a23206fac3c0b9b0a2b27b Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Tue, 03 Aug 2021 16:55:06 -0400 Subject: ttf: Rename to widget --- (limited to 'src/ttf.c') diff --git a/src/ttf.c b/src/ttf.c deleted file mode 100644 index 2bc24cf..0000000 --- a/src/ttf.c +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (C) 2021 P. J. McDermott - * - * This file is part of Maze Fight - * - * Maze Fight is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Maze Fight is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Maze Fight. If not, see . - */ - -#include -#include -#include -#include "ttf.h" - -SDL_Texture * -mf_ttf_render(TTF_Font *font, const char *text, SDL_Color *color, - SDL_Renderer *renderer, SDL_Rect *rect) -{ - SDL_Surface *surface; - SDL_Texture *texture; - int line_skip; - int ascent; - int max_y; - const char *c; - int glyph_max_y; - - surface = TTF_RenderUTF8_Blended(font, text, *color); - if (surface == NULL) { - SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, - "Couldn't create surface: %s", - TTF_GetError()); - return NULL; - } - - texture = SDL_CreateTextureFromSurface(renderer, surface); - if (texture == NULL) { - SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, - "Couldn't create texture: %s", - SDL_GetError()); - SDL_FreeSurface(surface); - return NULL; - } - - line_skip = TTF_FontLineSkip(font); - ascent = TTF_FontAscent (font); - max_y = 0; - for (c = text; *c != '\0'; ++c) { - if (TTF_GlyphMetrics(font, *c, NULL, NULL, NULL, &glyph_max_y, - NULL) < 0) { - SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, - "Couldn't get glyph metrics: %s", - SDL_GetError()); - continue; - } - if (glyph_max_y > max_y) { - max_y = glyph_max_y; - } - } - rect->x = 0; - rect->y = (line_skip - ascent) / 2 + (ascent - max_y); - rect->w = surface->w; - rect->h = surface->h; - - SDL_FreeSurface(surface); - - return texture; -} -- cgit v0.9.1