#include #include #include "utils.h" #include "Logger.h" #include "DXWindow.h" #include "Timer.h" #include "Geometry.h" #include "not_used/vertex_types.h" // FPS-mérés size_t gFrames = 0; void CB_FPSaux(eg3d::Timer *pTimer, const double *pTrigTimeElapsed, void *ptr) { // TODO képkockaidő és FPS kiszámítása; képkockaszámláló nullázása; eredmények kiírása double fps = gFrames / *pTrigTimeElapsed; gFrames = 0; LOG(std::to_string(1 / fps * 1000) + "ms, " + std::to_string(fps) + "FPS"); } using namespace eg3d; int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgs, int nWinMode) { eg3d::DXWindow win; // megjelenítés be, alapértelmezett window procedure használata win.setTitle("Keretszöveg"); // keretszöveg beállítása // TODO eseménykezelő létrehozása és ablakhoz rendelése // FPS-mérő callback-függvény regisztrálása TimerCallbackData timerCBData; timerCBData.callBackFn = CB_FPSaux; timerCBData.ptr = nullptr; gTmr1s.reg(timerCBData); std::vector vertices = { // vertexek { -0.5f, -0.5f, 1.0f }, { 0.5f, -0.5f, 1.0f }, { 0.0f, 0.98f, 1.0f }, }; std::vector indices = { 0, 2, 1 }; // indexek auto pGeo = std::shared_ptr(new Geometry(win.getDevice())); pGeo->setVertices(vertices); pGeo->setIndices(indices); auto pGeo2 = std::shared_ptr(new Geometry(win.getDevice())); pGeo2->loadBinarySTL("assets/crate.stl"); //drawables.push_back(pGeo2); //(*pGeo) += (*pGeo2); DrawablePool drawables; // geometriák halmaza drawables.push_back(pGeo); // pGeo geometria hozzáadása // ------------------------------------ MSG msg = { }; while (msg.message != WM_QUIT) { if (PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); } else { Sleep(15); win.Draw(drawables); // kirajzolás gFrames++; // képkockaszám léptetése } gTmr1s.tick(); } return msg.wParam; }