]> git.rm.cloudns.org Git - xonotic/netradiant.git/commitdiff
pango font stuff: remove reference to a deprectaed pango interface from the new ZeroR...
authorRudolf Polzer <divVerent@xonotic.org>
Thu, 18 Nov 2010 11:55:49 +0000 (12:55 +0100)
committerRudolf Polzer <divVerent@xonotic.org>
Thu, 18 Nov 2010 11:55:49 +0000 (12:55 +0100)
Makefile
libs/gtkutil/glfont.cpp

index bb2f743c7e766672425ec614fc6b01484e9ec6b1..564a3c97f89d2050189fb9fbc5a2dd3a2e84da60 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -68,6 +68,9 @@ LIBS_PNG           ?= $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKGCONFIG) li
 CPPFLAGS_GTK       ?= $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKGCONFIG) gtk+-2.0 --cflags $(STDERR_TO_DEVNULL))
 LIBS_GTK           ?= $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKGCONFIG) gtk+-2.0 --libs-only-L $(STDERR_TO_DEVNULL)) \
                       $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKGCONFIG) gtk+-2.0 --libs-only-l $(STDERR_TO_DEVNULL))
+CPPFLAGS_PANGOFT2  ?= $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKGCONFIG) pangoft2 --cflags $(STDERR_TO_DEVNULL))
+LIBS_PANGOFT2      ?= $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKGCONFIG) pangoft2 --libs-only-L $(STDERR_TO_DEVNULL)) \
+                      $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKGCONFIG) pangoft2 --libs-only-l $(STDERR_TO_DEVNULL))
 CPPFLAGS_GTKGLEXT  ?= $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKGCONFIG) gtkglext-1.0 --cflags $(STDERR_TO_DEVNULL))
 LIBS_GTKGLEXT      ?= $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKGCONFIG) gtkglext-1.0 --libs-only-L $(STDERR_TO_DEVNULL)) \
                       $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKGCONFIG) gtkglext-1.0 --libs-only-l $(STDERR_TO_DEVNULL))
@@ -320,6 +323,7 @@ dependencies-check:
        checkheader libpng12-dev png.h png_create_read_struct "$(CPPFLAGS_PNG)" "$(LIBS_PNG)"; \
        checkheader "mesa-common-dev (or another OpenGL library)" GL/gl.h glClear "$(CPPFLAGS_GL)" "$(LIBS_GL)"; \
        checkheader libgtk2.0-dev gtk/gtkdialog.h gtk_dialog_run "$(CPPFLAGS_GTK)" "$(LIBS_GTK)"; \
+       checkheader libpango1.0-dev pango/pangoft2.h pango_ft2_font_map_new "$(CPPFLAGS_PANGOFT2)" "$(LIBS_PANGOFT2)"; \
        checkheader libgtkglext1-dev gtk/gtkglwidget.h gtk_widget_get_gl_context "$(CPPFLAGS_GTKGLEXT)" "$(LIBS_GTKGLEXT)"; \
        [ "$(OS)" != "Win32" ] && checkheader libc6-dev dlfcn.h dlopen "$(CPPFLAGS_DL)" "$(LIBS_DL)"; \
        checkheader zlib1g-dev zlib.h zlibVersion "$(CPPFLAGS_ZLIB)" "$(LIBS_ZLIB)"; \
@@ -544,8 +548,8 @@ $(INSTALLDIR)/q3data.$(EXE): \
        $(if $(findstring $(OS),Win32),icons/q3data.o,) \
 
 $(INSTALLDIR)/radiant.$(EXE): LDFLAGS_EXTRA := $(MWINDOWS)
-$(INSTALLDIR)/radiant.$(EXE): LIBS_EXTRA := $(LIBS_GL) $(LIBS_DL) $(LIBS_XML) $(LIBS_GLIB) $(LIBS_GTK) $(LIBS_GTKGLEXT) $(LIBS_ZLIB)
-$(INSTALLDIR)/radiant.$(EXE): CPPFLAGS_EXTRA := $(CPPFLAGS_GL) $(CPPFLAGS_DL) $(CPPFLAGS_XML) $(CPPFLAGS_GLIB) $(CPPFLAGS_GTK) $(CPPFLAGS_GTKGLEXT) -Ilibs -Iinclude
+$(INSTALLDIR)/radiant.$(EXE): LIBS_EXTRA := $(LIBS_GL) $(LIBS_DL) $(LIBS_XML) $(LIBS_GLIB) $(LIBS_GTK) $(LIBS_GTKGLEXT) $(LIBS_ZLIB) $(LIBS_PANGOFT2)
+$(INSTALLDIR)/radiant.$(EXE): CPPFLAGS_EXTRA := $(CPPFLAGS_GL) $(CPPFLAGS_DL) $(CPPFLAGS_XML) $(CPPFLAGS_GLIB) $(CPPFLAGS_GTK) $(CPPFLAGS_GTKGLEXT) $(CPPFLAGS_PANGOFT2) -Ilibs -Iinclude
 $(INSTALLDIR)/radiant.$(EXE): \
        radiant/autosave.o \
        radiant/brushmanip.o \
@@ -645,7 +649,7 @@ libprofile.$(A): \
        libs/profile/file.o \
        libs/profile/profile.o \
 
-libgtkutil.$(A): CPPFLAGS_EXTRA := $(CPPFLAGS_GLIB) $(CPPFLAGS_GTK) $(CPPFLAGS_GTKGLEXT) -Ilibs -Iinclude
+libgtkutil.$(A): CPPFLAGS_EXTRA := $(CPPFLAGS_GLIB) $(CPPFLAGS_GTK) $(CPPFLAGS_GTKGLEXT) $(CPPFLAGS_PANGOFT2) -Ilibs -Iinclude
 libgtkutil.$(A): \
        libs/gtkutil/accelerator.o \
        libs/gtkutil/button.o \
index 962f3fe9aa14041cf2264ee17c1a504bc8b4681d..f2095a8bf73783acb4f2fab5f313638f14279633 100644 (file)
@@ -163,6 +163,7 @@ void glfont_release(GLFont& font)
 // new font code ripped from ZeroRadiant (not in use yet)
 
 #include <pango/pangoft2.h>
+#include <pango/pango-utils.h>
 #include "igl.h"
 
 class GLFontInternal
@@ -173,9 +174,10 @@ class GLFontInternal
        int font_descent;
        int y_offset_bitmap_render_pango_units;
        PangoContext *ft2_context;
+       PangoFontMap *fontmap;
 
        public:
-       GLFontInternal(const char *_font_string): font_string(font_string)
+       GLFontInternal(const char *_font_string): font_string(_font_string)
        {
                PangoFontDescription *font_desc;
                PangoLayout *layout;
@@ -183,12 +185,16 @@ class GLFontInternal
                int font_ascent_pango_units;
                int font_descent_pango_units;
 
-               // This call is deprecated so we'll have to fix it sometime.
-               ft2_context = pango_ft2_get_context(72, 72);
+               //ft2_context = pango_ft2_get_context(72, 72);
+               fontmap = pango_ft2_font_map_new();
+               pango_ft2_font_map_set_resolution(PANGO_FT2_FONT_MAP(fontmap), 72, 72);
+               ft2_context = pango_font_map_create_context(fontmap);
 
                font_desc = pango_font_description_from_string(font_string);
+               //pango_font_description_set_size(font_desc, 10 * PANGO_SCALE);
                pango_context_set_font_description(ft2_context, font_desc);
                pango_font_description_free(font_desc);
+               // TODO fallback to fixed 8, courier new 8
 
                layout = pango_layout_new(ft2_context);
 #if !PANGO_VERSION_CHECK(1,22,0)
@@ -212,6 +218,7 @@ class GLFontInternal
        ~GLFontInternal()
        {
                g_object_unref(G_OBJECT(ft2_context));
+               g_object_unref(G_OBJECT(fontmap));
        }
 
        // Renders the input text at the current location with the current color.