Commit graph

908 commits

Author SHA1 Message Date
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
hendricks266
7e12cf2a83 jwzgles: Add glCompressedTexImage2D and glCompressedTexSubImage2D as cheap copies of their non-compressed variants.
git-svn-id: https://svn.eduke32.com/eduke32@5676 1a8010ca-5511-0410-912e-c29ae57300e0
2016-03-28 05:15:20 +00:00
hendricks266
3bbe30a6f8 Un-break the iOS build.
git-svn-id: https://svn.eduke32.com/eduke32@5672 1a8010ca-5511-0410-912e-c29ae57300e0
2016-03-28 05:15:05 +00:00
terminx
1b5335ad72 Add #pragma once to the top of a couple of the most commonly included headers in build/include. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5664 1a8010ca-5511-0410-912e-c29ae57300e0
2016-03-14 00:07:44 +00:00
terminx
83acadd3b4 Remove useless bytesperline parameter from a couple of kplib functions.
git-svn-id: https://svn.eduke32.com/eduke32@5660 1a8010ca-5511-0410-912e-c29ae57300e0
2016-03-14 00:07:22 +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
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
aec2da83cd Add BuildGLErrorCheck(), useful for debugging GL.
git-svn-id: https://svn.eduke32.com/eduke32@5641 1a8010ca-5511-0410-912e-c29ae57300e0
2016-02-29 06:34:16 +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
hendricks266
dce9e3c91e Add preprocessor token NO_ALIGNED_MALLOC which disables compilation with aligned memory allocation. Useful for old versions of Windows and Mac OS X.
git-svn-id: https://svn.eduke32.com/eduke32@5636 1a8010ca-5511-0410-912e-c29ae57300e0
2016-02-29 06:33:58 +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
66e6bbff0d Add support for changing the refresh rate in SDL builds. Should also fix non-SDL builds.
git-svn-id: https://svn.eduke32.com/eduke32@5621 1a8010ca-5511-0410-912e-c29ae57300e0
2016-02-13 21:06:12 +00:00
hendricks266
f1d187d378 Lunatic: Fix cast-qual warnings having to do with L_RunString.
git-svn-id: https://svn.eduke32.com/eduke32@5590 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-27 07:30:23 +00:00
terminx
86a4660f08 const stuff
git-svn-id: https://svn.eduke32.com/eduke32@5572 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-21 19:35:06 +00:00
terminx
eacd9527a3 Mapster32: configurable point and line highlight/selection distances
git-svn-id: https://svn.eduke32.com/eduke32@5568 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-15 07:58:57 +00:00
hendricks266
95a70e063d OS X: Fix Polymer build.
git-svn-id: https://svn.eduke32.com/eduke32@5557 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-12 10:31:15 +00:00
hendricks266
344e10628f Part two of more const casting, this time affecting argv instances.
git-svn-id: https://svn.eduke32.com/eduke32@5552 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-12 10:30:56 +00:00
hendricks266
98ebda94ec Address some const-disregarding casts missed in r5540 due to conditional compilation settings and platforms.
git-svn-id: https://svn.eduke32.com/eduke32@5551 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-12 10:30:48 +00:00
terminx
db8b4a00b6 Enable -Wwrite-strings and fix all instances where string constants were passed to functions accepting a char ptr.
git-svn-id: https://svn.eduke32.com/eduke32@5547 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-11 05:06:10 +00:00
terminx
e27eb7a7e5 Use XXH64 functions for editor undo/redo when building for 64-bit.
git-svn-id: https://svn.eduke32.com/eduke32@5546 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-11 05:06:02 +00:00
terminx
df32b0b788 Update to the newest version of xxHash.
git-svn-id: https://svn.eduke32.com/eduke32@5542 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-11 05:05:47 +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
2e968b90bf Add inthashtable_t, mapping intptr_t to intptr_t.
git-svn-id: https://svn.eduke32.com/eduke32@5532 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-08 01:33:46 +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
ff80e020ad jwzgles: fix warnings when compiling on Linux
git-svn-id: https://svn.eduke32.com/eduke32@5525 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-08 01:33:15 +00:00
hendricks266
409b14fb62 jwzgles: fix errors when compiling on Linux
git-svn-id: https://svn.eduke32.com/eduke32@5523 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-08 01:33:08 +00:00
terminx
7bbd2c8ffd Misc cleanup, add shorthand versions of getplayer, getactor, etc.
git-svn-id: https://svn.eduke32.com/eduke32@5505 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-03 20:07:24 +00:00
terminx
935e9fa197 Fix hard coded white and red color indexes used in on-screen debug output, to better operate with a palette dissimilar to Duke3D.
git-svn-id: https://svn.eduke32.com/eduke32@5497 1a8010ca-5511-0410-912e-c29ae57300e0
2015-12-28 02:04:36 +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
c00f933a37 Update LZ4
git-svn-id: https://svn.eduke32.com/eduke32@5485 1a8010ca-5511-0410-912e-c29ae57300e0
2015-12-23 04:06:05 +00:00
terminx
2500c7b517 Add support for sector/wall/sprite struct trackers to Polymer
git-svn-id: https://svn.eduke32.com/eduke32@5481 1a8010ca-5511-0410-912e-c29ae57300e0
2015-12-23 04:05:47 +00:00
hendricks266
38dfb0a2b2 Polymodes: Add a new pthtyp flag to mark textures that should not be processed by the fixtransparency() hack (which avoids the transparent color blending into a sprite when texture filtering is enabled), such as non-(T)ROR-masking floors and ceilings, white- and mask-walls, paper-skies, and rotatesprite with orientation flag 64. This commit makes sure the flag's status always fits the situation.
This fixes the remaining issue with WWII GI's LOGO.ANM: Color index #255 is used as the dominant white color (not as a transparent index) and fixtransparency() was mangling the image as a result.

git-svn-id: https://svn.eduke32.com/eduke32@5465 1a8010ca-5511-0410-912e-c29ae57300e0
2015-12-04 11:52:58 +00:00
hendricks266
56f331574d Polymost: Enumify the lower bits of the method/dameth argument to various functions.
git-svn-id: https://svn.eduke32.com/eduke32@5464 1a8010ca-5511-0410-912e-c29ae57300e0
2015-12-04 11:52:54 +00:00
hendricks266
af5f47797d cache1d: Add kfileparent().
git-svn-id: https://svn.eduke32.com/eduke32@5443 1a8010ca-5511-0410-912e-c29ae57300e0
2015-11-25 12:08:00 +00:00
hendricks266
d723316bf5 Polymodes: Don't test (!usemodels || md_tilehasmodel(picnum, pal) < 0) in eligible_for_tileshades (called only from getshadefactor) because getshadefactor is only called when a model is *not* being drawn, and therefore results in incorrect shading when drawing a tile with a model defined and models enabled to the screen or as a skybox.
git-svn-id: https://svn.eduke32.com/eduke32@5440 1a8010ca-5511-0410-912e-c29ae57300e0
2015-11-25 12:07:51 +00:00
hendricks266
34bf6443ce Polymodes: Slight optimizations in getshadefactor.
git-svn-id: https://svn.eduke32.com/eduke32@5439 1a8010ca-5511-0410-912e-c29ae57300e0
2015-11-25 12:07:47 +00:00
helixhorned
f8076f9207 Mapster32: honor "blocking color" declared with DEF 'spritecol' et al.
Meaning tilegroup's 'colors' directive.

Also, to the packaged tiles.cfg, add a description of how to emulate the
earlier Mapster32 sprite coloring for one tile group.

git-svn-id: https://svn.eduke32.com/eduke32@5429 1a8010ca-5511-0410-912e-c29ae57300e0
2015-11-14 23:40:59 +00:00
helixhorned
51489e44d4 Mapster32: add var 'corruptcheck_game_duke3d' and enable by default.
Currently, this checks for effector sprites that are not face-aligned.
See
https://forums.duke4.net/topic/8324-icestation-colossus-map-broken

git-svn-id: https://svn.eduke32.com/eduke32@5420 1a8010ca-5511-0410-912e-c29ae57300e0
2015-11-14 17:21:11 +00:00
helixhorned
d824ddf406 Mapster32: fix fillsector() calls before fade_editor_screen().
The latter allows one to specify a color to keep, but with r5302 the
fillsector() highlights are drawn with transparency, thus making it ineffective.
Add an argument to toggle transparency to fillsector()
(now fillsector_maybetrans()) and two wrapper functions.

git-svn-id: https://svn.eduke32.com/eduke32@5411 1a8010ca-5511-0410-912e-c29ae57300e0
2015-10-31 15:13:32 +00:00
terminx
7eec6b36a5 Sprite sorting changes:
-Sort by owner now occurs only when two sprites have matching x/y coordinates.
-Cstat 1024 now activates a special drawing mode that indicates a sprite should be drawn without depth after all other sprites have been drawn. The previous cstat 1024 functionality, an internal hack for shadows cast by models in Polymost, has been moved to bit 1 of a new graphical effects bitfield stored in a tsprite's .extra member.

git-svn-id: https://svn.eduke32.com/eduke32@5400 1a8010ca-5511-0410-912e-c29ae57300e0
2015-10-21 19:54:14 +00:00
terminx
470449a963 Fix saving and loading crosshaircolor, and fix fps counter color when using a palette that doesn't correspond to Duke3D's color indexes.
git-svn-id: https://svn.eduke32.com/eduke32@5387 1a8010ca-5511-0410-912e-c29ae57300e0
2015-10-20 07:15:01 +00:00
terminx
e30ab0068e Mapster32: fix 2d3d mode input issue when sector is -1
git-svn-id: https://svn.eduke32.com/eduke32@5385 1a8010ca-5511-0410-912e-c29ae57300e0
2015-10-20 07:14:52 +00:00
hendricks266
a0018555ee Split the colormatching portion of getclosestcol_lim into getclosestcol_nocache_lim in case speed is desired when processing an image with mostly unique colors.
git-svn-id: https://svn.eduke32.com/eduke32@5376 1a8010ca-5511-0410-912e-c29ae57300e0
2015-10-10 06:57:32 +00:00
hendricks266
f232b2fa51 Move PaletteIndexFullbrights back into the engine and autodetect fullbrights instead of hardcoding them.
git-svn-id: https://svn.eduke32.com/eduke32@5373 1a8010ca-5511-0410-912e-c29ae57300e0
2015-10-03 11:53:13 +00:00
hendricks266
cac05f8305 Defs: Add "undef" subtokens to and undef-range versions of basepalette, palookup, and blendtable.
git-svn-id: https://svn.eduke32.com/eduke32@5367 1a8010ca-5511-0410-912e-c29ae57300e0
2015-10-03 11:52:51 +00:00
hendricks266
ff416551ce Split the initialization of the pragma.h's libdivide tables into its own function.
git-svn-id: https://svn.eduke32.com/eduke32@5362 1a8010ca-5511-0410-912e-c29ae57300e0
2015-09-27 21:18:12 +00:00
hendricks266
5f2b662c77 Split the getclosestcol functions into a new object, colmatch.
git-svn-id: https://svn.eduke32.com/eduke32@5359 1a8010ca-5511-0410-912e-c29ae57300e0
2015-09-27 21:17:59 +00:00
hendricks266
a557eedf7e Remove NULL checks before calling free(): they are unnecessary as per the C standard. Other cleanup includes factoring code into DO_FREE_AND_NULL() macros.
git-svn-id: https://svn.eduke32.com/eduke32@5352 1a8010ca-5511-0410-912e-c29ae57300e0
2015-09-23 17:55:31 +00:00
hendricks266
1ca367960f Defs: Add basepalette, palookup, and blendtable tokens.
git-svn-id: https://svn.eduke32.com/eduke32@5351 1a8010ca-5511-0410-912e-c29ae57300e0
2015-09-23 17:55:19 +00:00