Commit Graph

4467 Commits

Author SHA1 Message Date
Yamagi c72d0c1b39 Add back linker options somehow lost in 8cedbb0.
Closes #1129, fixed by @ArminiusTux.
2024-07-29 19:18:48 +02:00
Denis Pauk e754261f22 ReadMe: add more SDK links 2024-07-29 15:07:57 +03:00
Denis Pauk 0a774a4f75 models: add support of MDR
* https://github.com/ioquake/ioq3/blob/main/md4-readme.txt
* https://github.com/UberGames/MD3View
2024-07-29 13:31:12 +03:00
Jaime Moreira 26f578212a Deleted unused variable in R_RegenAllLightmaps()
Static arrays there have their dimensions swapped, they make more sense now.
Added important detail in gl1_lightmapcopies doc.
Also added doc for gl_polyblend, just because of its "popularity".
2024-07-28 12:14:17 -04:00
Jaime Moreira b72c465214 GLES1 renderer: lightmap copies
Available in both GL1 and GLES1. Keep multiple copies of "the same"
lightmap on video memory; they are actually different, because they're
used in different frames. This is a workaround for the usage of
glTexSubImage2D() for dynamic lighting, since modifying textures used
recently causes slowdown in embedded/mobile devices.
Controlled by gl1_lightmapcopies cvar; default in GL1 is `0`, while
in GLES1 is `1`.
2024-07-27 23:22:41 -04:00
Jaime Moreira 0596d23e4c GLES1 renderer: discard framebuffer
Available only on GLES1, allows to use a "performance hint" to the
GPU to discard the contents of depth and stencil buffers after each
frame. Some hardware might want to reuse them, but Quake 2 doesn't
work that way.
Controlled by gl1_discardfb cvar, default `1`.
2024-07-27 23:18:06 -04:00
Jaime Moreira 03227f1ed6 OpenGL ES 1.0 refresher (GLES1 for friends)
Variant of GL1, meant for embedded/mobile devices only.
Build it with "make with_gles1".
For Windows, you'll need MSYS2 and a decent ANGLE implementation
(probably not worth the trouble).
Building with CMake only works in Linux, so it has been commented out.
2024-07-27 23:15:12 -04:00
Jaime Moreira 94c4bf2df7 GL1 unified draw calls, 7
Changed "buffer" functions (vertex, single/mtex, color) to macros.
Macros eliminate the function call overhead, resulting in faster
execution times. Depending of the hardware, there might be a
performance increase of almost 10%.
This forced the buffer to be exposed as global.
Not worth doing this for 2D elements though.
2024-07-27 23:08:46 -04:00
Jaime Moreira 826f4816f6 There's no such thing as "gl1_colorlight"
"Invented" in 575ea06b9, only existed in video menu.
Resurrect this when it actually works.
2024-07-27 23:05:59 -04:00
Denis Pauk 30a2045189 Merge remote-tracking branch 'yquake2/master' 2024-07-27 18:52:15 +03:00
Yamagi 4b3545697e Bump version number to 8.41pre. 2024-07-27 09:41:02 +02:00
Yamagi 4e41dbf186 Bump version to 8.40. 2024-07-27 09:40:00 +02:00
Denis Pauk 7551b683de Fix platforms in q64/outpost
Fix regression from 30fa1d6b83

Issue comes from Rogue code merge.
2024-07-24 12:53:13 +03:00
David Carlier ae827dbd86
client sound fade_data is only really used later. 2024-07-22 21:44:06 +01:00
Denis Pauk 6c16fe1e8e Merge remote-tracking branch 'yquake2/master' 2024-07-21 18:07:00 +03:00
Yamagi 528ffe6a6d Add missing `R_ApplyGLBuffer()` to actually render the player menu.
This fixes part of the player setup menu missing after the GL1 grouped
drawcalls branch was merged.

Submitted by @protocultor in
https://github.com/yquake2/yquake2/pull/1124#issuecomment-2241272507
2024-07-21 09:24:49 +02:00
Denis Pauk 7258f240ce Merge commit 'df81a8b7' 2024-07-21 00:23:27 +03:00
Yamagi 824cd9c034 Update CHANGELOG for 'Group draw call in GL1.' 2024-07-20 09:35:14 +02:00
Yamagi 85ca97192d
Merge pull request #1125 from apartfromtime/menu-stack
Menu: minor code refactor
2024-07-20 09:31:54 +02:00
Yamagi eef7db91d8
Merge pull request #1124 from protocultor/gl1_buffer
Grouped draw calls for improved performance with GL1
2024-07-20 09:24:23 +02:00
apartfromtime df81a8b7b8 menu: active menu layer
Replace function pointers with active menu layer.
2024-07-20 11:57:21 +10:00
apartfromtime 2bafa22cfc menu: menu framework function pointers
Add function pointers draw and key event to menu framework.
Setup function pointers for menu frames.
Pass menu framework as parameter to M_PushMenu().
2024-07-20 10:21:22 +10:00
Denis Pauk ed286f39e5 images: pcx pcx_width could be smaller that bytes_by_line
Some tools could round up bytes_by_line from pcx_width.
Just ignore such cases.
2024-07-16 23:50:41 +03:00
Denis Pauk 1e0aa094cb Merge remote-tracking branch 'yquake2/master' 2024-07-15 23:37:05 +03:00
Yamagi 4b9b8e14a4 Switch g_quick_weap to 1 by default.
It's a nice to have convenience feature that most players will never
notice. Die hard traditionalists can switch it off.
2024-07-15 21:42:15 +02:00
Yamagi 2d581a3667 Fix description of g_quick_weap and fix typo, it's SDL 3.1.2. 2024-07-15 21:38:26 +02:00
Jaime Moreira 15a1ebdd74 Deleted gl1_biglightmaps
glTexSubImage2D() calls are very slow, and are even slower when
the texture is big. Dynamic lighting changes are small compared
to the huge 512x512 size of the lightmap this option provided,
so it was detrimental to performance.
Original logic remains underneath if there's a need of a comeback.
2024-07-15 12:45:15 -04:00
Jaime Moreira 24b546ba54 GL1 unified draw calls, episode vi
Buffered shadows.
2024-07-15 12:33:19 -04:00
Jaime Moreira 55dfaa2e3b GL1 unified draw calls, 05
Buffered 'alias' models. Logic from R_DrawAliasModel() and
R_DrawAliasFrameLerp() was moved to R_ApplyGLBuffer().
2024-07-15 11:20:26 -04:00
Jaime Moreira e8b2e36bd8 GL1 unified draw calls, chapter iv
Buffered flashblend effects.
2024-07-15 10:18:46 -04:00
Jaime Moreira 749e70b988 GL1 unified draw calls, part 3
Batching / buffered procedure, applied to multitexture surfaces.
This solves the issue with gl1_overbrightbits, when jumping
between 0 and 2-4.
2024-07-15 09:05:21 -04:00
Jaime Moreira 4461128255 GL1 unified draw calls, cont.
Batching procedure from previous commit, applied this time to GLPoly
/ single texture surfaces; alpha and liquid included.
2024-07-15 08:23:43 -04:00
Jaime Moreira 50aebd2de4 GL1 unified draw calls, init
Implemented a batching procedure, to try to group meshes in a buffer
and use a final GL call to draw them all in one step, instead of the
many GL draw calls existing today.
For now, only 2D textures are included, especifically console text
("conchars"), scrap and tiles. It's not worth doing this for
individual 2D elements (e.g. crosshair).
2024-07-15 06:56:02 -04:00
Denis Pauk 1a9733bd75 images: replace generated palette with first image one 2024-07-15 11:53:42 +03:00
Denis Pauk 4e61cbccc2 images: more strict check of pcx
checked with https://samples.ffmpeg.org/image-samples/pcx/
2024-07-15 04:47:39 +03:00
Jaime Moreira 4503333b3a GL1: lighting for brushes on the entity list...
...is being "preprocessed" before regenerating lightmaps, so there
are no additional changes to the lightmaps when drawing those brushes.
2024-07-14 20:20:27 -04:00
Jaime Moreira 1bae1e359f GL1: removed many fruitless glTexParameteri calls
They were in this form:
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG/MIN_FILTER,GL_LINEAR)
Only appeared at startup, but we didn't need so many of them.
2024-07-14 19:31:00 -04:00
Denis Pauk 3ba0f35636 images: pcx make buffer const 2024-07-15 00:44:15 +03:00
Denis Pauk 2e32da65bd images: pcx add support 2/4 bits in single plane 2024-07-15 00:23:20 +03:00
Denis Pauk d8f754f003 images: pcx single bit per plane
based on https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/HEAD:/libavcodec/pcx.c
2024-07-14 16:37:38 +03:00
Denis Pauk 5d5e01e1e1 images: allocate pcx palette only for 8bit 2024-07-14 15:36:36 +03:00
Yamagi fd2ebb8891 Update CHANGELOG for 8.40. 2024-07-13 16:19:14 +02:00
Denis Pauk 84e461e07b images: support 24 bit pcx images 2024-07-11 23:37:15 +03:00
Denis Pauk 66da110472 image: move pcx RLE to separate function 2024-07-11 23:34:45 +03:00
Denis Pauk 1efc45612c soft: scale down wall if texture is prescalled 2024-07-11 23:34:45 +03:00
Denis Pauk e08490d3de renders: simplify LoadImage_Ext 2024-07-11 23:34:45 +03:00
Denis Pauk 0390db7aec images: move wal decode to vid/images 2024-07-11 23:34:45 +03:00
Denis Pauk 6de0e06c4a images: move m8 decode to vid/images 2024-07-11 23:34:45 +03:00
Denis Pauk 8e4c329351 images: show file name in error message 2024-07-11 23:34:45 +03:00
Denis Pauk 829b1a014e renders: simplify swl/pcx load code 2024-07-11 23:34:45 +03:00