mirror of https://github.com/auygun/kaliber.git
tmp
This commit is contained in:
parent
92dbf5cd97
commit
41a1cfe6f5
|
@ -36,7 +36,7 @@ class Platform {
|
|||
#elif defined(__linux__)
|
||||
Platform();
|
||||
#elif defined(_WIN32)
|
||||
Platform(HINSTANCE hInstance, int nCmdShow);
|
||||
Platform(HINSTANCE instance, int cmd_show);
|
||||
#endif
|
||||
~Platform();
|
||||
|
||||
|
@ -127,11 +127,10 @@ class Platform {
|
|||
|
||||
#elif defined(_WIN32)
|
||||
|
||||
// Global Variables:
|
||||
HINSTANCE hInst; // current instance
|
||||
HWND hWnd;
|
||||
HINSTANCE instance_;
|
||||
HWND wnd_;
|
||||
int cmd_show_;
|
||||
|
||||
// Forward declarations of functions included in this code module:
|
||||
static LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "base/log.h"
|
||||
// #include "base/vecmath.h"
|
||||
// #include "engine/input_event.h"
|
||||
// #include "engine/platform/platform_observer.h"
|
||||
#include "engine/platform/platform_observer.h"
|
||||
|
||||
using namespace base;
|
||||
|
||||
|
@ -16,7 +16,8 @@ namespace eng {
|
|||
|
||||
void KaliberMain(Platform* platform);
|
||||
|
||||
Platform::Platform(HINSTANCE hInstance, int nCmdShow) : hInst(hInstance) {
|
||||
Platform::Platform(HINSTANCE instance, int cmd_show)
|
||||
: instance_(instance), cmd_show_(cmd_show) {
|
||||
LOG(0) << "Initializing platform.";
|
||||
|
||||
root_path_ = "./";
|
||||
|
@ -33,31 +34,44 @@ Platform::Platform(HINSTANCE hInstance, int nCmdShow) : hInst(hInstance) {
|
|||
wcex.lpfnWndProc = WndProc;
|
||||
wcex.cbClsExtra = 0;
|
||||
wcex.cbWndExtra = 0;
|
||||
wcex.hInstance = hInstance;
|
||||
wcex.hIcon =
|
||||
nullptr; // LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WINDOWSPROJECT1));
|
||||
wcex.hInstance = instance_;
|
||||
wcex.hIcon = nullptr;
|
||||
wcex.hCursor = LoadCursor(nullptr, IDC_ARROW);
|
||||
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
|
||||
wcex.lpszMenuName = nullptr; // MAKEINTRESOURCEW(IDC_WINDOWSPROJECT1);
|
||||
wcex.lpszClassName = L"szWindowClass";
|
||||
wcex.hIconSm =
|
||||
nullptr; // LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
|
||||
RegisterClassExW(&wcex);
|
||||
wcex.hbrBackground = nullptr;
|
||||
wcex.lpszMenuName = nullptr;
|
||||
wcex.lpszClassName = L"KaliberWndClass";
|
||||
wcex.hIconSm = nullptr;
|
||||
RegisterClassEx(&wcex);
|
||||
}
|
||||
|
||||
hWnd = CreateWindowW(L"szWindowClass", L"kaliber", WS_OVERLAPPEDWINDOW,
|
||||
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr,
|
||||
hInstance, nullptr);
|
||||
CHECK(hWnd);
|
||||
void Platform::CreateMainWindow() {
|
||||
wnd_ = CreateWindow(L"KaliberWndClass", L"Kaliber", WS_OVERLAPPEDWINDOW,
|
||||
CW_USEDEFAULT, 0, 800, 1205, nullptr, nullptr, instance_,
|
||||
this);
|
||||
CHECK(wnd_);
|
||||
|
||||
ShowWindow(hWnd, nCmdShow);
|
||||
UpdateWindow(hWnd);
|
||||
ShowWindow(wnd_, cmd_show_);
|
||||
UpdateWindow(wnd_);
|
||||
}
|
||||
|
||||
Platform::~Platform() {
|
||||
LOG(0) << "Shutting down platform.";
|
||||
DestroyWindow(wnd_);
|
||||
}
|
||||
|
||||
void Platform::Update() {}
|
||||
void Platform::Update() {
|
||||
DCHECK(!should_exit_);
|
||||
|
||||
MSG msg;
|
||||
while (PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE)) {
|
||||
if (msg.message == WM_QUIT) {
|
||||
should_exit_ = true;
|
||||
break;
|
||||
}
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
}
|
||||
|
||||
void Platform::Exit() {
|
||||
should_exit_ = true;
|
||||
|
@ -72,60 +86,45 @@ void Platform::ShareFile(const std::string& file_name) {}
|
|||
void Platform::SetKeepScreenOn(bool keep_screen_on) {}
|
||||
|
||||
HINSTANCE Platform::GetInstance() {
|
||||
return hInst;
|
||||
return instance_;
|
||||
}
|
||||
|
||||
HWND Platform::GetWindow() {
|
||||
return hWnd;
|
||||
return wnd_;
|
||||
}
|
||||
|
||||
LRESULT CALLBACK Platform::WndProc(HWND hWnd,
|
||||
LRESULT CALLBACK Platform::WndProc(HWND wnd,
|
||||
UINT message,
|
||||
WPARAM wParam,
|
||||
LPARAM lParam) {
|
||||
// switch (message)
|
||||
// {
|
||||
// case WM_COMMAND:
|
||||
// {
|
||||
// int wmId = LOWORD(wParam);
|
||||
// // Parse the menu selections:
|
||||
// switch (wmId)
|
||||
// {
|
||||
// case IDM_ABOUT:
|
||||
// DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
|
||||
// break;
|
||||
// case IDM_EXIT:
|
||||
// DestroyWindow(hWnd);
|
||||
// break;
|
||||
// default:
|
||||
// return DefWindowProc(hWnd, message, wParam, lParam);
|
||||
// }
|
||||
// }
|
||||
// break;
|
||||
// case WM_PAINT:
|
||||
// {
|
||||
// PAINTSTRUCT ps;
|
||||
// HDC hdc = BeginPaint(hWnd, &ps);
|
||||
// // TODO: Add any drawing code that uses hdc here...
|
||||
// EndPaint(hWnd, &ps);
|
||||
// }
|
||||
// break;
|
||||
// case WM_DESTROY:
|
||||
// PostQuitMessage(0);
|
||||
// break;
|
||||
// default:
|
||||
return DefWindowProc(hWnd, message, wParam, lParam);
|
||||
// }
|
||||
// return 0;
|
||||
WPARAM wparam,
|
||||
LPARAM lparam) {
|
||||
auto* platform =
|
||||
reinterpret_cast<Platform*>(GetWindowLongPtr(wnd, GWL_USERDATA));
|
||||
|
||||
switch (message) {
|
||||
case WM_CREATE:
|
||||
SetWindowLongPtr(wnd, GWL_USERDATA,
|
||||
(LONG_PTR)(((LPCREATESTRUCT)lparam)->lpCreateParams));
|
||||
break;
|
||||
case WM_SIZE:
|
||||
platform->observer_->OnWindowResized(LOWORD(lparam), HIWORD(lparam));
|
||||
break;
|
||||
case WM_DESTROY:
|
||||
platform->observer_->OnWindowDestroyed();
|
||||
PostQuitMessage(0);
|
||||
break;
|
||||
default:
|
||||
return DefWindowProc(wnd, message, wparam, lparam);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
} // namespace eng
|
||||
|
||||
int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
|
||||
_In_opt_ HINSTANCE hPrevInstance,
|
||||
_In_ LPWSTR lpCmdLine,
|
||||
_In_ int nCmdShow) {
|
||||
eng::Platform platform(hInstance, nCmdShow);
|
||||
int WINAPI WinMain(HINSTANCE instance,
|
||||
HINSTANCE prev_instance,
|
||||
PSTR cmd_line,
|
||||
int cmd_show) {
|
||||
eng::Platform platform(instance, cmd_show);
|
||||
eng::KaliberMain(&platform);
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue