Build 5298
SVN-
upload bucket indices through pinned host memory.
SVN handles and Git names are merged into one person.
upload bucket indices through pinned host memory.
fix regression with Y-flipping bit.
add preliminary support for batching draws.
fix synthesis warning.
store map data in a single buffer with a unified vertex type.
Hook ART mapping to rotatesprite.
The visibility calculation relies on the distance, which might not be entirely accurate in rotatesprite, so maybe it'll be too dark in some cases.
Make ART mapping work with any number of shade offsets (eg. BLOOD pal)
Fix ART offset and sprite flipping interaction.
only let emitshadow affect shadows, not lightmaps.
Lightmaps are already opt-in anyway.
add support for negative lights
And hook them up to cstat 128 (half-submerged, 'c' in mapster).
add a prlight flag to make shadow-less spotlights
And hook it up to SE cstat 64 ('1' in mapster32). This disables both lightmaps and shadow maps for the spotlight; please let me know if you have a usecase where you want lightmaps but no shadow maps for specific lights.
cull sprite lights after computing sprite geometry
This was broken ever since updatesprite() had been forked off drawsprite() and would cause static lights to never hit static sprites until one or the other changed, after which the light would always get culled against outdated sprite geometry.
don't shadow-optimize light culling in cached sprites
Since updatesprite() only happens once for static sprites, avoiding light culling if we hit it in a shadow pass means that sprite will never be lit as long as that happens.
fix animations that loop to frame 0
With VBOs enabled, the virtual pointer to the geometry of frame 0 of a model is always NULL. This was confusing the polymer code responsible for deciding whether to enable smooth animations or not, which meant that any animation that would loop to frame 0 would do it as if animation interpolation was disabled, which looks very choppy.
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.