<  Previous: 0AD
Next: Megamario >

OpenGL Doom engine

This is a Doom source port based on ZDoom. It features an OpenGL renderer and lots of new features, among them:

  • 3D floors
  • Dynamic lights
  • Quake2/Unreal style skyboxes
  • True color texture support
  • Model support (limited at the moment)

Homepage | License: GPL

Ubuntu versionsUpdated onVersion
StatisticsDownloads: current | total (XtraDeb releases)
2021/10/214.7.196316 (13)

Learn here: How to install applications from this web site

<  Previous: 0AD
Next: Megamario >


Comments: 6

  1. Avatar photo Updates says:

    New version available -> gzdoom 4.10.0-1~xtradeb1

       * New upstream release.
       * Italian language translation is now complete
       * Make the new scaled angle changes at frame rate opt-in behind new flag
       * Set up interpolated camera angle changes to occur at framerate when all
         conditions in P_NoInterpolation() are met.
       * Make view angles interpolate on a separate flag to the one that forces
         interpolation for the entire frame.
       * Map and MapIterator for ZScript
       * Structified A_SpawnParticle/Ex
       * Look up named frames using the Animation ID (if any).
       * Allow Disabling of XY Billboard for Particles
       * Added Method For Getting Portal Group Count
       * Allow Getting Portal Group Offsets
       * Fixed A_Changemodel crash from invalid modeldef names
       * Fix SNDINFO $rolloff always changing global rolloff
       * Fix GC ignoring DynArrays inside fixed Arrays
       * AST debug cleanup
       * fixed: The raw texture caching in the texture manager did not work. This
         erroneously checked for FrontSkyLayer.
       * Allow assigning IQM frames by animation name plus frame offset.
       * Added animation support for OptionMenus
       * Fix crash if Animation is not explicitly assigned in MODELDEF.
       * internal cleanup of sound code
       * allow SNDINFO to declare sound mappings by using 'sound = soundfle' syntax.
        - process events every frame as well to ensure that menus can run at any
       * Fix incorrect pixelratio handling on rotated models.
       * Added Font and TextureID types to Option and Image Scroller items (List
         items already have these)
       * Added "Class" instruction for Image Scrollers
       * Added ability for Option items to read in their OptionMenuDescriptor (List
         and Image Scroller items already have this)
       * Added "ForceList" instruction for Lists so that skill, playerclass, and
         episode menus don't get overridden
       * Fix checking of wrong variable in String..Float concatenation
       * Clearscoped getters for map data
       * CustomMessageBox
       * fix colormap remapping when colormap entries may have fullbright entries
         which should not be considered duplicates
       * stop all sound before showing ENDOOM.
       * disabled shortcutting the intermission code if no summary screen is wanted.
         This also disabled all cutscenes being attached to the completed map.
       * added 'foreach' loop to ZScript.
       * implementation of Quaternion type in ZScript
       * GLES: Added IQM bone support.
       * SendConsoleEvent function for EventHandlers
       * Future-proof particles by resetting them completely when replaced.
       * added PlusZ intrinsic to Vector3 and ToVector intrinsic to numeric values.
         These just mirror features of the internal vector classes.
       * added LengthSquared and Angle intrinsics for all vector types, also allow
         calling VectorAngle with a full vector as a single parameter.
       * Add PushSound property and Slide state
       * Added PS_REPLACE flag for A_SpawnParticle(Ex). When used, new particles
         that spawn when the limit is reached will replace the oldest particle.
       * add Vector4 to ZScript
       * avoid infinite portal recursion.
       * fix uncaught exception that rarely occurred with the intermission screen
         that would vm-abort out from any attempt to enter a level
       * Exposed LevelLocals' LookupString functionality
       * Improved Slam functionality.
       * Normalize angle in AngleToACS. Fixes GetActorAngle returning negative or
         large values with no range limit.
       * Enable ANIMDEFS for particles
       * add some more blacklisted cvars to defcvars
       * fixed background setup for intermissions to apply tiling only where
       * removed the unused BaseBlend* variables and the testblend CCMD.
       * added a compile option to fully disable the software renderer. This is
         mainly for new games which have been designed for hardware rendering.
       * add the following command line parameters:
       * -noextras: disable loading of any extras (lights, brightmaps, widescreen)
       * -nolights: disable loading of lights
       * -nobrightmaps: disable loading of brightmaps
       * -nowidescreen: disable loading of included widescreen assets
       * fixed bad index check in CanWipe. This can be called with index == -1,
         which should check the first element of the intermission.
       * GC: Have a real finalizer stage for destroying objects instead of mixing
         them in to the sweep stage.
       * GC: Base GC rate on a running average of the allocation rate instead of
         basing it on the amount of time taken since the last sweep started.
       * More GC stats for better tweaking.
       * added characters U-0404 and U-0490 for Ukrainian language support.
       * reworked all accented characters of Doom's SmallFont. Also adding a few new
         ones that were easy to do
       * when converting to a portable install, flag the current session accordingly.
       * changed CalculateBones to receive the bone component data directly instead
         of the owning actor.
       * fixed FileExists check for -loadgame. This was done before the current
         savegame path was known so it always errored out.
  2. Avatar photo Updates says:

    New version available -> gzdoom 4.9.0-1~xtradeb1

       * New upstream release.
       * Change of savegame storage
        - This version introduces per-IWAD savegame folders. If you have old
          savegames you still intend to use, please wait with the update until you
          can safely delete them.
       * Highlights
        - IQM bone model support
        - textured particles
       * Details
        - added target check to A_MaulerTorpedoWave.
        - fixed: P_SpawnMapThing may not call playsim code.
        - added PARAM_NULLCHECK to the block iterator creation functions.
        - added [[noreturn]] to several functions that always throw exceptions.
        - Particle Rolling
        - Add Textured Particles
        - Add GFF_NOEXTCHANGE to Phasing Zorcher flash. The Plasma Rifle does not
          light the player's sprite, so we must assume the Phasing Zorcher also
          should not.
        - Fix HUD models not drawing if MODELDEF has been changed with A_ChangeModel
        - Fix inconsistent distance and hit position on traces that skip everything.
        - Fix canvas textures getting clipped by wrong scissor box
        - Fix vulkan backend clearing the canvas textures to undefined contents
        - made DMover and subclasses non-abstract so they can be inherited from.
        - added option to show hub and episode names on the alt HUD.
        - reworked CVARs to not use a linked list and to be initialized manually.
        - marked a few Printf calls in critical error paths as PRINT_NONOTIFY.
        - fixed: R_LoadVoxelDef did not fully initialize the voxel descriptor it
        - don't crash on null pointers in V_GetFont.
        - zero the velocity of crunched sprites. Since their size is zeroed, they are
          no longer subject to collision detection and may slide out of the level
        - don't crash when destroying incomplete textures. This can happen during
          TEXTURES parsing in case of an error.
        - try to keep the engine stable for as long as possible if a VM exception
          occurs in OnDestroy while running a cleanup. This will still crash, but run
          long enough for the exception message to be visible.
        - fixed F2DDrawer::SetClipRect.
        - added vanilla donut handling to compat_floormove.
        - Fixed: voxel models pitch/roll properties weren't initialized correctly
        - Added QF_SHAKEONLY. The QF_SHAKEONLY flag changes the behavior of
          earthquakes with a damage radius, so that they only shake actors around,
          without also harming them.
        - Added QF_AFFECTACTORS. The QF_AFFECTACTORS flag makes the thrusting and
          harming of damaging earthquakes also affect monsters. Monsters with
          DONTTHRUST will not be flung around by earthquakes.
        - Added the QF_GROUNDONLY flag. The QF_GROUNDONLY flag makes earthquakes only
          shake the player while they are standing on the ground.
        - fixed DrawLine commands by giving them a consistent floating point
        - heretic: e2m7 - missing texture
        - fixed direct native interface for Draw(Thick)Line.
        - fixed: The main loop never checked the cutscene flag for disabling wipes.
        - Sync movie video playback to the audio, when possible
        - Fix washed out colors in Vulkan HDR mode
        - normalize the timer with the app start, not the epoch. This ensures smaller
          values and less wraparounds with integer values in scripts.
        - un-deprecated the integer MSTime variant. Due to undefined downconversion
          rules from double to int, there is no way to safely downcast the return
          from MSTimef, meaning the function is completely useless for retrieving
          integral time stamps.
        - added Harmony ENDOOM screen.
        - added a config getter to the interface.
        - moved language CVAR to backend.
        - handle menu customization via callbacks.
        - move hud scale CVARs to the backend.
        - handle autoload flags in startup through function parameters instead of
          directly accessing the CVARs.
        - handle Build tiles via explicit callback to the init function.
        - add a system interface for CheckCheatmode and moved some sound code to the
        - Exported GetDisplayTopOffset for font characters to ZScript
        - added missing obituary for Strife's turret.
        - Added support for BLOCKLANDMONSTERS in Line_SetBlocking.
        - Added APROP_FriendlySeeBlocks to Set/GetActorProperty
        - Fix planeval; add direct sector slope manipulation
        - Modify to have one GetVertexZ rather than IsVertexZSet / GetVertexZ
        - Add vertex height manipulation functions to LevelPostProcessor
        - Add sv_noextraammo. When set to true, disables that weird hardcoded
          behavior from original Doom that gives extra ammo when picking up weapons
          in deathmatch
        - fixed: all script methods adding an object to a dynamic array must perform
          a write barrier.
        - add freezetics actor property
        - allow notification of actor goal is reached inside of a SECF_NOATTACK
        - GLES2: Fix anistropic filtering
        - disabled discord-rpc debug info for configurations without it
        - fixed sky cap color handling
        - fix arti teleport and arti teleother not respecting useplayerstartz mapflag
        - UE1 models now handle frame index -1 properly.
        - Add support for the GOG releases of the Unity versions of Doom and Doom II.
        - carry over the tiling flag from the finished to the entering screen
        - Prevent Keyconf from adding duplicate playerclass
        - Add detection for the Final Doom WADs that were recently added to the Steam
          version of Doom II.
        - new method to define obituaries without modifying actors.
        - remove latch flag from sv_cheats
        - add openscreenshots opensaves and openconfig console commands on Windows
          and Linux and Mac
        - use consistent index types for array function return values.
        - pass clip rect as pointer to F2DDrawer::AddLine.
        - Export FindLumpFullName to ZScript.
        - Add support for nested user types
        - made adjustments for proper int type promotion to allow internal ZScript to
          compile with it on.
        - ZScript: fixed integer type promotion for shift operator
        - version-restrict int to uint promotion. Some mods depend on this not
        - fixed: The compile context for constant evaluation did not initialize its
          Version member.
        - Don't throw away unsignedness when passing unsigned constants to the
        - Add signed->unsigned promotion for binary operators
        - fix menu commands with semicolon separated commands
        - get rid of M_Malloc call in WriteSavePic
        - Fix definition order of ZScript structs. Do a first pass over the Structs
          array in CompileAllFields() to reorder them such that if a struct uses
          other structs, those structs will be resolved first.
        - Fix viewpoint buffer not getting cleared when in the menus
        - backported KDE detection from Raze.
        - removed the Softpoly backend.
        - Add a 2d drawer to canvas textures
        - Fix incorrect mapping of texture indices for UE1 models.
        - Added PitchFromMomentum, UseActorPitch and UseActorRoll to VOXELDEF.
          Behaves exactly like their 3D model counterparts. Hardware renderer only.
        - removed some redundant chaaracters from the Doom SmallFont.
        - Added IQM bone model support
        - Added A_ChangeModelDef
        - fixed return values of FTextureAnimator::AddAnim
        - add longsavemessages to simple menu. set longsavemessages default to false.
        - DirectInput cleanup. Removing ancient code that's only useful on pre-XP
        - also allocate FDoorAnimation's frame table from the texture manager's
          memory arena.
        - optimized storage for animation definitions.
        - Fixed vulkan crash when multisampling is enabled
        - add a method for filling a shape2d instead of using a texture (#1661)
        - add stencil buffer support for 2d drawing (#1660)
        - add a system for setting all of 2D drawing's transform, not just shapes
        - Expose ConsoleState to scripts
        - rewrote Windows console code for Windows 10's new terminal.
        - fixed and consolidated artifact check in cheat code.
        - removed volatile type punning for clipping against line portals.
        - fixed handling of *dive and *surface sounds.
        - -let A_FireProjectile pass through the second return value of
        - fixed PoisonCloud's looping animation count.
        - weapons are not artifacts.
        - rename PrintString to PrintfEx and make it a vararg function
        - Expose Print Flags to ZScript
        - fixed names for A_PlaySoundEx
        - ENDOOM is not Windows only anymore.
        - fixed background tiling for summary screen. Since the background object
          gets recycled it must clear this flag before loading a new background.
        - let the "abort" button on the network pane of the startup screen do a hard
          exit on Windows.
        - make sure ticdup is initialized.
        - Add +ONLYVISIBLEINMIRRORS and +INVISIBLEINMIRRORS actor flags. The former
          makes the actor only visible in reflections, while the latter makes the
          actor not cast reflections in mirrors.
        - cleanup and refactoring of Vulkan backend
        - Improve vk_debug output a lot by throwing away the useless parts of the
          message and limit the callstack to the first 5 gzdoom calls
        - validate fountaincolor before using it.
        - added detection of macOS Ventura
        - ZScript: don't allow multiple assignment syntax with only one element.
        - fixed type of third argument of MBF21's MonsterMeleeAttack function. This
          is a sound, not an int.
        - added an override for NOTAUTOAIMED flag when using P_AimLineAttack for
          informative CCMDs.
        - allow taking screenshots in cutscenes.
        - fixed JIT target function for GetTimeFrac.
        - fixed: For cutscenes the alternative clean scaling factors need to be
        - fixed setup of ready state with Dehacked. This needs to emulate the hard
          coded chainsaw sound when weapon states get reassigned.
        - Fix the discolored sky bug
        - check point pushers/pullers ...
  3. Avatar photo Updates says:

    New version available -> gzdoom 4.8.2-1~xtradeb1

       * New upstream release.
       * Highlights
        - Fixes a few bugs that were overlooked in 4.8.1.
       * Details
        - Fixed names for A_PlaySoundEx.
        - ENDOOM is not Windows only anymore.
        - Fixed background tiling for summary screen.
        - Text update that was missed in 4.8.1.
        - Add a few maps to the rebuildnodes compatibility block.
        - Fix FVector to Vector comparison.
       * From version 2.8.1
       * Highlights
        - Update of the Vulkan backend.
        - several bugfixes
       * Details
        - let the "abort" button on the network pane of the startup screen do a hard exit on Windows.
        - Bugfix for software mode mirrors not working
        - make sure ticdup is initialized.
        - Add +ONLYVISIBLEINMIRRORS and +INVISIBLEINMIRRORS actor flags. The former makes the actor only visible in reflections, while the latter makes the actor not cast reflections in mirrors.
        - Vulkan backend update
        - validate fountaincolor before using it.
        - ZScript: don't allow multiple assignment syntax with only one element.
        - fixed type of third argument of MBF21's MonsterMeleeAttack function.
        - added an override for NOTAUTOAIMED flag when using P_AimLineAttack for informative CCMDs.
        - allow taking screenshots in cutscenes.
        - fixed JIT target function for GetTimeFrac.
        - fixed: For cutscenes the alternative clean scaling factors need to be activated.
        - fixed setup of ready state with Dehacked. This needs to emulate the hard coded chainsaw sound when weapon states get reassigned.
        - Fix the discolored sky bug on Vulkan
        - check point pushers/pullers by inheritance, not absiolute match
        - Implement FVector ZScript for Actor Scale
        - added FailSound property to PuzzleItem
        - add `i_pauseinbackground` to the menu. note: please pull the language file for this
        - set `i_pauseinbackground` to match `!(i_soundinbackground)` for all configs before this commit.
        - fixed division by zero with unvalidated ticdup values.
        - reinstated con_scale.
        - make sure the last notch on the start screen is rendered.
        - fix relative include path when loading folders
        - avoid storing texture pointers in longer lived data
  4. Avatar photo Updates says:

    New version available -> gzdoom 4.7.1-1~xtradeb1

    * New upstream release.
    * Mainly a bugfix release addressing the following issues:
    – Fixed: SBar_DrawTextureRotated was missing the angle parameter
    – Compat patch for misplaced items in Hexen MAP08.
    – fixed some imprecisions in font luminosity calculation. This was still going through the palette which could result in off-by-one errors.
    – fixed palette initialization for single lump fonts (FON2 and BMF)
    – push sprite shadows a little back for distance sorting
    – avoid multiple Dehacked mappings to the same function to fix MBF21 lookup issues.
    – disallow changing the line spacing for option menus.
    – be a bit more aggressive with the GC when not running the game loop.
    – fixed memory leak in DShape2DBufferInfo.
    – allow “INDEXFON” as an alias for “INDEXFONT”.
    – fixed A_Punch having a short attack range (take 2).
    – GLES: Fix texture MapBuffer and AllocateBuffer create client side memory.
    – Fix “out of memory” errors when the vulkan backend is asked to create zero byte sized buffers
    – resolved a VM abort upon morphing while the tome of power is active
    – fixed particle processing in the main thinker loop. This may not be guarded by the dynamic light flags, only the light ticking may.
    – fixed handling of states with the ‘light’ keyword.
    – Fixed broken V_BreakLines.
    – treat “materials” as a known folder name for eliminating root folders in Zips.
    * New Features:
    – widescreen assets for all officially supported games. This version adds Hacx, Harmony and Chex Quest.
    – Allow WorldUnloaded events to know the next map name (if any).
    – Allow map markers to scale relative to automap zoom.
    – Add cvars to control automap line alpha and thickness
    – PreTravelled virtual for player and inventory.
    – Allow customization of pause screen.
    – ReadThisMenu / MenuDelegate overriding.

  5. Avatar photo Updates says:

    New version available -> gzdoom 4.7.0-1~xtradeb1

    * New upstream release.
    * Highlights:
    – Widescreen graphics for Strife
    – new GLES backend for better performance on OpenGL 3.3 and early 4.x hardware.
    – MBF21 support (still in beta and not fully tested yet, bug reports are welcome)
    – DEHEXTRA working properly now
    – various enhancements and fixes for ZScript.
    * Details
    – fixed vertex generation when splitting walls by planes on old hardware.
    – menu system update from Raze for better control of animated menus.
    – GLES fixed: The weapon sprite must be rendered with the fullscreen colormap on.
    – use explicit virtual screen sizes for the scripted intermission backgrounds to better cope with background replacements.
    – fix compatibility handler for KDiZD’s Z1M3.
    – fixed: “Dialogue” in MAPINFO must clear all “AddDialogues” that came before.
    – fixed melee attack disance being off after adding MBF21 support.
    – fixed: Decal things did not spawn their lower decals.
    – fixed texture clamping for elements that are partially behind a slope.
    – fixed bad parameter order in MinoraurSlam.
    – Consider ‘Program Files’ a read only location without actually checking.
    – fixed: 3D floor model sectors were not added to the sector lists for precise rendering.
    – removed the redundant gl_render_precise CVAR.
    – fixed: colors from brightmaps and glowmaps need to be desaturated.
    – fixed: shaders with NO_LAYERS defined may not apply brightmap and glowmap.
    – Vulkan: Limit texture upload transfer buffers to roughly 64 MB
    – marked several invisible controller things to not show on the automap with the scanner powerup.
    – treat ‘vid_adapter 0’ as what Windows considers the primary monitor.
    – fixed: Brightmap application for horizons was undefined..
    – replaces “BS” and “ED” on the on-screen keyboards with the symbols normally found on the keyboard for these actions.
    – enable cvar blacklisting for defcvars for certain platform variables
    – demote unknown/invalid defcvars to warnings
    – split defcvars parser into its own file
    – fix options search when menus are defined recursively
    – exported STAYONLIFT flag.
    – added a modified version of MBF’s stay-on-lift feature.
    – fixed crash on getting location description without a level
    – block user overrides for the logic module of core fragment shaders.
    – added missing MBF21 Dehacked keys “blood color” and “dropped item”.
    – implemented MBF’s monsters_avoid_hazards feature.
    – added a map flag to disable MF6_JUMPDOWN.
    – added a per-level AVOIDMELEE flag.
    – allow passing a remap table to BestColor.
    – hud models: add nullptr check for psprites without caller.
    – removed the unused palette parameter from the V_GetColor family of functions.
    – Add FOV slider to the display options menu
    – added a null check to CheckWeaponChange.
    – replaced the alt HUD’s index font with a sheet based variant.
    – changed FString API to use ptrdiff_t instead of long for signed size arguments.
    – Fixed IsHUDModelForPlayerAvailable limitation.
    – Look up HUD models by referencing the psprite’s caller, rather than player’s ReadyWeapon.
    – Allow Strife hands psprite to be a model.
    – fixed: crushing stairs must use HexenCrush mode.
    – extended 2D buffer lifetime to the end of the frame
    – use RefCountedPtr to manage 2D shape buffer infos
    – added RefCountedBase without virtual destructor
    – made RefCountedPtr follow rule of five
    – make RenderCommands able to use Shape2D vertex buffers past the Shape2D’s lifetime without crashing
    – fixed line color handling in V_BreakLines.
    – run the dynamic light recreation loop before calling the light ticker.
    – fixed: instead of checking gl_lights, better check Level->HasDynamicLights.
    – do not run the dynamic light ticker when lights are switched off.
    – ensure that shadowmap indices only get set when shadowmaps are enabled.
    – fixed file system’s zip loader to not strip away a ‘filter/’ prefix.
    – do not perform shadowmap updates when dynamic lights are disabled.
    – moved the CheckForRestart call one level up so that it is within the Windows code and does not need #ifdefs.
    – delay the restart action from the error pane until after everything has been shut down.
    – use proper XMove for sheet fonts.
    – use original menu spacing for skill and episode menus if all elements are patches.
    – fixed: the software scene drawer must be deleted before calling ST_Endoom.
    – reorder evaluation for ‘if’ statements to handle the condition first.
    Otherwise this won’t emit errors if a bad condition is used with an empty conditional part.
    – fixed exploding barrel animation duration.
    – fixed two vr_* CVARs not getting archived.
    – dim depleted inventory items in all games, not just Strife.
    – fixed: palette index 0 (transparent) was left uninitialized for BMF fonts.
    – fixed: P_RoughMonsterSearch did not pass the fov parameter to its worker functions.
    – fixed BlockThingsIterator to not reset its list of processed actors when traversing portals.
    – fixed patch version in compatibility implementation of macOS detection
    – destroy stale thinkers after change level failure
    – fixed crash after change level failure
    – SDL2: Properly print white bold text to the screen
    – merged gzdoom-gles2 backend
    – use proper music check in ‘idmus’ CCMD.
    – voc loader fix.
    – better prefix detection in Zip loader.
    – SDL Vulkan init.
    – disabling of shadowmap management when the feature is off.
    – Extend the changemap command to allow warping to next or nextsecret.
    – fixed crash after fatal error in SDL backend
    – fixed premature destruction of status bar
    – fixed EBlastFlags enum definition
    – Add ‘BF_ONLYVISIBLETHINGS’ Flag to A_Blast
    – Fixed typo in Heretic light definition.
    – Fix wrong thiswad check for materials too.
    – fix /0 error caused by having a completely black font character. this error was triggered by Return of the Triad.
    – MBF21 beta implementation
    – corrected the NUL checks in S_FindSkinnedSound.
    – moved Doom specific font init code out of the backend.
    – Fixed crash calling ChangeSky() with an invalid texture.
    – added APROP_Soundclass
    – added fallback to the parenthesis glyphs for the braces.
    – font system overhaul.
    – Add some new optional parameters to A_SprayDecal.

  6. Avatar photo Updates says:

    New version available -> gzdoom 4.6.1-1~xtradeb1

    * New upstream release.
    * Fixed bug with BishopPuff moving in wrong direction
    * a couple important widepix fixes
    * fix for “Return to Phobos (return01.wad) has an ancient bug in map E1M2 where the switch to raise the exit bridge doesn’t work in versions of Doom past patch 1.2.”
    * add missing break statement in level_compatibility.zs
    * fix DaggerAlert using FindState incorrectly.
    * Fixed wrong parameter type passed into TryMove here
    * fixed: Actors did not set the position when spawning a dynamic light.
    * Add ‘AddDialogues’ in MAPINFO to additively add Strife NPC dialogs without overwriting each other.
    * let dynamic lights call UpdateLocation instead of just setting their position right after being spawned. This ensures that the position is correct and that everything gets set up properly.
    * fixed parsing of MAPxx par times in BEX lumps
    * Make sprite shadows ignore float bob
    * fixed explosive damage radius for clericflame.
    * fixed permission validation in OptionMenuItemCommand.DoCommand. This was missing the InMenu check like the other critical menu functions.
    * added detection of macOS 12 Monterey
    * prevent redundant string copying in Strife conversation parser
    * Fixed impassable exit line in 007ltsd.wad E4M7
    * fixed initialization of model frames
    * fix missing border flat on heretic shareware
    * fixed parsing of 2D vectors in OBJ model loader
    * added TVector2<> constructor from float*
    * fixed bad type in FxFontCast.
    * fixed potential crash when sound sequence is destroyed. Level can be unset if sound sequence destruction happens after saved game loading failure
    * report correct macOS version with older SDKs
    * Add Windows 11 detection
    * added an OnDestroy method to Shape2D so that its users can explicitly free the data it holds. In this case it is very important to care about management, because this class will hold GPU-side buffers!
    * prevent appearance of dangling pointers in corpse queue
    * fixed format specifier compilation warnings
    * fixed: splashes need the MOVEWITHSECTOR flag.
    * better sprite shadow control
    * exclude sprites which are not either opaque or use regular blended translucency from casting shadows.
    * exclude wall and flat sprites from casting shadows.
    * In both of these cases the shadow math is unable to produce anything useful that doesn’t look off.
    * fixed: shadow alpha for translucent objects was not correct in the hardware renderer.
    * tweaked shadow code a bit.
    * let CASTSPRITESHADOW act as an override for render style checks. If this is set we can assume that a shadow is desired regardless of style.
    * reordered code to do the more costly checks only when needed.
    * fixed brightmap definitions for the SpiderMastermind.
    * add player setup to simple options menu
    * do not precache unreferenced textures
    * added map option to disable shadowmaps. (Prompted by ‘Hurt’ which has
    > 4000 lights and runs into both performance issues and unpredictable light selection for the limited amount of shadowmap slots.)
    * language update
    * GLES Fixes
    * Fix light binding when using pipeline buffer on OpenGL
    * Stop colormap being applied to 2D drawing

Comments are closed.