From 4e78e1c2da8bf51e846e096f39dfca28661ec501 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Mon, 26 May 2003 13:17:19 +0000 Subject: [PATCH] create the glft library. it will be using freetype and fontconfig to render fonts in GL. flesh out render2 a bit more.. actually just in comments --- Makefile.am | 2 +- configure.ac | 3 ++- glft/.cvsignore | 7 +++++++ glft/Makefile.am | 26 ++++++++++++++++++++++++++ glft/glft.h | 10 ++++++++++ glft/init.c | 6 ++++++ glft/test.c | 6 ++++++ render2/Makefile.am | 2 +- render2/instance.c | 30 ++++++++++++++++++++++++++++++ render2/instance.h | 4 ++-- render2/render.h | 2 ++ 11 files changed, 93 insertions(+), 5 deletions(-) create mode 100644 glft/.cvsignore create mode 100644 glft/Makefile.am create mode 100644 glft/glft.h create mode 100644 glft/init.c create mode 100644 glft/test.c diff --git a/Makefile.am b/Makefile.am index d2e92479..01ab3d72 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,4 +1,4 @@ -SUBDIRS = po themes data render render2 parser kernel plugins tools +SUBDIRS = po themes data render glft render2 parser kernel plugins tools MAINTAINERCLEANFILES = aclocal.m4 config.h.in configure Makefile.in stamp-h.in doc: diff --git a/configure.ac b/configure.ac index 480efb28..cbaf0d94 100644 --- a/configure.ac +++ b/configure.ac @@ -112,7 +112,8 @@ AC_CONFIG_FILES([Makefile po/Makefile.in themes/Makefile data/Makefile - render/Makefile + render/Makefile + glft/Makefile render2/Makefile parser/Makefile kernel/Makefile diff --git a/glft/.cvsignore b/glft/.cvsignore new file mode 100644 index 00000000..9b06cfc4 --- /dev/null +++ b/glft/.cvsignore @@ -0,0 +1,7 @@ +.libs +.deps +Makefile.in +Makefile +libglft.la +init.lo +glfttest diff --git a/glft/Makefile.am b/glft/Makefile.am new file mode 100644 index 00000000..56ea72a6 --- /dev/null +++ b/glft/Makefile.am @@ -0,0 +1,26 @@ +themedir=$(datadir)/openbox/themes + +theme=operation + +CPPFLAGS=$(FC_CFLAGS) $(GLIB_CFLAGS) $(GL_CFLAGS) @CPPFLAGS@ \ + -DG_LOG_DOMAIN=\"GlFt\" \ + -DDEFAULT_THEME=\"$(theme)\" \ + -DTHEMEDIR=\"$(themedir)\" + +INCLUDES=-I.. +LIBS=$(FC_LIBS) $(GLIB_LIBS) $(GL_LIBS) @LIBS@ + +noinst_PROGRAMS=glfttest +glfttest_LDFLAGS=-lglft -L. +glfttest_SOURCES=test.c + +lib_LTLIBRARIES=libglft.la +libglft_la_SOURCES=init.c + + +noinst_HEADERS=glft.h + +MAINTAINERCLEANFILES=Makefile.in + +distclean-local: + $(RM) *\~ *.orig *.rej .\#* diff --git a/glft/glft.h b/glft/glft.h new file mode 100644 index 00000000..2dd1377a --- /dev/null +++ b/glft/glft.h @@ -0,0 +1,10 @@ +#ifndef __glft_h__ +#define __glft_h__ + +#include + +struct GlftFont; + +FcBool GlftInit(); + +#endif diff --git a/glft/init.c b/glft/init.c new file mode 100644 index 00000000..1162172e --- /dev/null +++ b/glft/init.c @@ -0,0 +1,6 @@ +#include "glft.h" + +FcBool GlftInit() +{ + return FcInit(); +} diff --git a/glft/test.c b/glft/test.c new file mode 100644 index 00000000..9cf0c887 --- /dev/null +++ b/glft/test.c @@ -0,0 +1,6 @@ +#include "glft.h" + +int main() +{ + GlftInit(); +} diff --git a/render2/Makefile.am b/render2/Makefile.am index 8219a3c0..e5ff6960 100644 --- a/render2/Makefile.am +++ b/render2/Makefile.am @@ -8,7 +8,7 @@ CPPFLAGS=$(FC_CFLAGS) $(GLIB_CFLAGS) $(GL_CFLAGS) @CPPFLAGS@ \ -DTHEMEDIR=\"$(themedir)\" INCLUDES=-I.. -LIBS=$(FC_LIBS) $(GLIB_LIBS) $(GL_LIBS) @LIBS@ +LIBS=$(GLIB_LIBS) $(GL_LIBS) @LIBS@ noinst_PROGRAMS=rendertest rendertest_LDFLAGS=-lobrender2 -L. diff --git a/render2/instance.c b/render2/instance.c index 4acb036f..59ffbd45 100644 --- a/render2/instance.c +++ b/render2/instance.c @@ -1,6 +1,36 @@ #include "instance.h" #include +/* +void truecolor_startup(void) +{ + unsigned long red_mask, green_mask, blue_mask; + XImage *timage = NULL; + + timage = XCreateImage(ob_display, render_visual, render_depth, + ZPixmap, 0, NULL, 1, 1, 32, 0); + g_assert(timage != NULL); + /\* find the offsets for each color in the visual's masks *\/ + render_red_mask = red_mask = timage->red_mask; + render_green_mask = green_mask = timage->green_mask; + render_blue_mask = blue_mask = timage->blue_mask; + + render_red_offset = 0; + render_green_offset = 0; + render_blue_offset = 0; + + while (! (red_mask & 1)) { render_red_offset++; red_mask >>= 1; } + while (! (green_mask & 1)) { render_green_offset++; green_mask >>= 1; } + while (! (blue_mask & 1)) { render_blue_offset++; blue_mask >>= 1; } + + render_red_shift = render_green_shift = render_blue_shift = 8; + while (red_mask) { red_mask >>= 1; render_red_shift--; } + while (green_mask) { green_mask >>= 1; render_green_shift--; } + while (blue_mask) { blue_mask >>= 1; render_blue_shift--; } + XFree(timage); +} +*/ + struct RrInstance *RrInstanceNew(Display *display, int screen, XVisualInfo visinfo) diff --git a/render2/instance.h b/render2/instance.h index a27518c7..e386cc70 100644 --- a/render2/instance.h +++ b/render2/instance.h @@ -1,5 +1,5 @@ -#ifndef __instance_h -#define __instance_h +#ifndef __render_instance_h +#define __render_instance_h #include #include diff --git a/render2/render.h b/render2/render.h index 3eed8a7c..806f04e3 100644 --- a/render2/render.h +++ b/render2/render.h @@ -11,6 +11,8 @@ */ struct RrInstance; +struct RrRGB; +struct RrFont; /*! Returns a struct to be used when calling members of the library. If the library fails to initialize, NULL is returned. -- 2.34.1