Kezdeti állapot
This commit is contained in:
		
							parent
							
								
									fd61e60226
								
							
						
					
					
						commit
						da7145cc9e
					
				@ -3,6 +3,6 @@ project(WinApi)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
set(CMAKE_CXX_STANDARD 14)
 | 
					set(CMAKE_CXX_STANDARD 14)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_executable(WinApi WIN32 main.cpp d3dx12.h DXWindow.cpp DXWindow.h Logger.cpp Logger.h utils.cpp utils.h Window.cpp Window.h Timer.cpp Timer.h IDrawable.h Geometry.h)
 | 
					add_executable(WinApi WIN32 main.cpp d3dx12.h DXWindow.cpp DXWindow.h Logger.cpp Logger.h utils.cpp utils.h Window.cpp Window.h Timer.cpp Timer.h IDrawable.h Geometry.h EventHandler.cpp EventHandler.h)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
target_link_libraries(WinApi d3d12.lib dxgi.lib dxguid.lib d3dcompiler.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib)
 | 
					target_link_libraries(WinApi d3d12.lib dxgi.lib dxguid.lib d3dcompiler.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib)
 | 
				
			||||||
							
								
								
									
										17
									
								
								EventHandler.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								EventHandler.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					//
 | 
				
			||||||
 | 
					// Created by Epagris on 2020. 03. 01..
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "EventHandler.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					eg3d::EventHandler::EventHandler() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int eg3d::EventHandler::processEvent(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {
 | 
				
			||||||
 | 
					    // TODO eseménykezelés megvalósítása
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // switch().....
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										13
									
								
								EventHandler.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								EventHandler.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <Windows.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace eg3d {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    class EventHandler {
 | 
				
			||||||
 | 
					    public:
 | 
				
			||||||
 | 
					        EventHandler(); // konstr.
 | 
				
			||||||
 | 
					        int processEvent(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam); // esemény feldolgozása (0 -> feldolgozva, 1 -> nincs feldolgozva)
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -93,6 +93,10 @@ namespace eg3d {
 | 
				
			|||||||
            return mTopology;
 | 
					            return mTopology;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        void loadFromFile(const std::string& fileName) {
 | 
				
			||||||
 | 
					            // TODO Epagrisnak: Assimpot le kell fordítani mindenkinek!
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // input assembler beállítása
 | 
					        // input assembler beállítása
 | 
				
			||||||
        void setupInputAssembler(ComPtr<ID3D12GraphicsCommandList> commandList) const {
 | 
					        void setupInputAssembler(ComPtr<ID3D12GraphicsCommandList> commandList) const {
 | 
				
			||||||
            commandList->IASetVertexBuffers(0, 1, &mVertexBufferView);
 | 
					            commandList->IASetVertexBuffers(0, 1, &mVertexBufferView);
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										20
									
								
								Window.cpp
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								Window.cpp
									
									
									
									
									
								
							@ -6,7 +6,7 @@ namespace eg3d {
 | 
				
			|||||||
	const char * eg3d::Window::sWndClassName = "eg3d_winclass";
 | 
						const char * eg3d::Window::sWndClassName = "eg3d_winclass";
 | 
				
			||||||
	Window * Window::pMainWindow = nullptr;
 | 
						Window * Window::pMainWindow = nullptr;
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	Window::Window(bool show, WinFn pWindowFunction) : pWindowFunction(pWindowFunction == nullptr ? smWindowFunc : pWindowFunction) // ha nullptr van megadva, akkor visszaáll az eredeti függvényre
 | 
						Window::Window(bool show, WinFn pWindowFunction) : pWindowFunction(pWindowFunction == nullptr ? smWindowFunc : pWindowFunction), pmEventHandler(nullptr) // ha nullptr van megadva, akkor visszaáll az eredeti függvényre
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		initializeWndClass(this->pWindowFunction); // window class inicializálása
 | 
							initializeWndClass(this->pWindowFunction); // window class inicializálása
 | 
				
			||||||
		create(); // ablak létrehozása
 | 
							create(); // ablak létrehozása
 | 
				
			||||||
@ -117,13 +117,19 @@ namespace eg3d {
 | 
				
			|||||||
	
 | 
						
 | 
				
			||||||
	LRESULT Window::smWindowFunc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 | 
						LRESULT Window::smWindowFunc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
 | 
					        Window * pWindow = static_cast<Window *>((void *)GetWindowLongPtrA(hwnd, GWLP_USERDATA)); // ablakhoz rendelt eseménykezelõ elkérése
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		switch (message)
 | 
							switch (message)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
		case WM_DESTROY:
 | 
							case WM_DESTROY:
 | 
				
			||||||
			PostQuitMessage(0);
 | 
								PostQuitMessage(0);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		default:
 | 
							default: // minden egyéb esemény kezelése
 | 
				
			||||||
			return DefWindowProc(hwnd, message, wParam, lParam);
 | 
							    if (pWindow-> != nullptr) { // ha meg van adva eseménykezelõ
 | 
				
			||||||
 | 
					                if (pEH->processEvent(hwnd, message, wParam, lParam) != 0) { // ha nem lett lekezelve az esemény
 | 
				
			||||||
 | 
					                    return DefWindowProc(hwnd, message, wParam, lParam);  // ...akkor rábízzuk a rendszerre
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		return 0;
 | 
							return 0;
 | 
				
			||||||
@ -159,4 +165,12 @@ namespace eg3d {
 | 
				
			|||||||
    void Window::setThisAsMainWindow() {
 | 
					    void Window::setThisAsMainWindow() {
 | 
				
			||||||
        pMainWindow = this;
 | 
					        pMainWindow = this;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void Window::setEventHandler(EventHandler *pEH) {
 | 
				
			||||||
 | 
					        pmEventHandler = pEH;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    EventHandler *Window::getEventHandler() const {
 | 
				
			||||||
 | 
					        return pmEventHandler;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										7
									
								
								Window.h
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								Window.h
									
									
									
									
									
								
							@ -4,6 +4,7 @@
 | 
				
			|||||||
#include <string>
 | 
					#include <string>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "utils.h"
 | 
					#include "utils.h"
 | 
				
			||||||
 | 
					#include "EventHandler.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace eg3d {
 | 
					namespace eg3d {
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
@ -17,6 +18,9 @@ namespace eg3d {
 | 
				
			|||||||
		//////////////
 | 
							//////////////
 | 
				
			||||||
        static LRESULT CALLBACK smWindowFunc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam); // window process, mely az ablakhoz lesz kötve
 | 
					        static LRESULT CALLBACK smWindowFunc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam); // window process, mely az ablakhoz lesz kötve
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // TODO Epagrisnak: ezt majd még átírom
 | 
				
			||||||
 | 
					        EventHandler* pmEventHandler; // eseményfeldolgozó osztály pointere
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    protected:
 | 
					    protected:
 | 
				
			||||||
		void create(); // ablak létrehozása
 | 
							void create(); // ablak létrehozása
 | 
				
			||||||
		HWND mHWND; // ablak-handler
 | 
							HWND mHWND; // ablak-handler
 | 
				
			||||||
@ -44,6 +48,9 @@ namespace eg3d {
 | 
				
			|||||||
		double getAspectRatio() const; // lekéri a képarányt
 | 
							double getAspectRatio() const; // lekéri a képarányt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		void setThisAsMainWindow(); // ezt az ablakot állítja be fõablaknak
 | 
							void setThisAsMainWindow(); // ezt az ablakot állítja be fõablaknak
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							void setEventHandler(EventHandler* pEH); // event handler beállítása
 | 
				
			||||||
 | 
							EventHandler * getEventHandler() const; // event handler lekérése
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										4
									
								
								main.cpp
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								main.cpp
									
									
									
									
									
								
							@ -29,13 +29,14 @@ 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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// TODO eseménykezelő létrehozása és ablakhoz rendelése
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// FPS-mérő callback-függvény regisztrálása
 | 
						// FPS-mérő callback-függvény regisztrálása
 | 
				
			||||||
	TimerCallbackData timerCBData;
 | 
						TimerCallbackData timerCBData;
 | 
				
			||||||
	timerCBData.callBackFn = CB_FPSaux;
 | 
						timerCBData.callBackFn = CB_FPSaux;
 | 
				
			||||||
	timerCBData.ptr = nullptr;
 | 
						timerCBData.ptr = nullptr;
 | 
				
			||||||
	gTmr1s.reg(timerCBData); 
 | 
						gTmr1s.reg(timerCBData); 
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	// TODO geometria és pool létrehozása
 | 
					 | 
				
			||||||
	std::vector<Vertex> vertices = { // vertexek
 | 
						std::vector<Vertex> vertices = { // vertexek
 | 
				
			||||||
			{ -0.5f, -0.5f, 0.1f, 1.0f, 0.0f, 0.0f  },
 | 
								{ -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.5f, -0.5f, 0.1f , 0.0f, 1.0f, 0.0f },
 | 
				
			||||||
@ -80,7 +81,6 @@ int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszA
 | 
				
			|||||||
			gFrames++; // képkockaszám léptetése
 | 
								gFrames++; // képkockaszám léptetése
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		// TODO egy másodperces periódusidejű óra léptetése
 | 
					 | 
				
			||||||
		gTmr1s.tick();
 | 
							gTmr1s.tick();
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user