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