View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0005067||The Dark Mod||Graphics||public||30.11.2019 17:35||16.12.2019 13:34|
|Target Version||TDM 2.08||Fixed in Version||TDM 2.08|
|Summary||0005067: Postprocessing doesn't work in core profile (RB_DrawFullScreenQuad)|
|Description||Originally reported here:|
Postprocessing draws full-screen quad with RB_DrawFullScreenQuad function, but this function uses glBegin/glVertex/glEnd stuff (immediate-mode rendering), which is not present in Core profile.
|Steps To Reproduce||1) Enable "r_postprocess 1" and "r_glCoreProfile 2" and restart TDM.|
2) Start any map.
Most likely you also need VM or some driver which does not support ARB_compatibility extension to be a crash.
Or you can use some debug info to verify that deprecated functionality is used.
|Tags||No tags attached.|
Actually, Duzenko has fixed it in 8427 by embedding a full-screen quad geometry into VertexCache singleton.
I would be very glad to see some generic solution for porting the ton of graphical debugging tools to core profile, but that's another issue already.
P.S. I always hoped for some sort of wrapper class with interface closely matching the OpenGL immediate-mode rendering...
That would be a lot of fun to design and write, not so much to maintain.
But practically rewriting tools for core context is a final solution, that takes very little effort (per each individual use case)
Why is the immediate-mode renderer class hard to maintain?
I don't suggest full GL emulation, just some easy way to specify vertices, colors, and similar stuff.
Writing buffers directly with GL3 will be cumbersome.
I guess, this is exactly why Carmack said "There is no good technical reason for the existance of D3D." at the times of Quake 2 development:
Immediate mode GL has mediocre performance, but it is very easy to use and experiment with. This is helpful for debug visualization tools.
If you rewrite every tool by hand to create some weird buffers, then I'm afraid nobody will ever create new such tools any more...
Oh, on the other hand idRenderWorldLocal already serves as such a wrapper: it provides methods called "Debug*".
If everything uses only these methods, then new class is not necessary at all =)
|30.11.2019 17:35||stgatilov||New Issue|
|30.11.2019 17:35||stgatilov||Status||new => assigned|
|30.11.2019 17:35||stgatilov||Assigned To||=> cabalistic|
|15.12.2019 18:24||stgatilov||Note Added: 0011935|
|15.12.2019 18:25||stgatilov||Assigned To||cabalistic => duzenko|
|15.12.2019 18:25||stgatilov||Status||assigned => resolved|
|15.12.2019 18:25||stgatilov||Resolution||open => fixed|
|15.12.2019 18:25||stgatilov||Fixed in Version||=> TDM 2.08|
|15.12.2019 19:53||duzenko||Note Added: 0011936|
|16.12.2019 13:33||stgatilov||Note Added: 0011937|
|16.12.2019 13:34||stgatilov||Note Added: 0011938|