SFTtech / openage

Free (as in freedom) open source clone of the Age of Empires II engine 🚀
http://openage.dev
Other
12.63k stars 1.11k forks source link

SDL rendering without OpenGL #54

Closed Toneymoon closed 9 years ago

Toneymoon commented 9 years ago

It would be great to have simple SDL rendering without OpenGL for old & troubled video chips, that has no hardware acceleration for 3D & OpenGL.

mic-e commented 9 years ago

Doesn't SDL2 internally use OpenGL?

Anyways, the renderer currently does non-trivial stuff with shaders, such as coloring buildings/units with their team colors. Rendering unit outlines (for units that are hidden behind a building) would be an other thing.

I don't see an obvious way of doing this with the basic SDL2 renderer, but I haven't really looked into it either. I guess the team colors could be replaced in software, at the price of having 8 versions of each unit in memory.

janisozaur commented 9 years ago

SDL is certainly able to use DirectX instead, perhaps also GLES? While noone cares about former, GLES actually could be useful.

LeviSchuck commented 9 years ago

Would it be possible to alternatively provide mesa 3d (software opengl implementation) for such needs?

I've seen a guy use mesa in dosbox for fun.

mic-e commented 9 years ago

IIRC software rendering can always by triggered by setting an environment variable LIBGL_ALWAYS_SOFTWARE=1. No support in openage is required for that.

janisozaur commented 9 years ago

As @mic-e says, llvmpipe would have nothing to do with openage/sdl. Given its performance though, if you have "troubled video chip", chances are your cpu isn't performant as well. I don't think llvmpipe should be taken into consideration at this stage. GLES, on the other hand, enables you to target much broader audience: embedded devices, wayland (libGL currently pulls X libraries, hence has GLES support only so far)

franciscod commented 9 years ago

do we really want to mantain another rendering subsystem? i mean, opengl is pretty standard nowadays...

mic-e commented 9 years ago

287 will add support for multiple rendering subsystems (targeted at Vulkan).

TheJJ commented 9 years ago

Due to the lack of shaders this will probably never happen. Tell me if you think otherwise.