source: opengl-game/vulkan-game.cpp@ ed7c953

feature/imgui-sdl points-test
Last change on this file since ed7c953 was ed7c953, checked in by Dmitry Portnoy <dmitry.portnoy@…>, 5 years ago

Print an error message when game-gui fails to create a window

  • Property mode set to 100644
File size: 1.7 KB
RevLine 
[99d44b2]1#include "vulkan-game.hpp"
[850e84c]2
[0df3c9a]3#include <iostream>
4
[5edbd58]5#include "consts.hpp"
6
[99d44b2]7#define GAMEGUI_INCLUDE_VULKAN
[0df3c9a]8#include "game-gui-sdl.hpp"
9
10using namespace std;
11
[99d44b2]12VulkanGame::VulkanGame() {
[0df3c9a]13 gui = nullptr;
14 window = nullptr;
15}
16
[99d44b2]17VulkanGame::~VulkanGame() {
[0df3c9a]18}
19
[b6e60b4]20void VulkanGame::run(int width, int height, unsigned char guiFlags) {
[5edbd58]21 if (initWindow(width, height, guiFlags) == RTWO_ERROR) {
[0df3c9a]22 return;
23 }
[b6e60b4]24
[0df3c9a]25 initVulkan();
26 mainLoop();
27 cleanup();
28}
29
[b6e60b4]30bool VulkanGame::initWindow(int width, int height, unsigned char guiFlags) {
[0df3c9a]31 gui = new GameGui_SDL();
32
[b6e60b4]33 if (gui->init() == RTWO_ERROR) {
[0df3c9a]34 cout << "UI library could not be initialized!" << endl;
[b6e60b4]35 cout << gui->getError() << endl;
[0df3c9a]36 return RTWO_ERROR;
37 }
38
[b6e60b4]39 window = (SDL_Window*) gui->createWindow("Vulkan Game", width, height, guiFlags & GUI_FLAGS_WINDOW_FULLSCREEN);
[0df3c9a]40 if (window == nullptr) {
41 cout << "Window could not be created!" << endl;
[ed7c953]42 cout << gui->getError() << endl;
[0df3c9a]43 return RTWO_ERROR;
44 }
45
[b6e60b4]46 int actualWidth, actualHeight;
47 gui->getWindowSize(&actualWidth, &actualHeight);
48
49 cout << "Target window size: (" << width << ", " << height << ")" << endl;
50 cout << "Actual window size: (" << actualWidth << ", " << actualHeight << ")" << endl;
51
[0df3c9a]52 return RTWO_SUCCESS;
53}
54
[99d44b2]55void VulkanGame::initVulkan() {
[0df3c9a]56}
57
[99d44b2]58void VulkanGame::mainLoop() {
[0df3c9a]59 SDL_Event e;
60 bool quit = false;
61
62 while (!quit) {
63 while (SDL_PollEvent(&e)) {
64 if (e.type == SDL_QUIT) {
65 quit = true;
66 }
67 if (e.type == SDL_KEYDOWN) {
68 quit = true;
69 }
70 if (e.type == SDL_MOUSEBUTTONDOWN) {
71 quit = true;
72 }
73 }
74 }
75}
76
[99d44b2]77void VulkanGame::cleanup() {
[b6e60b4]78 gui->destroyWindow();
79 gui->shutdown();
[0df3c9a]80 delete gui;
[850e84c]81}
Note: See TracBrowser for help on using the repository browser.