People a while back were complaining on the GMC about Yoyo's refusal to add a headless mode so people could take advantage of the collision system etc in order to create lightweight servers, so I added one!
I've done my best to make graphics dependent stuff work headlessly (so we have the *_get() functions working) but some stuff (like shaders) can't be implemented without depending on a graphics API so I've made fillin functions for them (see fillin.cpp).
I noticed that d3d_model_save() is unimplemented in all graphics systems so I've left that alone, but it is quite severely needed if any of the 3D stuff is to be useful in headless mode.
Aside from that, most of the code is just bits and bobs from other graphics systems with any API calls removed and slight modification.
Sidenote: PFwindow was using string but didn't include it so I fixed that because it wouldn't compile without it.
Ay-ay-ay... I didn't realize how sore a shape code sharing between platforms was. It looks as though most of the code in the "None" graphics system is either no-op methods (which we do need) or is duplicated from other files, yes? Can those duplicated files be replaced with, eg,
I think it would be better to move that code (in particular, files like GLtiles.cpp) into General... do any of our systems use a different implementation for those methods? It seems silly to have each system duplicate that framework. Is the operative difference something nonsensical, like
glInt actual_resource; vs
D3D_RENDER_CONTEXT actual_resource;? Because if so, I'll deal with that, now.
It looks as though most of the code in the "None" graphics system is either no-op methods (which we do need) or is duplicated from other files, yes?
What has been duplicated from other files has been modified in order to remove actual calls to a graphics API and instead emulates what would happen on the screen (so like draw_set_color() would work enough that draw_get_color() would give the correct output), while all the no-ops are in fillin.cpp
There most certainly is alot of overlap between the graphics APIs though, like merge_color(), draw_get_color(), all the color_get_*() and make_color_*() functions.
Is the operative difference something nonsensical, like glInt actual_resource; vs D3D_RENDER_CONTEXT actual_resource;?
Feel free to move the color functions into general, I can't remember why I never did that. I think when I first tried I had an issue or wasn't sure about the style conventions used in ENIGMA.