Render screens via texture + shader; fix GraphicalAPI off-by-ones; glibc lua runtime - #28
Merged
rabiesland merged 1 commit intoSep 18, 2026
Conversation
…ibc lua runtime - Replace per-sector rectangle rendering with a single textured quad driven by the new neetcomputers:screen_display core shader (3x nearest upscale + bilinear downscale on the GPU). Fixes missing / half-drawn pixels and shimmer from rectangle seams and atlas mipmaps. - Fix off-by-one in GraphicalAPI.fill opaque path (dropped the last row, leaving black lines between terminal rows), writeLine endpoint, and clone layer size. - Rebuild linux-x86_64 natives against glibc (were musl-linked and failed to link on glibc distros).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Screen rendering overhaul
Replaces the per-sector rectangle rendering for computer GUIs (
RGBGraphicsScreen) and in-world color displays (ColorDisplayRenderer) with a single textured quad driven by a new core shader:neetcomputers:screen_displayshader (assets/neetcomputers/shaders/core/) performs the 3x nearest-neighbor upscale + bilinear downscale entirely on the GPU viatexelFetch.NativeImageBackedTexture(graphics/client/ScreenTexture), uploaded only when the frame changes. Sector encoding is unchanged on the wire.GraphicalAPI off-by-one fixes
fill()opaque fast path dropped the last row (i < y2instead ofi <= y2), leaving 1px black gaps (e.g. black lines between terminal rows). Reproduced with the real classes (60 gap rows on a 60-row terminal simulation) and verified 0 after the fix.writeLine()never painted its endpoint;clone()built the layer 1px too small in each dimension.Linux x86-64 natives rebuilt for glibc
The bundled
yslua.so/bridge.sowere linked against musl (NEEDED libc.musl-x86_64.so.1) and failed to link on glibc distros (Failed to link NeetComputer lua runtime for platform linux-amd64). Rebuilt from Neet-YSLua viascripts/build-all.sh linux-x86_64; new binaries only need libm/libc/libstdc++/libgcc_s. Smoke-tested withdlopen, JNI symbols + version handshake verified, full./gradlew buildpasses.