On macOS, the SDL2 Cocoa backend fires SDL_WINDOWEVENT_RESIZED during
fullscreen window creation as the window goes through a size negotiation
with the window server. Since vid_restart destroys and recreates the SDL
window, each restart triggers a resize event with the same dimensions,
which sets vidRestartTime, which fires another vid_restart one second
later, creating an infinite loop.
This does not occur on Linux or Windows where the X11/Win32 backends do
not emit resize events during fullscreen window creation.
Skip the vidRestartTime when the reported dimensions match what
r_customwidth and r_customheight already hold.
The Sys_Dialog call that prompts about safe video settings after an
abnormal exit uses NSAlert on macOS, which can block indefinitely when
called before the window server connection is fully established. This
leaves the process hung with no visible UI. Skip the dialog on macOS
while preserving it on other platforms.
- Add __aarch64__ and __arm__ cases to the macOS architecture block in
q_platform.h (the existing aarch64 support was only in the Linux block)
- Normalize arm/arm64 to aarch64 in the Makefile since uname -p returns
'arm' on Apple Silicon
- Only set HAVE_VM_COMPILED on architectures that have a bytecode
compiler (x86, x86_64, ppc, ppc64) so aarch64 falls back to the
interpreter
- Add -arch arm64 optimization flag for darwin/aarch64
* - s_interrupt - allows sounds to be interrupted by the same sound or entity channel
- new dynamic light calculation for vertex lighting, affecting vertex color (no projected dlight textures)
- rgbGen material for allowing calculation for diffuse, specular, emmissive vertex colors by hex values
- rgbMod shader command allowing new vertex color effects
- removed deprecated R_ParseStageSimple, it never worked as intended
* - r_slowness gone. Use llvmpipe, PCem, or a slow computer instead.
* Spring cleaning of old deprecated/broken post-process GLSL experiments
- r_anime broke in 2015
- r_tvMode - well, shaderglass exists now
- r_motionblur - Bad technique, too much memory
- t_pslettize - slow, relies on shader's lookup of a vector table
- r_film - bad on well-lit maps
- r_retroAA - this broke early too. also looked bad. would rather implement FSAA 4x
* test
* Cool console things
- cl_consoleScale : makes the console more 640x480 sized on any higher res. Also affects notify messages, so you can read chat easier
- cl_consoleColor also affects the line at the bottom. Also new default colors
- If consoleShader can't load (which will happen with some mods), it will fallback to a flat-colored console.
- Generic'd the red/blue team names. We will not be having missionpack clans.
* SDL2: Clicking the red X now does something: you can leave!!!
If it sucks.... hit da bricks!!
real winners quit
* s_xmp_startPattern - makes the tracker song play a different pattern (for use with sub-songs)
* - fixed xmp playback as xmp explicitly requires a length of the module now. Fixes issue #96
- suppress the warning about non-22khz music, as mods are playing at the mixer's rate always, and this warning regards a much earlier (1999) unstable sound mixer.
* - deprecating r_modelshader because the shader got stale, old, buggy, and amd hates it now
- r_shadeMethod will be something else (and not shader-based)
* - r_lightmapColorNorm : Make normalization of bright luxels an option, default is 1 (q3 behavior).
- r_lightmapColorNorm 0 = no normalization, straight clamp, like Nightdive's vision of Quake2
- r_lightmapColorNorm 2 = experiment: normalize, but add some luminance on while maintaining the hue by normalizing again. This tries to restore more range on fully saturated colors
- dropped SHADER_MAX_VERTEXES back to 1000 because raising it causes various unexpected issues, so dialing it down for now
- raise MAX_IMAGE_ANIMATIONS to 16 because I've got a cool water shader using it and 8 is too choppy
* - Crash fix for older (<=2001) mods by trimming the string shared with ui module, so no overflow for them
- jettisoning old proposed mme particle system that was never ever hooked up properly.
- other small warning cleanup
* Some renderer refactor and cleanup
- r_shadeMethod : 0/1 = q3 behavior, 2 = ue1-ish behavior, 3 = mix of 1 and 2, -1 = one uniform color, 150-666 = a lod range to change between the 3
- r_monolightmaps : refactor - goes to the light data instead of the calculations and images
- removed r_greyscale because this is a data-modifying novelty that would complicate support for loading compressed texture formats. This is better off as a post-process shader
- environment mapping refactor, rewrite and cleanup
- removed a lot of deprecated rgbGens
- removed r_texdump (it never worked)
- remove a few leftover broken postprocess things
* - Internal GLSL brightness shader, so gamma control can work without the glsl/brightness_fp.glsl file when r_ext_vertex_shader is 1 and r_alternateBrightness is 2.
- r_skyTess - an attempt to make the complexity of skydomes an option so it could use less polygons. Has no effect on skyboxes
* - More r_dynamiclight options:
r_dynamiclight 2 = Slightly additive dynamic light projections, modeled after the PS2 port
r_dynamiclight 3 = disables dynamic light projections but substitutes them with flashblends (ala GLQuake). If r_monolightmaps are enabled, the flashblends are orange. Viewblends are left out as the sudden duration of the dynamic lights when firing would be harmful.
- Because of these changes, Riva 128 and Permedia 2 owners should be allowed to enjoy dynamic lights
- option to use ReactOS's wspiapi.h header (file not included)
- some makefile changes to allow an option for more Win 4 (95/NT4) compatiblity easier. Compiling with WINFOUR disables curl, uses SDL1, and has some additional workarounds to get it working on Windows 95 (winsock2 still required though)
* - fixed a fog modulation regression stemming from a rgbMod case returning and not breaking. whoops
- little warning cleanup wrt flashblend
* Sun stuff
- r_drawSun is now default 1 (was 0), because...
- sunShader key - allows sky shaders to explicitly define a shader to use for the sun. In addition to that, a flare type number and a size multiplier number can follow for a little more customization. Partially inspired by RTCW's sunshader key, which only dealt with the image (and never finished their lens flare reflections)
- Suns with a portal on screen won't cancel out the sun or its flare
- If no sun flare is specified, don't draw a sun flare at all. should be one less unnecessary depth read
- r_drawSun 2 is the old 'always show sun' behavior
- sun shader now correctly orientated
- drawing the sun uses a quadstamp
- some 'low end video' alternative shader loading that current does not work. May revert
- ifdefing out shademethod LOD for fixing later
* - GetViewPosition builtin for cgame to allow stuff like text drawn over entities
- MDR physics: allows MDR bones to move independently of model by a defined file on bone numbers, their type, etc. (like hair and flags), but broken (currently ifdef'd out)
- ifdef'd out IQM support as that's broken, we aren't using it, and only other whole games are using it
- Removed attempt at r_lowEndVideo
* - Model fog fix
- Suppressing redundant sound warnings to developer print
- Preliminary DDS texture loading
- Dropping renderergl1 and renderergl2 as they're unsupported, redundant, stale code with none of the new improvements, and we don't use modularized renderers. Still having these files in the tree implies we use them and that can bring confusion.
* - Cgame entity glow renderer hookup
- R_ShowImages: Adjust for overbright
- a tribute to Rebecca Heineman and Jennell Jaquays
* RB_UVcolor: casting as gcc 14 hates this line
makefile - because gcc 14 is fussier, i'll do this wrt VMA for now.
- s_interrupt - allows sounds to be interrupted by the same sound or entity channel
- new dynamic light calculation for vertex lighting, affecting vertex color (no projected dlight textures)
- rgbGen material for allowing calculation for diffuse, specular, emmissive vertex colors by hex values
- rgbMod shader command allowing new vertex color effects
- removed deprecated R_ParseStageSimple, it never worked as intended
- r_slowness gone. Use llvmpipe, PCem, or a slow computer instead.
- Spring cleaning of old deprecated/broken post-process GLSL experiments
- r_anime broke in 2015
- r_tvMode - well, shaderglass exists now
- r_motionblur - Bad technique, too much memory
- t_pslettize - slow, relies on shader's lookup of a vector table
- r_film - bad on well-lit maps
- r_retroAA - this broke early too. also looked bad. would rather implement FSAA 4x
- cl_consoleScale : makes the console more 640x480 sized on any higher res. Also affects notify messages, so you can read chat easier
- cl_consoleColor also affects the line at the bottom. Also new default colors
- If consoleShader can't load (which will happen with some mods), it will fallback to a flat-colored console.
- Generic'd the red/blue team names. We will not be having missionpack clans.
- SDL2: Clicking the red X now does something: you can leave!!! If it sucks.... hit da bricks!! real winners quit
- s_xmp_startPattern - makes the tracker song play a different pattern (for use with sub-songs)
- fixed xmp playback as xmp explicitly requires a length of the module now. Fixes issue #96
- suppress the warning about non-22khz music, as mods are playing at the mixer's rate always, and this warning regards a much earlier (1999) unstable sound mixer.
- deprecating r_modelshader because the shader got stale, old, buggy, and amd hates it now
- r_shadeMethod will be something else (and not shader-based)
- r_lightmapColorNorm : Make normalization of bright luxels an option, default is 1 (q3 behavior).
- r_lightmapColorNorm 0 = no normalization, straight clamp, like Nightdive's vision of Quake2
- r_lightmapColorNorm 2 = experiment: normalize, but add some luminance on while maintaining the hue by normalizing again. This tries to restore more range on fully saturated colors
- dropped SHADER_MAX_VERTEXES back to 1000 because raising it causes various unexpected issues, so dialing it down for now
- raise MAX_IMAGE_ANIMATIONS to 16 because I've got a cool water shader using it and 8 is too choppy
- Crash fix for older (<=2001) mods by trimming the string shared with ui module, so no overflow for them
- jettisoning old proposed mme particle system that was never ever hooked up properly.
- other small warning cleanup
- r_shadeMethod : 0/1 = q3 behavior, 2 = ue1-ish behavior, 3 = mix of 1 and 2, -1 = one uniform color, 150-666 = a lod range to change between the 3
- r_monolightmaps : refactor - goes to the light data instead of the calculations and images
- removed r_greyscale because this is a data-modifying novelty that would complicate support for loading compressed texture formats. This is better off as a post-process shader
- environment mapping refactor, rewrite and cleanup
- removed a lot of deprecated rgbGens
- removed r_texdump (it never worked)
- remove a few leftover broken postprocess things
- Internal GLSL brightness shader, so gamma control can work without the glsl/brightness_fp.glsl file when r_ext_vertex_shader is 1 and r_alternateBrightness is 2.
- r_skyTess - an attempt to make the complexity of skydomes an option so it could use less polygons. Has no effect on skyboxes
Also changed .local/share/openarena to .local/share/OpenArena.
com_homepath will properly be permanently broken as it cannot handle two different home names.
HOME must be defined: Not a regression
Only one level of mkdir: Not a regression (but might be more relevant)
com_homepath is not fully implemented and it will need to be set to "openarena" instead of ".openarena". But that just makes it like Mac.
I did not know why "cg_leiEnhancement 1" caused the game to crash.
Before I started debugging I just ran through tr_particles.c and fixed a lot of warnings. This also fixed my problem.
I think the critical part was:
```
-int reallyactive;
+particle_t* reallyactive;
```
The diff makes it a bit hard but another change was:
```
else if (p->colortype = P_INDEXED)
```
to
```
else if (p->colortype == P_INDEXED)
```
and:
```
-vec3_t color;
+vec4_t color;
```
* A WIP particle system
* - Some more particle refactoring
- an attempt to fix things that went wrong
- trying to integrate fog onto particles (which is currently wrong)
- qpal.h committed (oops)
- Attempt to separate particle rendering from particle moving for future optimization/refactor
- Try to determine which 3dfx card we are using
- Use GL_CLAMP for 3dfx instead, fixes dynamic lights/skyboxes/etc. (GL_CLAMP_TO_EDGE becomes GL_REPEAT on older 3dfx drivers)
- Support for 3dfx gamma control and overbrights restored
- Indexed w/ alpha color is now forced GL_RGBA on Voodoo Graphics (v1)
- attempt at silencing the 3dfx splash
- can be defined off to windowless behavior
- X still doesn't close it
- Still some makefile-related and other cleanup/implementation to do. i sleepcoded this :(