* Renamed vkwindow to sdlWindow in struct vulkanContext_t to matche the rest of the struct naming conventions.
Image_VK.cpp:
* disabled printing "Vulkan Image alloc " to the terminal, flooding it
with data
RenderBackend_VK.cpp:
* Re-enabled r_vkEnableValidationLayers enabling/disabling Vulkan
validation checking, I had it hard-coded to true for testing reasons.
* static void DestroySwapChain():
* I don't know if the changes I introduced here are helping or not,
or even doing anything, so this part can be ignored or changed back.
* GL_StartFrame() and GL_BlockingSwapBuffers():
* VkResult for these two functions, vkAcquireNextImageKHR and
vkQueuePresentKHR, don't need to return VK_SUCCESS for the
application to be valid, so handle them differently here. There may
be others like this, but I don't know.
qvk.h:
* Since VK_USE_PLATFORM_* is defined in the CMakeLists.txt file, for
now anyways, use them to wrap the correct platform headers instead of
defining them here.
sdl_vkimp.cpp:
* Some debug printing changes, from GL to Vulkan, since this is for
the Vulkan API.
The SDL backend now creates SE_MOUSE_LEAVE events when the mouse leaves
the window (both SDL1.2 and SDL2). For some reason, both the SWF GUI
backend and CEGUI are interested in this.
Mostly necessary because SDL doesn't properly return mouse buttons X1/X2
on Linux/X11, see https://bugzilla.libsdl.org/show_bug.cgi?id=2310
Not sure if this is possible with Windows, DIMOFS_BUTTON7 seems to be
the highest constant there.
Also passing sdlevent.wheel.y directly as scroll delta
The d3bfg internal SE_CHAR events were documented as "evValue is an
ascii char", but are actually at least UTF-16, as returned by
Windows WM_CHAR events.
We now assume it's UTF-32 (UTF-16 has the same values mostly)
and the SDL backend now puts UTF-32 chars into SE_CHAR events.
In the Windows backend I make sure that no surrogate UTF-16 chars are
emitted + I added support for WM_UNICODE messages.
Now I can input Ümläuts intö the conßole window \o/
Sys_GetEvent()
* renamed res_none to no_more_events, because that's what the
caller assumes when getting that event
* don't return res_none on unhandled events, instead get the next event
until there is a handled event or no more events
(=> if -> while, return res_none -> continue)
* Mapping to Doom3 keynum handled differently for SDL1 vs SDL2, see below
For SDL2 we don't use SDL_KeyToDoom3Key on the keysym anymore, but map
the SDL2 scancode to Doom3/Direct-Input scancodes instead (the keynum_t
K_* constants are really used as scancodes!).
This mapping is done in sdl2_scancode_mappings.h scancodeToKeyNum[].
In sdl_events.cpp there are static SDLScanCodeToKeyNum() and
KeyNumToSDLScanCode() functions that use this scancodeToKeyNum[] array.
Sys_GetKeyName() now does something sensible for SDL2 by using
KeyNumToSDLScanCode()
This is also used to implement idKeyInput::LocalizedKeyName() for SDL-targets
(for SDL1.2 the behavior doesn't change much, though, as it doesn't have
consistent scancodes - Sys_GetKeyName() will just return NULL and
idKeyInput::LocalizedKeyName() will fall back to the old default)
strdup() and free() aren't really the right tool if the size of the
buffer is known anyway (and quite small, currently 32 chars)
while at it, I renamed s and s_pos to str and str_pos for better
readability
* Tested in Linux with both XBox360 wireless and Logitech F710 gamepads.
Should work with any XBox gamepad clone wired/wireless.
* Works well using SDL 1.2 or SDL 2.0
* SDL scan values are currently hard-coded. Note sure how to implement
remapping at the moment (config file, GUI, ...).
For some reason SDL.h (or headers included by it) need some
string functions (like strncmp) in inline-functions (that we
don't even use).
Str.h has #defines preventing their usage.. so #undef those in
the (few) sourcefiles that need SDL headers
A lot of keys (especially keys not available on US keyboards) just weren't
supported for console input with SDL1.2 (SDL2 uses a different mechanism for
that).
This is fixed now by reordering a few lines in sdl_events.cpp
Please note that still only ASCII characters are supported and those keys
still can not be used in bindings - only for text input!
If the window loses focus com_pause is set to 1, when it regains focus
it's set to 0.
The behaviour on Win32 stayed the same (the implementation is less
hacky though) and Linux now matchces that.
* add define for SDL_SCANCODE_GRAVE - seems like only SDL2
has names for the values
* add some missing keys to SDL_KeyToDoom3Key
* add scancode to unmapped-key warning
* backspace needs to be handled the same for SDL1 as in SDL2
(i.e. a new event must be created for it) to work in console
* Add support for Console-Key independently of KB Layout (with scancode)
* add support for TAB key
* Add hack so console is empty after opening it (SDL-only)