Build 2080
SVN-
tell gl.h not to include the system's glext.h
Mostra dettagli
We pack our own copy of glext.h to avoid build breakages on older environments, and having gl.h include its own was defeating all that.
Nickname SVN e nomi Git sono unificati per persona.
tell gl.h not to include the system's glext.h
We pack our own copy of glext.h to avoid build breakages on older environments, and having gl.h include its own was defeating all that.
support for creating a debugging context in winlayer
This also fixes a warning when building for Windows.
fix stupid typo that broke r2057
constantly get the textures handle for projective spotlights
Getting the texture handles without requiring invalidation means we can handle ART-animating tilenums without impacting performance too much.
fix horizontal spotlight SEs constantly getting invalidated
Polymer has a hack that snaps horiz values of spotlights between 90 and 110 to 90 and 110 to avoid triggering aliasing artifacts with perfectly horizontal spotlights. Propagate that change all the way to the spotlight SE sprite so that the code won't think that the horiz is always different from the light and mark it invalid each frame.
preliminary support for GL_ARB_debug_output
This won't actually do anything until the a debug bit is added when creating the context, but that requires support for GLX_create_context which SDL doesn't support. I'll add support for WGL_create_context to winlayer in a bit as a stopgap. Also updates our local copy of glext.h with a fresh one from the Khronos registry.
Fix upside-down projective textures
We need to Y-invert the projection texcoords when sampling from the lightmap.
apply ART animation to spotlight lightmaps.
Discard cached sprite planes on texinvalidate
Sprites would stick with their old material on global palette change. This goes through all prsprites and clobbers their CRCs so that an alternate skin / tint / highpal can be applied accordingly.
account for model flipping for backface culling.
The winding order of faces is different if only flipping about X or Y, and we were unconditionally culling CW faces.
fix leading whitespace in polymer_drawmdsprite
sanitize backface culling
Keep track of which side is getting culled, swap around mirrors, swap around model drawing.
fix leak of GL query objects
In cases where performing occlusion queries for multiple red walls leading to the same sector, we would sometimes leak a number of query objects. This was apparently harmless on NVIDIA drivers, but would leak tons of memory on ATI.
fix sector masks translucency.
The code was using the Polymer-cached version of the sector cstat to determine the translucency of its diffuse material, meaning it would never get it right on the first try; that's what you get for having completely different variables named 's' and 'sec'.
Don't draw back faces of sector masks.
We normally enable backface culling always, but turn it off for two-sided sprites; we need to make sure it's re-enabled after that as sector masks are drawn after.
fix external view.
Some of the ROR code was operating under the assumption that drawasks always correspond to one call of polymer_displarooms(), but that's not necessarily the case; external view draws all sectors from the top polymer_drawrooms(), which was causing crashes. Just ignore the sector mask queues in external view mode, we already don't draw masked walls.
propagate lights across vertical boundaries.
Check all the bunch siblings if we get a floor/ceiling hit and walk them if their own planes hit.
add preliminary support for sector masks.
When walking the sectors in displayrooms, detect floor/sector masks to place them in a mask queue. The queues are allocated on the heap, but a stack pointer is maintained by the displayrooms to allow it to play nice with mirror recursion. Right now the masks are drawn after all of drawmasks is finished; that means you can see sprites and wall masks through sector masks, but not the opposite. There is a slight attempt at blending far to near, but nothing too conclusive yet; that means that in some cases some sector masks won't be visible through other sector masks, but it should work for trivial cases. The next step would be to copy all the drawmasks logic into Polymer and have it (attempt to) properly interleave sector masks where they belong in the blending order.
Don't draw 1-way walls twice.
Previously they would get counted both as 1-way walls for immediate drawing and as mask walls for delayed drawing.
Don't bother fogcalc()ing invisible planes.
Doesn't actually matter that much.
Fix colored fog in Polymer.
This fixes a ridiculous interaction problem between non-black fog and additive lighting passes. Plagman is stupid.
Polymer ROR support, but no support for masked floor/ceilings yet.
Only invoke pkg-config for non-Windows platforms.
Fix two warnings I introduced a while back.
Fixes for building on OpenBSD. Doesn't break Linux, pending Win32 synthesis
results.
Fix the bug where Mapster32 tile selection would display the detail map of a
tile.
Don't warp mouse if DEBUGGINGAIDS is enabled; this'll make us ignore events if
they happen to exactly go the the center of the screen, but not that big of a deal.
MD3 export script for Blender, based off the XReal hosted one and modified to
not prompt you for shader paths, collapsed into a single file and to avoid transforming normals. This might break for rotations, but I don't think such transforms should happen with a straight import from ASE -> export to MD3.