Add VSync and fullscreen settings, fix swap chain resize and revert lighting changes

- Add VSync and Exclusive Fullscreen toggles to the graphics settings menu
- Rewrite D3D11 swap chain to use DXGI flip model with tearing support
- Fix black screen on resize by creating new swap chain instead of ResizeBuffers
- Revert conditional lighting optimization in Level::setTileAndData back to unconditional checkLight
- Revert deferred lightGaps flagging in LevelChunk::recalcHeight back to immediate lightGap calls
- Add SWF/ARC editing tools used to add new UI checkboxes
This commit is contained in:
Revela
2026-03-19 11:04:49 -05:00
parent 0a343d2c8d
commit 4fffcac6e7
24 changed files with 753 additions and 53 deletions

View File

@@ -887,16 +887,11 @@ void LevelChunk::recalcHeight(int x, int yStart, int z)
if (!level->dimension->hasCeiling)
{
PIXBeginNamedEvent(0,"Light gaps");
// Flag columns for gap rechecking — processed by recheckGaps() on next tick
auto flagGap = [&](int wx, int wz) {
LevelChunk *c = level->getChunkAt(wx, wz);
if (c && !c->isEmpty()) c->lightGaps(wx & 15, wz & 15);
};
flagGap(xOffs - 1, zOffs);
flagGap(xOffs + 1, zOffs);
flagGap(xOffs, zOffs - 1);
flagGap(xOffs, zOffs + 1);
flagGap(xOffs, zOffs);
lightGap(xOffs - 1, zOffs, y1, y2);
lightGap(xOffs + 1, zOffs, y1, y2);
lightGap(xOffs, zOffs - 1, y1, y2);
lightGap(xOffs, zOffs + 1, y1, y2);
lightGap(xOffs, zOffs, y1, y2);
PIXEndNamedEvent();
}