Module: wine Branch: refs/heads/master Commit: eb527c82e232d4fe93d498715de9a8bce0e1f36e URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=eb527c82e232d4fe93d49871...
Author: Stefan Dösinger stefan@codeweavers.com Date: Wed Jul 5 18:35:21 2006 +0200
Add a common fps counter channel to ddraw, opengl and d3d.
---
dlls/wined3d/surface_gdi.c | 16 ++++++++++++++++ dlls/wined3d/swapchain.c | 6 +++--- dlls/winex11.drv/opengl.c | 16 ++++++++++++++++ 3 files changed, 35 insertions(+), 3 deletions(-)
diff --git a/dlls/wined3d/surface_gdi.c b/dlls/wined3d/surface_gdi.c index ddea727..bb07afa 100644 --- a/dlls/wined3d/surface_gdi.c +++ b/dlls/wined3d/surface_gdi.c @@ -34,6 +34,7 @@ #include <stdio.h>
/* Use the d3d_surface debug channel to have one channel for all surfaces */ WINE_DEFAULT_DEBUG_CHANNEL(d3d_surface); +WINE_DECLARE_DEBUG_CHANNEL(fps);
/***************************************************************************** * x11_copy_to_screen @@ -379,6 +380,21 @@ #endif /* Update the screen */ x11_copy_to_screen(This, NULL);
+ /* FPS support */ + if (TRACE_ON(fps)) + { + static long prev_time, frames; + + DWORD time = GetTickCount(); + frames++; + /* every 1.5 seconds */ + if (time - prev_time > 1500) { + TRACE_(fps)("@ approx %.2ffps\n", 1000.0*frames/(time - prev_time)); + prev_time = time; + frames = 0; + } + } + return WINED3D_OK; }
diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c index e7fd2b3..3585ee3 100644 --- a/dlls/wined3d/swapchain.c +++ b/dlls/wined3d/swapchain.c @@ -51,7 +51,7 @@ inline static Display *get_display( HDC
WINE_DEFAULT_DEBUG_CHANNEL(d3d); -WINE_DECLARE_DEBUG_CHANNEL(d3d_fps); +WINE_DECLARE_DEBUG_CHANNEL(fps);
/* IDirect3DSwapChain IUnknown parts follow: */ @@ -265,7 +265,7 @@ #endif
TRACE("glXSwapBuffers called, Starting new frame\n"); /* FPS support */ - if (TRACE_ON(d3d_fps)) + if (TRACE_ON(fps)) { static long prev_time, frames;
@@ -273,7 +273,7 @@ #endif frames++; /* every 1.5 seconds */ if (time - prev_time > 1500) { - TRACE_(d3d_fps)("@ approx %.2ffps\n", 1000.0*frames/(time - prev_time)); + TRACE_(fps)("@ approx %.2ffps\n", 1000.0*frames/(time - prev_time)); prev_time = time; frames = 0; } diff --git a/dlls/winex11.drv/opengl.c b/dlls/winex11.drv/opengl.c index 2fe6c9d..486f7db 100644 --- a/dlls/winex11.drv/opengl.c +++ b/dlls/winex11.drv/opengl.c @@ -30,6 +30,7 @@ #include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(wgl); WINE_DECLARE_DEBUG_CHANNEL(opengl); +WINE_DECLARE_DEBUG_CHANNEL(fps);
#if defined(HAVE_GL_GL_H) && defined(HAVE_GL_GLX_H)
@@ -593,6 +594,21 @@ BOOL X11DRV_SwapBuffers(X11DRV_PDEVICE * pglXSwapBuffers(gdi_display, drawable); wine_tsx11_unlock();
+ /* FPS support */ + if (TRACE_ON(fps)) + { + static long prev_time, frames; + + DWORD time = GetTickCount(); + frames++; + /* every 1.5 seconds */ + if (time - prev_time > 1500) { + TRACE_(fps)("@ approx %.2ffps\n", 1000.0*frames/(time - prev_time)); + prev_time = time; + frames = 0; + } + } + return TRUE; }