Moving the rendering code from GLUT to SDL3 meant refactoring the main loop, but also losing some functionality that had nothing to do with windowing itself: (1) socket monitoring, (2) solid shapes, (3) font rendering, and (4) small helpers (such as mathematics functions).

GLUT bundled all of this in, but nowadays libraries are more focused: SDL3 mainly handles the window, the input events, and the graphics context. So every one of those features had to be rebuilt.