X-Git-Url: http://git.mutantstargoat.com?a=blobdiff_plain;f=src%2Ftext.cc;h=7dbae5d31195acbfe85c923c5e3407bbbcd5e1e8;hb=9261ecb0ad85bdf8b21e17b7309ddaeb76a57d96;hp=b79e6f83d0815c506175177bc7275e17d5060517;hpb=5984d5479693fd7519674a5bc40ebf804f8d0a46;p=winnie diff --git a/src/text.cc b/src/text.cc index b79e6f8..7dbae5d 100644 --- a/src/text.cc +++ b/src/text.cc @@ -1,8 +1,31 @@ +/* +winnie - an experimental window system + +Copyright (C) 2013 Eleni Maria Stea + +This program 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. + +This program 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 this program. If not, see . + +Author: Eleni Maria Stea +*/ + #include #include #include "gfx.h" +#include "shalloc.h" #include "text.h" +#include "winnie.h" #define DPI 72 #define FONT_PATH "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono.ttf" @@ -17,14 +40,16 @@ struct Text { int text_color[3]; }; -Text *text; +static Text *text; bool init_text() { - if(!(text = (Text*)malloc(sizeof *text))) { + if(!(text = (Text*)sh_malloc(sizeof *text))) { return false; } + get_subsys()->text_offset = (int)((char*)text - (char*)get_pool()); + if(FT_Init_FreeType(&text->ft_lib)) { fprintf(stderr, "Failed to initialize the FreeType library!\n"); return false; @@ -45,6 +70,11 @@ bool init_text() return true; } +void destroy_text() +{ + sh_free(text); +} + void draw_text(const char *txt, Pixmap *pixmap) { if(!pixmap) {