VSYNC und FPS
-
Hallo!
Gerade habe ich bemerkt: Mein FPS Counter funktioniert anscheinend.
Stelle ich die Bildwiederholungsfrequenz auf 60, habe ich 60FPS.
Stelle ich die Bildwiederholungsfrequenz auf 70, habe ich ~70FPS.Das Komische ist ja, meine Init()- Funktion sieht so aus:
[cpp]
HRESULT Hautpklasse::Init(const GLOBALS &g)
{D3DPRESENT_PARAMETERS pp;
pp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;D3DFORMAT d3dfmt;
if(g.fullScreen)
d3dfmt = D3DFMT_X8R8G8B8;
else
d3dfmt = D3DFMT_UNKNOWN;m_pD3D = Direct3DCreate9(D3D_SDK_VERSION);
m_PP.Windowed = !g.fullScreen;
m_PP.hDeviceWindow = hWnd;
m_PP.SwapEffect = D3DSWAPEFFECT_DISCARD;m_PP.EnableAutoDepthStencil = true;
m_PP.AutoDepthStencilFormat = D3DFMT_D16;m_PP.BackBufferFormat = d3dfmt;
m_PP.BackBufferWidth = GetSystemMetrics(SM_CXSCREEN);
m_PP.BackBufferHeight = GetSystemMetrics(SM_CYSCREEN);m_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, &m_PP, &m_pDevice);
D3DCOLORVALUE clr = { 1.0f, 1.0f, 1.0f, 1.0f };
D3DXMATRIX xmat;m_Material.Diffuse = clr;
m_Material.Ambient = clr;D3DXMatrixPerspectiveFovLH(&xmat, 0.8f, 1280/1024, 0.5f, 1000.0f);
m_pDevice->SetTransform(D3DTS_PROJECTION, &xmat);
m_pDevice->SetRenderState(D3DRS_AMBIENT,D3DCOLOR_XRGB(255,255,255));D3DXCreateTextureFromFile(m_pDevice, "texture.bmp", &m_pTexture);
D3DXCreateFont(m_pDevice, 50, 0, FW_BOLD, 1, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, g_strFont, &g_pFont);
CreateRect();
return S_OK;
}
[/cpp]Anscheinend ist VSYNC noch nicht deaktiviert, in den Windowseinstellungen habe ich aber: Anwendung verwaltet.

-
Zum Testen kannst du es auch einfach mal im Treiber überschreiben als deaktiviert und gucken was passiert
-
Hatte zwei Instanzen von D3DPRESENT_PARAMETERS erstellt -.-
Jetzt funzt es. Alle Fragen beantwortet, auch die übrigen Themen.