projects
/
xscreensaver
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
From http://www.jwz.org/xscreensaver/xscreensaver-5.38.tar.gz
[xscreensaver]
/
hacks
/
fps.c
diff --git
a/hacks/fps.c
b/hacks/fps.c
index 8a63ccff7fbabdd119fda1b0c55697d3f9c808e0..38bdbf6a2fdf12a7e3808f0e6229001afc4c2131 100644
(file)
--- a/
hacks/fps.c
+++ b/
hacks/fps.c
@@
-1,4
+1,4
@@
-/* fps, Copyright (c) 2001-201
1
Jamie Zawinski <jwz@jwz.org>
+/* fps, Copyright (c) 2001-201
7
Jamie Zawinski <jwz@jwz.org>
* Draw a frames-per-second display (Xlib and OpenGL).
*
* Permission to use, copy, modify, distribute, and sell this software and its
* Draw a frames-per-second display (Xlib and OpenGL).
*
* Permission to use, copy, modify, distribute, and sell this software and its
@@
-14,6
+14,7
@@
# include "config.h"
#endif /* HAVE_CONFIG_H */
# include "config.h"
#endif /* HAVE_CONFIG_H */
+#include <time.h>
#include "screenhackI.h"
#include "fpsI.h"
#include "screenhackI.h"
#include "fpsI.h"
@@
-23,10
+24,16
@@
fps_init (Display *dpy, Window window)
fps_state *st;
const char *font;
XFontStruct *f;
fps_state *st;
const char *font;
XFontStruct *f;
+ Bool top_p;
+ XWindowAttributes xgwa;
if (! get_boolean_resource (dpy, "doFPS", "DoFPS"))
return 0;
if (! get_boolean_resource (dpy, "doFPS", "DoFPS"))
return 0;
+ if (!strcasecmp (progname, "BSOD")) return 0; /* Never worked right */
+
+ top_p = get_boolean_resource (dpy, "fpsTop", "FPSTop");
+
st = (fps_state *) calloc (1, sizeof(*st));
st->dpy = dpy;
st = (fps_state *) calloc (1, sizeof(*st));
st->dpy = dpy;
@@
-35,12
+42,12
@@
fps_init (Display *dpy, Window window)
font = get_string_resource (dpy, "fpsFont", "Font");
font = get_string_resource (dpy, "fpsFont", "Font");
- if (!font) font = "-*-courier-bold-r-normal-*-180-*";
+ if (!font)
+ font = "-*-courier-bold-r-normal-*-*-180-*-*-*-*-*-*"; /* also texfont.c */
f = XLoadQueryFont (dpy, font);
if (!f) f = XLoadQueryFont (dpy, "fixed");
{
f = XLoadQueryFont (dpy, font);
if (!f) f = XLoadQueryFont (dpy, "fixed");
{
- XWindowAttributes xgwa;
XGCValues gcv;
XGetWindowAttributes (dpy, window, &xgwa);
gcv.font = f->fid;
XGCValues gcv;
XGetWindowAttributes (dpy, window, &xgwa);
gcv.font = f->fid;
@@
-55,9
+62,20
@@
fps_init (Display *dpy, Window window)
st->font = f;
st->x = 10;
st->y = 10;
st->font = f;
st->x = 10;
st->y = 10;
- if (
get_boolean_resource (dpy, "fpsTop", "FPSTop")
)
+ if (
top_p
)
st->y = - (st->font->ascent + st->font->descent + 10);
st->y = - (st->font->ascent + st->font->descent + 10);
+# ifdef USE_IPHONE
+ /* Don't hide the FPS display under the iPhone X bezel.
+ #### This is the worst of all possible ways to do this! But how else?
+ */
+ if (xgwa.width == 2436 || xgwa.height == 2436)
+ {
+ st->x += 48;
+ st->y += 48 * (top_p ? -1 : 1);
+ }
+# endif
+
strcpy (st->string, "FPS: ... ");
return st;
strcpy (st->string, "FPS: ... ");
return st;
@@
-152,7
+170,7
@@
fps_compute (fps_state *st, unsigned long polys, double depth)
if (depth >= 0.0)
{
if (depth >= 0.0)
{
-
int
L = strlen (st->string);
+
unsigned long
L = strlen (st->string);
char *s = st->string + L;
strcat (s, "\nDepth: ");
sprintf (s + strlen(s), "%.1f", depth);
char *s = st->string + L;
strcat (s, "\nDepth: ");
sprintf (s + strlen(s), "%.1f", depth);
@@
-198,7
+216,7
@@
string_width (XFontStruct *f, const char *c, int *height_ret)
}
}
-/* This function is used only in Xlib mode. For GL mode, see glx/fps-gl
x
.c.
+/* This function is used only in Xlib mode. For GL mode, see glx/fps-gl.c.
*/
void
fps_draw (fps_state *st)
*/
void
fps_draw (fps_state *st)
@@
-241,7
+259,7
@@
fps_draw (fps_state *st)
s = strchr (string, '\n');
if (! s) s = string + strlen(string);
XDrawString (st->dpy, st->window, st->draw_gc,
s = strchr (string, '\n');
if (! s) s = string + strlen(string);
XDrawString (st->dpy, st->window, st->draw_gc,
- x, y, string,
s - string
);
+ x, y, string,
(int) (s - string)
);
string = s;
string++;
lines--;
string = s;
string++;
lines--;