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