Commit graph

85 commits

Author SHA1 Message Date
Christoph Oelckers
aec1c85c08 - fixed: alpha for patches needs to be multiplied by 65536, not divided by. 2016-04-11 22:21:17 +02:00
Christoph Oelckers
0c39bdd04c - floatified texture scale values. 2016-03-26 13:37:44 +01:00
Christoph Oelckers
5bf806e478 - renamed some fixed point stuff in the texture composition code. 2016-03-24 16:16:45 +01:00
Christoph Oelckers
4e60ea0252 - made AActor::alpha a floating point value
- replaced some uses of FRACUNIT with OPAQUE when it was about translucency.
- simplified some overly complicated translucency multiplications in the SBARINFO code.
2016-03-21 12:18:46 +01:00
Christoph Oelckers
9b134a78e3 - fixed: The TEXTURES parser wanted a redundant comma after parsing a color. 2016-03-16 22:42:41 +01:00
Randy Heit
8a03b99b9c Use ScriptMessage to warn about missing patches in a TEXTURES texture 2016-03-12 19:23:49 -06:00
Randy Heit
55142078d8 Normalize line endings 2016-03-01 09:47:10 -06:00
Randy Heit
e259087c19 Change RGB32k to a union of BYTE[32][32][32] and BYTE[32*32*32]
- Clang's optional runtime array bounds checking doesn't understand when we
  intentionally "overflow" by doing this:
    RGB32k[0][0][colorval]
  It will warn that it was accessed at an index will past the bounds
  of type 'BYTE [32]', which makes it less than useful for catching real
  array bounds overflows. So now do this:
    RGB32k.All[colorval]
  And if you want this:
    RGB32k[r][g][b]
  Now do this:
    RGB32k.RGB[r][g][b]
2015-03-08 18:05:02 -05:00
Edoardo Prezioso
b285cbebe4 - Fixed compiler errors in latest TEXTURES code. 2014-05-25 01:12:16 +02:00
Shawn Walker
582b1990b7 - restore original line endings 2014-05-18 16:00:31 -07:00
Shawn Walker
59885b856d - remove texture name length limits for udmf maps 2014-05-18 15:38:46 -07:00
Shawn Walker
fdfcb728a9 - make it easier to spot patch definition errors in console log 2014-05-13 22:50:39 -07:00
Christoph Oelckers
ca4179caa3 - allow texture lookup by full path names. Due to technical limitations this may result in double textures if the same graphics lump is also referenced by its short texture name. 2014-05-13 20:51:16 +02:00
Randy Heit
1d4f4b25d7 Don't free replaced textures that are used as patches.
- Fixed: If a part of a multipatch texture is replaced by a HIRESTEX
  version, the original patch must not be deleted, since the multipatch
  texture still needs it for compositing.
2014-02-24 19:01:36 -06:00
Randy Heit
260ce62175 Don't abort for TEXTUREx lumps that define textures with no patches
- A texture defined in TEXTUREx without any patches isn't necessarily an
  error, so accept. This also means they shouldn't be used for determining
  if a TEXTURE directory belongs to Strife instead of Doom.
2013-08-30 23:10:20 -05:00
Randy Heit
fef083f59c - Use a temporary bitmap when when copying true color pixels of a multipatch texture, the blend
operation is not BLEND_NONE, and it doesn't just redirect straight to a direct texture.

SVN r4151 (trunk)
2013-02-20 01:31:41 +00:00
Randy Heit
4ac8f5eae4 - Fixed: FMultiPatchTexture::CopyTrueColorPixels() set up the alpha values backwards for blend mode BLEND_OVERLAY.
SVN r3806 (trunk)
2012-08-04 03:01:17 +00:00
Braden Obrzut
f4ff63e7c3 - Fixed: FMultiPatchTexture::ParsePatch didn't pass the usetype onto FTexture::CreateTexture.
SVN r3658 (trunk)
2012-05-17 03:24:27 +00:00
Randy Heit
1ac8f8b348 - Did some restructuring of FMultiPatchTexture::CopyTrueColorPixels() so that it composites to
a temporary bitmap before copying to the destination bitmap if any fancy stuff is going on.
  This simplifies the part drawing, since it doesn't need to check if each part is a multipatch
  texture. It also means it can reliably use copy operations other than OP_COPY.

SVN r3639 (trunk)
2012-05-11 03:52:58 +00:00
Randy Heit
37001d3640 - Added new patch style "Overlay" for TEXTURES. This is the same as CopyAlpha, except it only
copies the patch's alpha channel where it has a higher alpha than what's underneath.

SVN r3638 (trunk)
2012-05-11 02:26:50 +00:00
Randy Heit
b9c3f8db4f - Added a new patch style: CopyNewAlpha. This works just like Copy except it multiplies each
pixel's alpha channel by the specified Alpha property.

SVN r3637 (trunk)
2012-05-11 02:05:24 +00:00
Randy Heit
eb03d8e77e - There doesn't seem to be much point to this inf==NULL check when inf isn't used either way...
SVN r3635 (trunk)
2012-05-10 03:47:40 +00:00
Randy Heit
9340dc4eca - Changed FMultiPatchTexture::CopyTrueColorPixels() so that all parts use their copy info.
Previously, "complex" parts would ignore it and use the copy info passed to the function
  instead. The copy info passed to the function is now only used to decide to if it should clear
  the destination image. I'm not sure if this really matters, since it itself is the only place aside
  from FTexture::FillBuffer() that ever calls CopyTrueColorPixels() with a copy info, and when
  it does so for a multipatch texture, it does so to a temporary buffer.

SVN r3634 (trunk)
2012-05-10 03:07:30 +00:00
Braden Obrzut
9c8bb236ec - Backport r1253 through r1256 and r1259 of GZDoom.
* By pressing request, allow Linux users to build ZDoom with an FMOD version that doesn't give them 3D sound positioning. :p
	* Fixed severe copy-pasta portal copy bug.
	* 3D floors hidden by being moved above the ceiling or below the floor will no longer show in the automap.
	* Reject TEXTURES scale of 0. They'd do nothing but provoke a division by zero error.
	* Maybe fixed Linux compilation?

SVN r3297 (trunk)
2011-09-27 01:14:31 +00:00
Christoph Oelckers
fbff5ca932 - moved r_interpolate.cpp and r_translate.cpp to r_data.
- merged r_jpeg.h into jpegtexture.cpp because that's the only place where it's ever used.


SVN r3255 (trunk)
2011-07-06 08:50:15 +00:00
Christoph Oelckers
5c6fd66ed5 - rename src/resources to src/r_data.
SVN r3254 (trunk)
2011-07-06 07:35:36 +00:00
Christoph Oelckers
17ed7aaabd - moved the code from r_data.cpp to some better fitting places and deleted this file and r_data.h because the remaining parts of it were just a random collection of unrelated functions.
SVN r3248 (trunk)
2011-07-05 10:02:38 +00:00
Christoph Oelckers
4626492f50 - separated all colormap related code from v_palette.cpp and r_data.cpp into its own file.
SVN r3245 (trunk)
2011-07-03 10:47:35 +00:00
Randy Heit
29e486495b - Fixed: The sign in Eternall.wad, map25 on line 2236 rendered at the wrong height because Doom
ignored the Y locations of patches drawn on two-sided midtextures and always drew them at the
  top of the texture. Added a compatibility flag.

SVN r3205 (trunk)
2011-05-13 03:29:48 +00:00
Christoph Oelckers
1993e969b7 - GCC warning fixes (GCC stupidity for the most part.)
SVN r3154 (trunk)
2011-02-19 08:59:43 +00:00
Braden Obrzut
15d74dab56 - Fixed: GCC warnings.
SVN r2843 (trunk)
2010-09-21 20:35:40 +00:00
Christoph Oelckers
385cfc5698 - fixed some texture priorititing problems with Hexen's player displays for the menu. The patches for these should not be placed in the TEX_WallPatch namespace because it's not what modders might expect from them.
SVN r2841 (trunk)
2010-09-21 16:50:09 +00:00
Christoph Oelckers
579502ab74 - merged menu branch back into trunk.
SVN r2768 (trunk)
2010-09-14 17:28:18 +00:00
Christoph Oelckers
e0419dde15 - fixed: Camera textures may not be used as patch.
SVN r2296 (trunk)
2010-04-21 06:42:48 +00:00
Christoph Oelckers
a5e422020e - fixed: Two stage texture compositing did not clear the intermediate buffer before using it.
SVN r2277 (trunk)
2010-04-09 20:03:18 +00:00
Christoph Oelckers
87f3c9c5b7 - fixed: The floor waggle code used FloatBobOffsets as sine table but this
only has 64 entries and is not precise enough. It now uses finesine instead.
- fixed: When compositing a multipatch texture any patch that is a multpatch
  texture itself and contains rotations may not be composited directly into
  the destination buffer. This must be done with an intermediate buffer.
- Fixed: Drawing a slider in the options menu did not scale the x-coordinate.
- Fixed: If the alt HUD had to draw negative numbers the minus sign was misplaced
  due to incorrect texture coordinate calculations.
- changed option menu scaling for widescreen modes so that it doesn't scale down
  so quickly. 
- made some error messages in DECORATE that don't affect the parsing non-fatal
  so that the parser can continue to find more problems.

SVN r2076 (trunk)
2010-01-02 11:38:27 +00:00
Christoph Oelckers
8390184839 - fixed: FMultiPatchTexture::MakeTexture was missing a range check for the
special colormap index.


SVN r1928 (trunk)
2009-10-18 14:08:32 +00:00
Christoph Oelckers
7e4504f9d6 - Fixed: Coordinate handling for multipatch texture compositing was not correct
for true color. Instead of using a clipping rectangle on the destination it
  tried to alter the source offsets which produced incorrect results for
  mirrored or rotated patches.


SVN r1889 (trunk)
2009-09-30 10:41:24 +00:00
Randy Heit
ed8f1ec8db - Fixed: Alt+F4 no longer quit the program.
SVN r1888 (trunk)
2009-09-30 04:44:14 +00:00
Christoph Oelckers
23c0f24160 - Fixed: The multitexture composition code was missing a NULL pointer check.
SVN r1880 (trunk)
2009-09-26 22:28:55 +00:00
Christoph Oelckers
3ff95001f5 - fixed: The changes for new colormap handling in FMultipatchtexture were incomplete.
Some code was still checking Blend.r instead of the full variable for colormap indices.



SVN r1879 (trunk)
2009-09-26 22:15:56 +00:00
Randy Heit
6a5ab0edc0 - Fixed: FMultiPatchTexture::CopyTrueColorPixels() should clear the buffer
first before drawing into it if the copy op passed to it is OP_OVERWRITE.
  FTexture::FillBuffer() sets this to erase whatever texture might have been
  in the space it is going into.


SVN r1874 (trunk)
2009-09-25 02:27:48 +00:00
Christoph Oelckers
9cc67f565c - Added a check to Dehacked code which tries to set the blend color.
It must set it to 0 if the alpha is 0 to avoid problems with special
  colormap detection.
- Changed SPECIALCOLORMAP_MASK again so that it does not interfere with
  any valid setting. It must use a value with a 0-alpha because these
  are guaranteed not to be produced by the DECORATE code elsewhere.
- Fixed precision issues with AddFixedColormap's search for identical colormaps.
- Added custom colormap support to texture composition code.
- Fixed initialization of FSpecialColormap::GrayscaleToColor. This is not
  a mapping from the palette but from a [0,255] grayscale ramp and used to
  apply colormaps to true color images for texture composition.

SVN r1867 (trunk)
2009-09-22 08:06:52 +00:00
Christoph Oelckers
c285f38a02 - Fixed: When drawing with a special colormap the quad's flags weren't cleared
which could cause crashes.
- Added custom special colormaps to DECORATE.
- Cleaned up special colormap code and removed lots of dependencies on the
  knowledge of the tables' contents.



SVN r1860 (trunk)
2009-09-21 13:15:36 +00:00
Randy Heit
b8eb530a0d - Fixed: Wall drawing handled fixed light levels improperly (but did not
completely ignore them, either).
- Separated light level fixing out of player_t's fixedcolormap parameter.
  Using a fixed light level (e.g. PowerTorch) will no longer wipe out
  colored lighting.
- Moved the blending rectangle drawing into a separate discrete stage, since
  doing it while copying the 3D view window to the display now blends
  underneath the weapon instead of on top of it.
- Consolidated the special colormaps into a single 2D table.
- Tweaked the special colormaps slightly to make the true color results more
  closely match the paletted approximations.
- fb_d3d9_shaders.h was getting unwieldy, so I moved the shaders out of the
  executable and into zdoom.pk3. Shaders are still precompiled so I don't need
  to pull in a dependancy on D3DX.
- Added a few more shaders to accomodate drawing weapons with all the in-game
  lighting models. These are accessed with the new DrawTexture tags
  DTA_SpecialColormap and DTA_ColormapStyle.
- Player weapon sprites are now drawn using Direct3D and receive all the
  benefits thereof.


SVN r1858 (trunk)
2009-09-20 03:50:05 +00:00
Christoph Oelckers
fe96cab254 - Fixed: paletted texture composition with part translucent patches
did not work.


SVN r1771 (trunk)
2009-08-12 22:10:53 +00:00
Christoph Oelckers
74bdfe19c5 - Fixed: The true color texture compositing code did not clip the edges
of multipatch textures used as patches on other multipatch textures.


SVN r1766 (trunk)
2009-08-10 18:30:25 +00:00
Randy Heit
720747baef - Added a "BlueMap" for powerup colors.
- Add the missing CF_WEAPONREADYALT and CF_WEAPONSWITCHOK flags.

SVN r1723 (trunk)
2009-07-17 01:17:06 +00:00
Christoph Oelckers
8034b0558e - Fixed: Textures with dimensions <= 0 are invalid and should be treated as NULL
textures. They also must be set to dimensions other than (0,0) to avoid division
  by zero errors.
- Fixed: Random spawners did not handle the MF_DROPPED flag.


SVN r1602 (trunk)
2009-05-24 07:58:57 +00:00
Randy Heit
bdbb72e43d - Crap.
SVN r1548 (trunk)
2009-04-16 02:05:13 +00:00