From http://www.jwz.org/xscreensaver/xscreensaver-5.31.tar.gz
[xscreensaver] / hacks / glx / glxfonts.c
diff --git a/hacks/glx/glxfonts.c b/hacks/glx/glxfonts.c
deleted file mode 100644 (file)
index 1519006..0000000
+++ /dev/null
@@ -1,237 +0,0 @@
-/* glxfonts, Copyright (c) 2001-2014 Jamie Zawinski <jwz@jwz.org>
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation.  No representations are made about the suitability of this
- * software for any purpose.  It is provided "as is" without express or 
- * implied warranty.
- *
- * Draws 2D text over the GL scene, e.g., the FPS displays.
- * Also billboarding.
- * The lower-level character rendering code is in texfont.c.
- */
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <ctype.h>
-
-#ifdef HAVE_COCOA
-# include "jwxyz.h"
-/*# include <AGL/agl.h>*/
-#else
-# include <GL/glx.h>
-# include <GL/glu.h>
-#endif
-
-#ifdef HAVE_JWZGLES
-# include "jwzgles.h"
-#endif /* HAVE_JWZGLES */
-
-#include "resources.h"
-#include "glxfonts.h"
-#include "texfont.h"
-#include "fps.h"
-
-
-/* These are in xlock-gl.c */
-extern void clear_gl_error (void);
-extern void check_gl_error (const char *type);
-
-/* screenhack.h */
-extern char *progname;
-
-
-#undef DEBUG  /* Defining this causes check_gl_error() to be called inside
-                 time-critical sections, which could slow things down (since
-                 it might result in a round-trip, and stall of the pipeline.)
-               */
-
-#undef countof
-#define countof(x) (sizeof((x))/sizeof((*x)))
-
-
-/* Draws the string on the window at the given pixel position.
-   Newlines and tab stops are honored.
-   Any numbers inside [] will be rendered as a subscript.
-   Assumes the font has been loaded as with load_texture_font().
-
-   If width and height are 0, then instead the text is placed
-   into the 3D scene at the origin, billboarded to face the
-   viewer.
- */
-void
-print_gl_string (Display *dpy,
-                 texture_font_data *data,
-                 int window_width, int window_height,
-                 GLfloat x, GLfloat y,
-                 const char *string,
-                 Bool clear_background_p)
-{
-  Bool in_scene_p = (window_width == 0);
-
-  int line_height = 0;
-  int lines = 0;
-  const char *c;
-  GLfloat color[4];
-
-  Bool tex_p   = glIsEnabled (GL_TEXTURE_2D);
-  Bool texs_p  = glIsEnabled (GL_TEXTURE_GEN_S);
-  Bool text_p  = glIsEnabled (GL_TEXTURE_GEN_T);
-  Bool light_p = glIsEnabled (GL_LIGHTING);
-  Bool blend_p = glIsEnabled (GL_BLEND);
-  Bool depth_p = glIsEnabled (GL_DEPTH_TEST);
-  Bool cull_p  = glIsEnabled (GL_CULL_FACE);
-  Bool fog_p   = glIsEnabled (GL_FOG);
-  GLint oblend;
-  GLint ovp[4];
-
-#  ifndef HAVE_JWZGLES
-  GLint opoly[2];
-  glGetIntegerv (GL_POLYGON_MODE, opoly);
-#  endif
-
-  if (!in_scene_p)
-    glGetIntegerv (GL_VIEWPORT, ovp);
-
-  glGetIntegerv (GL_BLEND_DST, &oblend);
-  glGetFloatv (GL_CURRENT_COLOR, color);
-
-  for (c = string; *c; c++)
-    if (*c == '\n') lines++;
-
-  texture_string_width (data, "m", &line_height);
-  y -= line_height;
-
-
-  glEnable (GL_TEXTURE_2D);
-  glEnable (GL_BLEND);
-  glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-  glPolygonMode (GL_FRONT, GL_FILL);
-
-  glDisable (GL_TEXTURE_GEN_S);
-  glDisable (GL_TEXTURE_GEN_T);
-  glDisable (GL_LIGHTING);
-  glDisable (GL_CULL_FACE);
-  glDisable (GL_FOG);
-
-  if (!in_scene_p)
-    glDisable (GL_DEPTH_TEST);
-
-  /* Each matrix mode has its own stack, so we need to push/pop
-     them separately.
-   */
-  glMatrixMode(GL_PROJECTION);
-  glPushMatrix();
-  {
-# ifdef DEBUG
-    check_gl_error ("glPushMatrix");
-# endif
-    if (!in_scene_p)
-      glLoadIdentity();
-
-    glMatrixMode(GL_MODELVIEW);
-    glPushMatrix();
-    {
-# ifdef DEBUG
-      check_gl_error ("glPushMatrix");
-# endif
-
-      if (!in_scene_p)
-        {
-          int rot = (int) current_device_rotation();
-          while (rot <= -180) rot += 360;
-          while (rot >   180) rot -= 360;
-
-          glLoadIdentity();
-          glViewport (0, 0, window_width, window_height);
-          glOrtho (0, window_width, 0, window_height, -1, 1);
-
-          if (rot > 135 || rot < -135)         /* 180 */
-            {
-              glTranslatef (window_width, window_height, 0);
-              glRotatef (180, 0, 0, 1);
-            }
-          else if (rot > 45)                   /* 90 */
-            {
-              glTranslatef (window_width, 0, 0);
-              glRotatef (90, 0, 0, 1);
-            }
-          else if (rot < -45)                  /* 270 */
-            {
-              glTranslatef(0, window_height, 0);
-              glRotatef (-90, 0, 0, 1);
-            }
-        }
-
-# ifdef DEBUG
-      check_gl_error ("glOrtho");
-# endif
-
-      /* Let's always dropshadow the FPS and Title text. */
-      if (! in_scene_p)
-        clear_background_p = True;
-
-
-      /* draw the text */
-
-      glTranslatef (x, y, 0);
-
-      {
-        const XPoint offsets[] = {{ -1, -1 },
-                                  { -1,  1 },
-                                  {  1,  1 },
-                                  {  1, -1 },
-                                  {  0,  0 }};
-        int i;
-
-        glColor3f (0, 0, 0);
-        for (i = 0; i < countof(offsets); i++)
-          {
-            if (! clear_background_p)
-              i = countof(offsets)-1;
-            if (offsets[i].x == 0)
-              glColor4fv (color);
-
-            glPushMatrix();
-            glTranslatef (offsets[i].x, offsets[i].y, 0);
-            print_texture_string (data, string);
-            glPopMatrix();
-          }
-      }
-
-# ifdef DEBUG
-      check_gl_error ("print_texture_string");
-# endif
-    }
-    glPopMatrix();
-  }
-  glMatrixMode(GL_PROJECTION);
-  glPopMatrix();
-
-  if (tex_p)   glEnable (GL_TEXTURE_2D); else glDisable (GL_TEXTURE_2D);
-  if (texs_p)  glEnable (GL_TEXTURE_GEN_S);/*else glDisable(GL_TEXTURE_GEN_S);*/
-  if (text_p)  glEnable (GL_TEXTURE_GEN_T);/*else glDisable(GL_TEXTURE_GEN_T);*/
-  if (blend_p) glEnable (GL_BLEND); else glDisable (GL_BLEND);
-  if (light_p) glEnable (GL_LIGHTING); /*else glDisable (GL_LIGHTING);*/
-  if (depth_p) glEnable (GL_DEPTH_TEST); else glDisable (GL_DEPTH_TEST);
-  if (cull_p)  glEnable (GL_CULL_FACE); /*else glDisable (GL_CULL_FACE);*/
-  if (fog_p)   glEnable (GL_FOG); /*else glDisable (GL_FOG);*/
-
-  if (!in_scene_p)
-    glViewport (ovp[0], ovp[1], ovp[2], ovp[3]);
-
-  glBlendFunc (GL_SRC_ALPHA, oblend);
-
-# ifndef HAVE_JWZGLES
-  glPolygonMode (GL_FRONT, opoly[0]);
-# endif
-
-  glMatrixMode(GL_MODELVIEW);
-}