FPS-mérő és Geometry kész
This commit is contained in:
parent
a4db2bba43
commit
fd61e60226
14
DXWindow.cpp
14
DXWindow.cpp
@ -288,7 +288,12 @@ namespace eg3d {
|
||||
// TODO konstansbuffer bekötése
|
||||
|
||||
////////// OBJEKTUMOK KIRAJZOLÁSA
|
||||
drawObject();
|
||||
//drawObject();
|
||||
|
||||
for (unsigned i = 0; i < drawables.size(); i++)
|
||||
{
|
||||
drawables[i]->draw(mCommandList);
|
||||
}
|
||||
|
||||
// TODO drawables kirajzolása
|
||||
|
||||
@ -359,9 +364,9 @@ namespace eg3d {
|
||||
void DXWindow::initVertices()
|
||||
{
|
||||
vertices = {
|
||||
{ -0.5f, -0.5f, 0.1f },
|
||||
{ 0.5f, -0.5f, 0.1f },
|
||||
{ 0, 0.98f, 0.1f },
|
||||
{ -0.5f, -0.5f, 0.1f, 1.0f, 0.0f, 0.0f },
|
||||
{ 0.5f, -0.5f, 0.1f , 0.0f, 1.0f, 0.0f },
|
||||
{ 0.0f, 0.98f, 0.1f, 0.0f, 0.0f, 1.0f },
|
||||
};
|
||||
|
||||
indices = { 0, 2, 1 };
|
||||
@ -371,6 +376,7 @@ namespace eg3d {
|
||||
{
|
||||
inputElements = {
|
||||
{"POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0},
|
||||
{"COLOR", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 12, D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0}
|
||||
// TODO további elemek létrehozása
|
||||
};
|
||||
}
|
||||
|
@ -18,6 +18,7 @@
|
||||
struct Vertex
|
||||
{
|
||||
float x, y, z;
|
||||
float r, g, b;
|
||||
};
|
||||
|
||||
// TODO konstansbuffer típus
|
||||
|
@ -1,6 +1,7 @@
|
||||
struct VSInput // vertex shader bemeneti struktúra
|
||||
{
|
||||
float3 position_D : POSITION;
|
||||
float3 color : COLOR;
|
||||
};
|
||||
|
||||
struct VSOutput // vertex shader kimeneti struktúra
|
||||
@ -14,7 +15,7 @@ VSOutput vs_main(VSInput input)
|
||||
VSOutput output; // vertex shader kimenete
|
||||
|
||||
output.position_H = float4(input.position_D, 1.0);
|
||||
output.color = input.position_D;
|
||||
output.color = input.color;
|
||||
|
||||
return output;
|
||||
}
|
||||
|
44
main.cpp
44
main.cpp
@ -15,6 +15,11 @@
|
||||
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;
|
||||
@ -24,7 +29,39 @@ int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszA
|
||||
eg3d::DXWindow win; // megjelenítés be, alapértelmezett window procedure használata
|
||||
win.setTitle("Keretszöveg"); // keretszöveg beállítása
|
||||
|
||||
// FPS-mérő callback-függvény regisztrálása
|
||||
TimerCallbackData timerCBData;
|
||||
timerCBData.callBackFn = CB_FPSaux;
|
||||
timerCBData.ptr = nullptr;
|
||||
gTmr1s.reg(timerCBData);
|
||||
|
||||
// TODO geometria és pool létrehozása
|
||||
std::vector<Vertex> vertices = { // vertexek
|
||||
{ -0.5f, -0.5f, 0.1f, 1.0f, 0.0f, 0.0f },
|
||||
{ 0.5f, -0.5f, 0.1f , 0.0f, 1.0f, 0.0f },
|
||||
{ 0.0f, 0.98f, 0.1f, 0.0f, 0.0f, 1.0f },
|
||||
};
|
||||
|
||||
std::vector<uint32_t> indices = { 0, 2, 1 }; // indexek
|
||||
|
||||
auto pGeo = std::shared_ptr<Geometry<Vertex>>(new Geometry<Vertex>(win.getDevice()));
|
||||
pGeo->setVertices(vertices);
|
||||
pGeo->setIndices(indices);
|
||||
|
||||
DrawablePool drawables; // geometriák halmaza
|
||||
drawables.push_back(pGeo); // pGeo geometria hozzáadása
|
||||
|
||||
vertices = { // vertexek
|
||||
{ -0.3f, -0.5f, 0.05f, 1.0f, 0.2f, 0.0f },
|
||||
{ 0.3f, -0.5f, 0.05f , 0.2f, 1.0f, 0.0f },
|
||||
{ 0.0f, 0.7f, 0.05f, 0.0f, 0.2f, 1.0f },
|
||||
};
|
||||
|
||||
auto pGeo2 = std::shared_ptr<Geometry<Vertex>>(new Geometry<Vertex>(win.getDevice()));
|
||||
pGeo2->setVertices(vertices);
|
||||
pGeo2->setIndices(indices);
|
||||
|
||||
drawables.push_back(pGeo2);
|
||||
|
||||
MSG msg = { };
|
||||
|
||||
@ -36,12 +73,15 @@ int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszA
|
||||
DispatchMessage(&msg);
|
||||
} else
|
||||
{
|
||||
Sleep(50);
|
||||
Sleep(15);
|
||||
|
||||
win.Draw(DrawablePool());
|
||||
win.Draw(drawables); // kirajzolás
|
||||
|
||||
gFrames++; // képkockaszám léptetése
|
||||
}
|
||||
|
||||
// TODO egy másodperces periódusidejű óra léptetése
|
||||
gTmr1s.tick();
|
||||
}
|
||||
|
||||
return msg.wParam;
|
||||
|
Loading…
x
Reference in New Issue
Block a user