The Event_Register_XYZ were all just defined to Event_Register_Macro anyway, completely ignoring the type of the arguments given. Therefore it's better to just give a single type unsafe Event_Register_ macro, rather than misleading the user into thinking they were using type safe macros
The most noticable way this issue manifests is when you try to start the game (direct3d9) while a fullscreen application is already running. This causes creating the device to initially fail, but when the context is later recreated (because you toggled out of the fullscreen application), all the textures would appear white because the initial texture pack had attempted to load while context was initially lost.
Of course, the game still crashes when you try to resize the window next (or something else that causes context to get lost), but progress still.
Previously, if you changed server's textures, textures that were not in new textures and were not in custom default textures would retain their texture from the server's old textures, instead of reverting to default.zip.
Now default.zip will always be reloaded too when you have a custom default texture pack. This does make it a little bit slower, but default.zip is simple anyways and always loading it should not really be noticable. (even on my laptop, averages ~40 ms)
This was particularly annoying, because the update checker usually finishes very quickly. So the first time you clicked the button, it didn't do anything, but the next time you clicked the button, it would actually start downloading.
web client when low performance is due to gl call overhead.
Examples of FPS differences:
-- CR 83/FF 78/IE 11 (Win7 desktop nvidia, 512 viewdist)
-------------------------------------------------------
NA2 FB : 60->60, 38->47, 25->39
PR main: 90->100, 60->76, 42->70
TGA FB : 60->80, 49->62, 35->56
NB FB : 60->60, 44->47, 32->37
Au70 FB: 140->167, 72->92, 60->99
Lag map: 30->60, 25->40, 15->30
CR FB : 160->162, 100->108, 112->124
Fltgras: 200->200, 185->185, 310->320
-- CR 83/IE 11 (Win 7 laptop intel, 256 viewdist)
NA2 FB : 40-70 -> 50-80 , 14->24
PR main: 25-35 -> 25-40 , 22->27
TGA FB : 20-30 -> 20-40 , 18->22
NB FB : 40-50 -> 40-80 , 17->55
Au70 FB: 30-70 -> 40-80 , 20->35
Lag map: 20-30 -> 30-60 , 10->20
CR FB : 70-120-> 70-130, 30->45
Fltgras: 150-170-> 150-170, 66->66
-- CR/FF mobile (Android, 128 viewdist)
PR main: 16->17, 8-> 8
TGA FB : 50->60, 20-> 22
Au70 FB: 70->80, 30-> 30
Lag map: 17->23, 8-> 11
Fltgras: 150->150, 57->60
So to the best of my knowledge, there are no performance regressions.
Raspberry pi/android should also improve a little bit, but untested.
(benefit will be less as GLES calls are much cheaper compared to WebGL calls)
These measurements should be looked at as relative percent improvements, not
as absolute FPS comparisons. I did not try to properly benchmark here -
especially for the laptop, where FPS wildly varied. All these are averages.