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