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
|
// TODO konstansbuffer bekötése
|
||||||
|
|
||||||
////////// OBJEKTUMOK KIRAJZOLÁSA
|
////////// OBJEKTUMOK KIRAJZOLÁSA
|
||||||
drawObject();
|
//drawObject();
|
||||||
|
|
||||||
|
for (unsigned i = 0; i < drawables.size(); i++)
|
||||||
|
{
|
||||||
|
drawables[i]->draw(mCommandList);
|
||||||
|
}
|
||||||
|
|
||||||
// TODO drawables kirajzolása
|
// TODO drawables kirajzolása
|
||||||
|
|
||||||
@ -359,9 +364,9 @@ namespace eg3d {
|
|||||||
void DXWindow::initVertices()
|
void DXWindow::initVertices()
|
||||||
{
|
{
|
||||||
vertices = {
|
vertices = {
|
||||||
{ -0.5f, -0.5f, 0.1f },
|
{ -0.5f, -0.5f, 0.1f, 1.0f, 0.0f, 0.0f },
|
||||||
{ 0.5f, -0.5f, 0.1f },
|
{ 0.5f, -0.5f, 0.1f , 0.0f, 1.0f, 0.0f },
|
||||||
{ 0, 0.98f, 0.1f },
|
{ 0.0f, 0.98f, 0.1f, 0.0f, 0.0f, 1.0f },
|
||||||
};
|
};
|
||||||
|
|
||||||
indices = { 0, 2, 1 };
|
indices = { 0, 2, 1 };
|
||||||
@ -371,6 +376,7 @@ namespace eg3d {
|
|||||||
{
|
{
|
||||||
inputElements = {
|
inputElements = {
|
||||||
{"POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0},
|
{"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
|
// TODO további elemek létrehozása
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
struct Vertex
|
struct Vertex
|
||||||
{
|
{
|
||||||
float x, y, z;
|
float x, y, z;
|
||||||
|
float r, g, b;
|
||||||
};
|
};
|
||||||
|
|
||||||
// TODO konstansbuffer típus
|
// TODO konstansbuffer típus
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
struct VSInput // vertex shader bemeneti struktúra
|
struct VSInput // vertex shader bemeneti struktúra
|
||||||
{
|
{
|
||||||
float3 position_D : POSITION;
|
float3 position_D : POSITION;
|
||||||
|
float3 color : COLOR;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct VSOutput // vertex shader kimeneti struktúra
|
struct VSOutput // vertex shader kimeneti struktúra
|
||||||
@ -14,7 +15,7 @@ VSOutput vs_main(VSInput input)
|
|||||||
VSOutput output; // vertex shader kimenete
|
VSOutput output; // vertex shader kimenete
|
||||||
|
|
||||||
output.position_H = float4(input.position_D, 1.0);
|
output.position_H = float4(input.position_D, 1.0);
|
||||||
output.color = input.position_D;
|
output.color = input.color;
|
||||||
|
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
44
main.cpp
44
main.cpp
@ -15,6 +15,11 @@
|
|||||||
size_t gFrames = 0;
|
size_t gFrames = 0;
|
||||||
void CB_FPSaux(eg3d::Timer *pTimer, const double *pTrigTimeElapsed, void *ptr) {
|
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
|
// 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;
|
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
|
eg3d::DXWindow win; // megjelenítés be, alapértelmezett window procedure használata
|
||||||
win.setTitle("Keretszöveg"); // keretszöveg beállítása
|
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
|
// 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 = { };
|
MSG msg = { };
|
||||||
|
|
||||||
@ -36,12 +73,15 @@ int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszA
|
|||||||
DispatchMessage(&msg);
|
DispatchMessage(&msg);
|
||||||
} else
|
} 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
|
// TODO egy másodperces periódusidejű óra léptetése
|
||||||
|
gTmr1s.tick();
|
||||||
}
|
}
|
||||||
|
|
||||||
return msg.wParam;
|
return msg.wParam;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user