void keyUp(const SDL_KeyboardEvent & event) { switch (event.keysym.sym) { case SDLK_UP : gKeyForward.release(); break; case SDLK_DOWN : gKeyBackward.release(); break; case SDLK_PAGEDOWN : gKeyDown.release(); break; case SDLK_PAGEUP : gKeyUp.release(); break; case SDLK_LEFT : gKeyLeft.release(); break; case SDLK_RIGHT : gKeyRight.release(); break; case SDLK_f : switchFullscreen(); break; default: break; } }
void fpD3D12Window::createWindow( const char* name, unsigned int x, unsigned int y, unsigned int width, unsigned int height, bool fullscreen) { _height = height; _width = width; _x = x; _y = y; _name = name; _deleted = false; _fullscreen = fullscreen; _minimize = false; switchFullscreen(fullscreen); showWindow(); }
void Window::registerAttributes() { _attribFunctions["fullscreen"] = AttributeFunctor([&](const Values& args) { if (args.size() != 1) return false; switchFullscreen(args[0].asInt()); return true; }, [&]() -> Values { return {_screenId}; }); _attribFunctions["decorated"] = AttributeFunctor([&](const Values& args) { if (args.size() != 1) return false; _withDecoration = args[0].asInt() == 0 ? false : true; setWindowDecoration(_withDecoration); updateWindowShape(); return true; }, [&]() -> Values { if (_screenId != -1) return Values(); else return {(int)_withDecoration}; }); _attribFunctions["srgb"] = AttributeFunctor([&](const Values& args) { if (args.size() != 1) return false; if (args[0].asInt() != 0) _srgb = true; else _srgb = false; return true; }, [&]() -> Values { return {_srgb}; }); _attribFunctions["gamma"] = AttributeFunctor([&](const Values& args) { if (args.size() != 1) return false; _gammaCorrection = args[0].asFloat(); return true; }, [&]() -> Values { return {_gammaCorrection}; }); // Attribute to configure the placement of the various texture input _attribFunctions["layout"] = AttributeFunctor([&](const Values& args) { if (args.size() < 1) return false; _layout = args; return true; }, [&]() { return _layout; }); _attribFunctions["position"] = AttributeFunctor([&](const Values& args) { if (args.size() != 2) return false; _windowRect[0] = args[0].asInt(); _windowRect[1] = args[1].asInt(); updateWindowShape(); return true; }, [&]() -> Values { if (_screenId != -1) return {}; else return {_windowRect[0], _windowRect[1]}; }); _attribFunctions["size"] = AttributeFunctor([&](const Values& args) { if (args.size() != 2) return false; _windowRect[2] = args[0].asInt(); _windowRect[3] = args[1].asInt(); updateWindowShape(); return true; }, [&]() -> Values { if (_screenId != -1) return {}; else return {_windowRect[2], _windowRect[3]}; }); _attribFunctions["swapInterval"] = AttributeFunctor([&](const Values& args) { if (args.size() != 1) return false; _swapInterval = max(-1, args[0].asInt()); updateSwapInterval(); return true; }); _attribFunctions["swapTest"] = AttributeFunctor([&](const Values& args) { if (args.size() != 1) return false; _swapSynchronizationTesting = args[0].asInt(); return true; }); _attribFunctions["swapTestColor"] = AttributeFunctor([&](const Values& args) { if (args.size() != 4) return false; _swapSynchronizationColor = glm::vec4(args[0].asFloat(), args[1].asFloat(), args[2].asFloat(), args[3].asFloat()); return true; }); }