What happened to the UnloadTexture() functions?

Thanks, that was good info. To be honest my old usage of C++ was lazy - I pretty much took it as C with new/delete instead of malloc/free, with added classes. This was also back in ~95-99. Even though copy constructors were a thing then (if I recall), I gave them a hard pass.

I get it now though, and the difference between move and copy. I also liked this answer/read of them: https://stackoverflow.com/a/64379301

About UnloadTexture, I did a scan of the raylib source on github for calls to rlUnloadTexture and UnloadTexture, and also set break points on the console log line it does. The only automatic unloads appear to be for a built-in default font texture that is loaded (whether or not you render any text). The rest are only happening manually when you set the calls yourself.

I take your point about it being fairly immaterial, albeit potentially clumsy/lazy, when cleaning up. There shouldn’t be any file handles open to the images at least or anything of that kind, because RayLib unloads the image file data immediately after it creates it as texture data in memory. So OS-level cleanups don’t seem to be a problem, it’s just memory that will be reclaimed when the app is closed.