diff options
author | Chia-I Wu <[email protected]> | 2013-08-28 11:40:05 +0800 |
---|---|---|
committer | Chia-I Wu <[email protected]> | 2013-09-02 11:42:58 +0800 |
commit | da33347131ff88a3b7979aea2031ce6f34319ed0 (patch) | |
tree | a71c8bc85f469537fb22b9900885b4b81f7b0a92 /src | |
parent | b8211ab3edb1bb9f414e8b4913609f48326e202e (diff) |
glx: make the interval of LIBGL_SHOW_FPS adjustable
LIBGL_SHOW_FPS=1 makes GLX print FPS every second while other values do
nothing. Extend it so that LIBGL_SHOW_FPS=N will print the FPS every N
seconds.
Signed-off-by: Chia-I Wu <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/glx/dri2_glx.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c index c54edacab5b..54fc21cdfcc 100644 --- a/src/glx/dri2_glx.c +++ b/src/glx/dri2_glx.c @@ -95,7 +95,7 @@ struct dri2_screen { void *driver; int fd; - Bool show_fps; + int show_fps_interval; }; struct dri2_context @@ -764,6 +764,8 @@ unsigned dri2GetSwapEventType(Display* dpy, XID drawable) static void show_fps(struct dri2_drawable *draw) { + const int interval = + ((struct dri2_screen *) draw->base.psc)->show_fps_interval; struct timeval tv; uint64_t current_time; @@ -772,7 +774,7 @@ static void show_fps(struct dri2_drawable *draw) draw->frames++; - if (draw->previous_time + 1000000 <= current_time) { + if (draw->previous_time + interval * 1000000 <= current_time) { if (draw->previous_time) { fprintf(stderr, "libGL: FPS = %.1f\n", ((uint64_t)draw->frames * 1000000) / @@ -859,7 +861,7 @@ dri2SwapBuffers(__GLXDRIdrawable *pdraw, int64_t target_msc, int64_t divisor, target_msc, divisor, remainder); } - if (psc->show_fps) { + if (psc->show_fps_interval) { show_fps(priv); } @@ -1283,7 +1285,9 @@ dri2CreateScreen(int screen, struct glx_display * priv) free(deviceName); tmp = getenv("LIBGL_SHOW_FPS"); - psc->show_fps = tmp && strcmp(tmp, "1") == 0; + psc->show_fps_interval = (tmp) ? atoi(tmp) : 0; + if (psc->show_fps_interval < 0) + psc->show_fps_interval = 0; return &psc->base; |