Commit graph

2008 commits

Author SHA1 Message Date
Poul Sander
95c63426c8 Remove hardcoded vres and fix CG_STRNCPY.
This is anternative approach compared to PR 104 by jackharrhy
2026-04-12 15:48:16 +02:00
Poul Sander
af8c57b8ec
Merge pull request #105 from jackharrhy/feat/macos-aarch64
Support MacOS aarch64 / M series chips
2026-04-11 00:25:31 +02:00
Jack Arthur Harrhy
191149b65b Fix infinite vid_restart loop from SDL resize events on macOS
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.
2026-04-05 16:02:19 -04:00
Jack Arthur Harrhy
b9a28bcddf Skip stale PID dialog on macOS
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.
2026-04-05 15:56:32 -04:00
Jack Arthur Harrhy
656aca0cef Add macOS aarch64 (Apple Silicon) build support
- 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
2026-04-05 15:56:32 -04:00
leilei-
e8f5ed153c
November stuff
* - 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.
2025-11-23 02:38:33 -05:00
leilei-
513c538fba
A bunch of things
- 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
2025-05-20 06:30:51 -04:00
Bas M
b74af78f53 add RISCV support on build 2023-03-01 16:23:22 -05:00
Poul Sander
4e334dddbe Rename MatrixMultiply to Q_MatrixMultiply to avoid colliding with SDL_d3dmath.c when statically compiling 2022-03-19 20:11:57 +01:00
Poul Sander
7666af68b1
Merge pull request #64 from Opvolger/aarch64
add aarch64 as platform
2022-03-19 11:25:09 +01:00
r-a-sattarov
b485a52ccf code/curl: update ifdef condition for MCST-LCC compiler
in mcst-lcc compiler => 1.25 added a new macro definition to determine compiler
2022-03-12 21:59:40 +03:00
Joey Herguth
0026cad1c3 Add SDL2.0.12 headers and Win32 libs 2021-08-25 19:16:19 -07:00
Joey Herguth
c2250b7fca Add SDL2 compile option.
This sets SDL2 as the default as well.
2021-08-25 18:51:53 -07:00
Bas M
0d975d5d4d add aarch64 as platform 2020-06-04 20:37:49 +02:00
r-a-sattarov
78e222e7e3 E2K: fixed build by MCST lcc compiler when using USE_CURL=1 option 2019-11-09 11:36:27 +03:00
r-a-sattarov
bf4f0d1ec5 E2K: added initial support for MCST Elbrus CPU 2019-09-29 20:17:52 +02:00
sago007
e120f49e66 Fix duplicate symbol tvinterlace 2018-06-16 17:14:50 +02:00
sago007
7b621b7f01 Attempt to fix a duplicate symbol.
Prevents compiling on Mac OS X
2018-06-16 17:10:08 +02:00
sago007
1e47ea5264 Removed MDO for now 2018-02-12 20:55:54 +01:00
sago007
89d67c8c3e A few warnings from Travis. Including an out of bound access 2018-02-10 17:34:54 +01:00
sago007
8dbdaa7704 Also remove some clang warnings. Including removing some compiler aguments that are properly only doing things worse now. 2018-02-10 13:59:47 +01:00
sago007
57b2e3c0fd Com compiles without warnings on gcc 7.2.0. Might just test clang too 2018-02-10 13:43:56 +01:00
sago007
a099619f9e Reduced the warning count further 2018-02-06 20:59:19 +01:00
sago007
509f7baeed Removed the numeric array bounds 2018-02-06 20:33:17 +01:00
sago007
8c43d3368f Removed most warnings except for array bound.
Some logic changes has happened where I was certain that there was a bug.
2018-02-06 20:27:38 +01:00
sago007
c7798a862b Small whitespace fix 2016-12-30 19:19:40 +01:00
sago007
3a716d93b4 Now creates XDG_DATA_HOME if it is missing. This fixes all known problems. 2016-12-30 18:24:12 +01:00
sago007
05cbf012e3 Moved the symlink logic in case of an invalid. Also deleted old outcommented logic. 2016-12-30 17:39:33 +01:00
sago007
d905eba02b Wrong logic while creating "homeXdg".
Also changed .local/share/openarena to .local/share/OpenArena.

com_homepath will properly be permanently broken as it cannot handle two different home names.
2016-12-28 16:23:09 +01:00
sago007
4209b06c26 Started to implement Issue #30. XDG folder structure. All weaknesses from the old system are still there:
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.
2016-12-28 15:28:19 +01:00
sago007
e785563a21 Significantly simplified S_XMP_CodecReadStream. Based on my understanding of the libxmp 4.4 API documentation. 2016-11-27 12:34:07 +01:00
sago007
976ce69b41 Small corrections 2016-11-27 12:25:51 +01:00
sago007
c0c6bbb0ef Pure formatting changes 2016-11-27 11:55:46 +01:00
sago007
e90e80eb92 Some incompatible pointer types 2016-11-27 11:54:01 +01:00
sago007
8a0c6dd04b Formatting changes 2016-11-27 11:46:04 +01:00
sago007
f5c2b2d71b Hard an brutal reformatting to make it easier to see my changes 2016-11-27 11:40:54 +01:00
sago007
217a26e3c6 Different proactive changes to prevent problems... or make them A LOT more visible. 2016-11-27 11:25:39 +01:00
sago007
dd2ce7ca1a No longer crashes on Linux 64 bit.
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;
```
2016-11-27 10:34:14 +01:00
leilei-
f62b262b27 - "Generic" in vendor string no longer triggers software rasterizer performance workarounds 2016-11-16 00:32:08 -05:00
leilei-
ecb1a7a219 - Don't picmip the detail textures. this allows detail to look better in lower detail
- try to process generic shoehorned detail textures
2016-11-04 04:02:30 -04:00
leilei-
245fea051e Renderer-based particle system (#25)
* 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
2016-11-01 03:30:15 -04:00
leilei-
cc41c5793e - Quick fix to widescreen expansion code so it won't mess with interface refdefs anymore (the old menu logo should be at normal size now, for example)
- Don't build opengl1 and softwaare as those are either obsolete or don't make a difference and would only serve to confuse
2016-08-20 16:53:55 -04:00
leilei-
05e97b1a7f - fix nasty recursion coming from trace flares, by disabling flares in non-world situations (like interface) 2016-06-23 01:08:50 -04:00
leilei-
cf103f3cb0 - Trace checks added to flares (HUGE speedup)
- Remove obsolete Quake2-era "gamma" code that shouldn't be there anymore since there's a modern way to gamma correct now
2016-06-22 01:19:36 -04:00
leilei-
6711f046d3 - If it's not Windows NT or newer, then startup in 640x480 first, instead of malformed desktop resolutions. This causes 3 less unneccessary initializations on 3dfx 2016-06-08 01:07:16 -04:00
leilei-
3b1646bf1e Integrated youurayy's input lag fix (which was long overdue) 2016-06-02 02:33:07 -04:00
leilei-
22d8f94415 Removing dependency on PSAPI.DLL, and instead, load it when it's needed (and available) just for one EnumProcesses function.
tl;dr: This fixes Windows 95 support
2016-06-01 04:09:11 -04:00
leilei-
ea9bdc0a68 Several renderer fixes for 3dfx hardware:
- 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
2016-05-31 04:34:45 -04:00
leilei-
601a5ec701 The "eaarly console" widnow is now back for Windows
- 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 :(
2016-05-28 08:35:11 -04:00
leilei-
5c4712f192 - added tcMod atlas. Lets you have texture page atlases, and animate them!
- Entity alpha can animate them too (for animated compatible replacement smokepuffs for example)
2016-05-19 06:57:02 -04:00