Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
![]() |
Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
//MessageLoop while(1){ //wenn eine nachricht eingegangen ist; diese verarbeiten if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)){ TranslateMessage(&msg); DispatchMessage(&msg); if (msg.message == WM_QUIT){ break; } }else{ //wenn das fenster minimiert wird oder den fokus sonst wie verliert, //nicht wieter machen if (GetFocus() != hwndMain){ Sleep(10); continue; } switch(gmeStatus){ //input & rendering zeugs } QueryPerformanceCounter((LARGE_INTEGER*)&nF); elapsed = (nF - lF); GAME::fps = (float)(((float)freq/(float)elapsed)); lF = nF; } } |
![]() |
Quellcode |
1 2 3 4 |
switch(gmeStatus){ ... default:return -5; } |
![]() |
C-/C++-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
#include <windows.h> #include "engine.h" #define CNAME "123ASD2" HWND hwndMain; WNDCLASS wnd; typedef unsigned int uint; LRESULT CALLBACK wproc(HWND hwnd, uint msg, WPARAM wparam, LPARAM lparam){ switch(msg){ case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc(hwnd, msg, wparam, lparam); } void initDevice(IDirect3DDevice9 *){ } int WINAPI WinMain(HINSTANCE hi1, HINSTANCE, LPSTR, int){ MSG msg = {0}; IDirect3D9 *d3d; IDirect3DDevice9 *device; D3DPRESENT_PARAMETERS param; LONGLONG freq, nF, lF; float fps; QueryPerformanceFrequency((LARGE_INTEGER*)&freq); wnd.lpfnWndProc = wproc; wnd.hInstance = GetModuleHandle(NULL) ; wnd.lpszClassName = CNAME; wnd.hbrBackground = GetSysColorBrush(COLOR_BTNFACE); RegisterClass(&wnd); hwndMain = CreateWindow(CNAME, "hallo", WS_OVERLAPPEDWINDOW, 100,100,500,420, NULL, NULL, wnd.hInstance, NULL); UpdateWindow(hwndMain); ShowWindow(hwndMain, SW_SHOWNORMAL); fillParamStd(hwndMain, 1280, 1024, 32, false, ¶m); d3d = Direct3DCreate9(D3D_SDK_VERSION); if (d3d->CreateDevice(0, D3DDEVTYPE_HAL, hwndMain, D3DCREATE_HARDWARE_VERTEXPROCESSING, ¶m, &device) != D3D_OK){ d3d->Release(); return -9; } int a,b,c,d; QueryPerformanceCounter((LARGE_INTEGER*)&lF); FILE *log = fopen("log.txt", "w"); while(msg.message != WM_QUIT){ while(PeekMessage(&msg, NULL, 0L, 0L, PM_REMOVE)){ DispatchMessage(&msg); } { QueryPerformanceCounter((LARGE_INTEGER*)&nF); if (nF-lF != 0){ fps = ((float)freq/(float)(nF - lF)); } a = device->Clear(0,0,D3DCLEAR_ZBUFFER|D3DCLEAR_TARGET|D3DCLEAR_STENCIL, 0xffffffff, 1.0f, 0L); b = device->BeginScene(); c = device->EndScene(); d = device->Present(0,0,0,0); fprintf(log, "%f %i %i %i %i\n", fps, a, b, c, d); lF = nF; } } fclose(log); device->Release(); d3d->Release(); return 0; } |
Zitat
der witz is, wenn ich fps konstant auf 60 setze, was eigentlich meine
framerate seien sollte, dann merk ich bei meinen bewegungen
nix von irgendwelchen schwankungen.
daraus schließe ich mal das es nicht wirklich zu so starken schwankungen
kommt sonst würde man doch sicher was merken oder...?
Werbeanzeige