Commit graph

393 commits

Author SHA1 Message Date
terminx
be6069fc6d Support vsync in classic mode (SDL 2.x only), and properly handle failure to enable "adaptive" vsync on systems that don't support it.
git-svn-id: https://svn.eduke32.com/eduke32@5938 1a8010ca-5511-0410-912e-c29ae57300e0
2016-11-15 21:55:30 +00:00
terminx
f3ac89af1b Change default anisotropic filtering setting to the max for the user's system. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5929 1a8010ca-5511-0410-912e-c29ae57300e0
2016-11-09 22:51:39 +00:00
hendricks266
1940940f81 Revert a formatting change from r5725.
git-svn-id: https://svn.eduke32.com/eduke32@5912 1a8010ca-5511-0410-912e-c29ae57300e0
2016-10-25 05:43:42 +00:00
hendricks266
da6bc22d35 Polymost: Clear wsprinfo[] upon map load. This should address some remaining instances of wall-ornamented sprite z-fighting.
git-svn-id: https://svn.eduke32.com/eduke32@5910 1a8010ca-5511-0410-912e-c29ae57300e0
2016-10-24 21:30:34 +00:00
hendricks266
527181f151 Re-enable the use of psky_t's yoffset.
git-svn-id: https://svn.eduke32.com/eduke32@5896 1a8010ca-5511-0410-912e-c29ae57300e0
2016-10-14 07:40:50 +00:00
hendricks266
8a1f1f2ede GL .blend support.
Consult me if you are interested in this feature.

TODO: Polymer.

git-svn-id: https://svn.eduke32.com/eduke32@5888 1a8010ca-5511-0410-912e-c29ae57300e0
2016-10-09 07:55:23 +00:00
hendricks266
4d08f4d433 Cosmetic changes to some blend/alpha related code.
git-svn-id: https://svn.eduke32.com/eduke32@5886 1a8010ca-5511-0410-912e-c29ae57300e0
2016-10-09 07:55:13 +00:00
hendricks266
07d759234d Some float optimizations in the engine.
git-svn-id: https://svn.eduke32.com/eduke32@5877 1a8010ca-5511-0410-912e-c29ae57300e0
2016-10-03 02:43:48 +00:00
hendricks266
b768c35175 Ensure the cached float cast variables introduced in r4656 are updated any time the integer versions are.
This fixes the infinite loop when viewing an HUD model at a point when displayrooms is not running, such as the main menu upon initial game load.

git-svn-id: https://svn.eduke32.com/eduke32@5876 1a8010ca-5511-0410-912e-c29ae57300e0
2016-10-03 02:43:42 +00:00
terminx
4575148c02 Use size_t or ssize_t in for loops where possible
git-svn-id: https://svn.eduke32.com/eduke32@5829 1a8010ca-5511-0410-912e-c29ae57300e0
2016-08-27 01:41:21 +00:00
terminx
03daded192 Vectorize a few more things.
git-svn-id: https://svn.eduke32.com/eduke32@5800 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-21 00:34:18 +00:00
terminx
5800cd588c tsectortype -> usectortype
twalltype -> uwalltype
tspritetype -> uspritetype

No other changes.

git-svn-id: https://svn.eduke32.com/eduke32@5796 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-21 00:33:58 +00:00
terminx
205a757109 Move palette related functionality from engine.c to palette.c/h.
git-svn-id: https://svn.eduke32.com/eduke32@5789 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-21 00:33:06 +00:00
terminx
aca0807a81 Performance fix for Polymost wall sprite z-fighting avoidance
git-svn-id: https://svn.eduke32.com/eduke32@5787 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-21 00:32:47 +00:00
hendricks266
d33a443b2e Revert r5658. This fixes the disappearing chaingun problem.
git-svn-id: https://svn.eduke32.com/eduke32@5771 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-05 04:46:43 +00:00
hendricks266
31e0cdd87b GL: In uploadtexture, don't assume that a non-masking texture can safely be sent to the driver without the alpha channel.
git-svn-id: https://svn.eduke32.com/eduke32@5770 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-05 04:46:40 +00:00
hendricks266
f0f7b04652 Polymer: Fix the oversight in handling tspr->extra from r5400 by setting it to zero in polymer_scansprites.
git-svn-id: https://svn.eduke32.com/eduke32@5769 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-05 04:46:37 +00:00
hendricks266
0434a87e3a Remove trailing whitespace from anything we don't need to rebase from an upstream.
git-svn-id: https://svn.eduke32.com/eduke32@5768 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-05 04:46:28 +00:00
terminx
0de66c3411 Misc Polymost crap. Improves detection of sprite/wall collisions for z-fighting avoidance
git-svn-id: https://svn.eduke32.com/eduke32@5725 1a8010ca-5511-0410-912e-c29ae57300e0
2016-05-13 22:15:28 +00:00
hendricks266
61fe1c554a GL ES: Interpreting glGetError as always meaning "this internal texture format doesn't work" is too dangerous to keep in the live code (not to mention wasteful). Move it to a new and improved Polymost_InitDummyTexture, now called Polymost_DetermineTextureFormatSupport.
git-svn-id: https://svn.eduke32.com/eduke32@5715 1a8010ca-5511-0410-912e-c29ae57300e0
2016-05-04 00:25:24 +00:00
hendricks266
b8f22a6d9c Polymost: Factor out the ETC block preparation by moving the ETC function decision from Polymost_SendTexToDriver into Polymost_PickETCFunction.
git-svn-id: https://svn.eduke32.com/eduke32@5714 1a8010ca-5511-0410-912e-c29ae57300e0
2016-05-04 00:25:20 +00:00
hendricks266
868306abef Polymost: Allow compressed ART tiles (r_texcompr 2) to be cached.
git-svn-id: https://svn.eduke32.com/eduke32@5713 1a8010ca-5511-0410-912e-c29ae57300e0
2016-05-04 00:25:17 +00:00
hendricks266
b40f9b5b80 You'll Cowards Don't Even Indent
git-svn-id: https://svn.eduke32.com/eduke32@5712 1a8010ca-5511-0410-912e-c29ae57300e0
2016-05-04 00:25:13 +00:00
hendricks266
73459ede47 Polymost: Tweak the "don't upload textures with dimension > xdim" GL ES rule to limit to the power of two greater than xdim instead of less than it.
git-svn-id: https://svn.eduke32.com/eduke32@5711 1a8010ca-5511-0410-912e-c29ae57300e0
2016-05-04 00:25:10 +00:00
hendricks266
84a2695cdc Polymost: Clean up and rearrange some texcache code. No functional changes.
git-svn-id: https://svn.eduke32.com/eduke32@5710 1a8010ca-5511-0410-912e-c29ae57300e0
2016-05-04 00:25:06 +00:00
hendricks266
d1266434f1 Polymost: Call texcache_calcid once per texture instead of twice. Clean it up a little while we're at it.
git-svn-id: https://svn.eduke32.com/eduke32@5709 1a8010ca-5511-0410-912e-c29ae57300e0
2016-05-04 00:25:02 +00:00
hendricks266
b529af4b55 In polymost_glinit, pass a dummy 4x4 texture to uploadtexture in order to detect what compressed texture formats are acceptable without wasting time compressing the first texture it encounters, such as the 3D Realms screen, in case the graphics chip won't take it.
git-svn-id: https://svn.eduke32.com/eduke32@5704 1a8010ca-5511-0410-912e-c29ae57300e0
2016-05-02 18:29:32 +00:00
terminx
958cdfbcbd Tweak nofog, DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5699 1a8010ca-5511-0410-912e-c29ae57300e0
2016-04-13 04:04:07 +00:00
hendricks266
1254ce06d9 Polymost: Fix shading on ART tiles with fullbrights displayed without masking, such as on a whitewall.
git-svn-id: https://svn.eduke32.com/eduke32@5694 1a8010ca-5511-0410-912e-c29ae57300e0
2016-04-06 03:07:52 +00:00
hendricks266
b3f2532bb5 GL ES: Introduce ETC1 and (alpha-less) ETC2 texture compression, which improves performance by using less VRAM and requiring shorter data bus transfers.
git-svn-id: https://svn.eduke32.com/eduke32@5690 1a8010ca-5511-0410-912e-c29ae57300e0
2016-03-28 05:16:14 +00:00
terminx
e2c24bda95 Android stuff. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5661 1a8010ca-5511-0410-912e-c29ae57300e0
2016-03-14 00:07:28 +00:00
terminx
2a55c890e0 Remove a couple of apparently unncessary glPushMatrix()/glPopMatrix() calls.
git-svn-id: https://svn.eduke32.com/eduke32@5658 1a8010ca-5511-0410-912e-c29ae57300e0
2016-03-14 00:07:15 +00:00
terminx
2b357b58f1 Android work. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5652 1a8010ca-5511-0410-912e-c29ae57300e0
2016-03-14 00:06:54 +00:00
hendricks266
dd0f16875f Engine: Add one-bit alpha detection for hightile and model skins.
git-svn-id: https://svn.eduke32.com/eduke32@5649 1a8010ca-5511-0410-912e-c29ae57300e0
2016-03-07 11:22:02 +00:00
hendricks266
e9d3b4cc43 Polymost: Add r_texcompr 2, which compresses ART in addition to hightile.
git-svn-id: https://svn.eduke32.com/eduke32@5648 1a8010ca-5511-0410-912e-c29ae57300e0
2016-03-07 11:21:58 +00:00
hendricks266
7dd054069f Polymost: Add HICR_ARTIMMUNITY and DAMETH_ARTIMMUNITY, which currently function identically to NOTEXCOMPRESS and NODOWNSIZE combined, and are only used when:
1. Using an ART tile
2. Using a hightile defined through the tilefromtexture "texture" subtoken
3. Using a hightile that, if downsized, will be smaller than the ART tile for that tilenum (tenuous)

git-svn-id: https://svn.eduke32.com/eduke32@5647 1a8010ca-5511-0410-912e-c29ae57300e0
2016-03-07 11:21:55 +00:00
hendricks266
c73e8c5036 Fix mistakes in r5642.
git-svn-id: https://svn.eduke32.com/eduke32@5645 1a8010ca-5511-0410-912e-c29ae57300e0
2016-03-07 11:21:46 +00:00
hendricks266
7011b30e50 Engine: Move daskinloader into mdloadskin and clean up it and gloadtile_hi against one another.
git-svn-id: https://svn.eduke32.com/eduke32@5644 1a8010ca-5511-0410-912e-c29ae57300e0
2016-03-04 19:24:54 +00:00
hendricks266
506e89fefb Polymost: Refactor all GL internal texture format decision making into uploadtexture().
This directly achieves the following:
* Eliminated codedup.
* Recently introduced GL ES performance downsampling now applies to model skins.
* Replaces the alpha/art format distinction with {RGB/no alpha, RGBA/one-bit alpha (ART transparency), RGBA/full alpha}.
* Cleanly allows multiple fallback formats for each type.
* Ready for further commits.

git-svn-id: https://svn.eduke32.com/eduke32@5642 1a8010ca-5511-0410-912e-c29ae57300e0
2016-02-29 06:34:20 +00:00
hendricks266
e2df2d60d1 Engine: Rename HICR_NOCOMPRESS to HICR_NODOWNSIZE, CACHEAD_NOCOMPRESS to CACHEAD_NODOWNSIZE, DAMETH_NOCOMPRESS to DAMETH_NODOWNSIZE, and HICR_NOSAVE to HICR_NOTEXCOMPRESS.
git-svn-id: https://svn.eduke32.com/eduke32@5640 1a8010ca-5511-0410-912e-c29ae57300e0
2016-02-29 06:34:12 +00:00
terminx
d3ff92c5d5 Android shit. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5629 1a8010ca-5511-0410-912e-c29ae57300e0
2016-02-17 19:08:32 +00:00
terminx
5672004ba1 Android crap. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5625 1a8010ca-5511-0410-912e-c29ae57300e0
2016-02-13 21:06:28 +00:00
terminx
0edf078f0c Fix Polymost issue reported at https://forums.duke4.net/topic/8470-weirdness-of-players-sprite-in-view-modef7/
git-svn-id: https://svn.eduke32.com/eduke32@5605 1a8010ca-5511-0410-912e-c29ae57300e0
2016-02-02 00:21:27 +00:00
hendricks266
a35f3b13dc Replace the semicolon trailing empty-bodied loops with opening and closing braces.
I believe this is the clearest way to indicate that an empty-bodied loop is intended, as opposed to the possibility of a mistaken semicolon.

This eliminates "warning: suggest a space before β€˜;’ or explicit braces around empty body in β€˜for’ statement" with GCC 4.2, which is important for old OS X versions.

git-svn-id: https://svn.eduke32.com/eduke32@5556 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-12 10:31:12 +00:00
terminx
a7e6ed8745 Fix quite a few issues with casting away const and volatile qualifiers, found with -Wcast-qual. If we're going to use const everywhere, we should really mean it!
git-svn-id: https://svn.eduke32.com/eduke32@5540 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-11 05:05:38 +00:00
hendricks266
28a9372a79 Enable models by default under EDUKE32_GLES, because they now work!
git-svn-id: https://svn.eduke32.com/eduke32@5528 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-08 01:33:28 +00:00
hendricks266
e00115c043 Introduce USE_GLEXT macro and use it to conditionally compile out all GL ARB function calls when compiling for GL ES platforms.
This replaces the previous hack where we kept the dynamic pointers null and simply never tried calling any of them by a conspiracy of default runtime settings and disabled menu options.

Code affected: VBO support for models, VPX GLSL decoding, texture compression (texture cache), and multitexturing (glow/detail maps).

This commit also replaces EDUKE32_GLES conditionals with USE_GLEXT where appropriate.

I didn't touch polymer.c because it depends too heavily on extensions for conditionally compiling them to make sense.

git-svn-id: https://svn.eduke32.com/eduke32@5526 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-08 01:33:20 +00:00
hendricks266
7f5a8f9a23 Polymost: Make voxels take on the current basepalette, like they should.
git-svn-id: https://svn.eduke32.com/eduke32@5494 1a8010ca-5511-0410-912e-c29ae57300e0
2015-12-26 15:42:09 +00:00
terminx
32ba947b4b Fix cstat 1024 in classic and Polymer
git-svn-id: https://svn.eduke32.com/eduke32@5484 1a8010ca-5511-0410-912e-c29ae57300e0
2015-12-23 04:05:58 +00:00
terminx
c9fefe641d Increase Polymost depth fighting mitigation offset, plus some other minor changes that shouldn't affect anything.
git-svn-id: https://svn.eduke32.com/eduke32@5482 1a8010ca-5511-0410-912e-c29ae57300e0
2015-12-23 04:05:51 +00:00