How can I resolve naming conflict in given precompiled libraries?

Posted by asm on Stack Overflow See other posts from Stack Overflow or by asm
Published on 2010-03-18T21:12:08Z Indexed on 2010/03/18 21:21 UTC
Read the original article Hit count: 208

Filed under:
|
|
|

I'm linking two different libraries that have functions with exactly same name (it's opengl32.lib and libgles_cm.lib - OpenGL ES emulation under Win32 platform), and I want to be able to specify, which version I'm calling.

I'm porting a game to OpenGL ES, and what I want to achieve, is a split-screen rendering, where left side is an OpenGL version, and right side is a ES version. To produce the same result, they will recieve slightly different calls, and I'll be able to visually compare them, effectively finding visual artifacts.

It worked perfectly with OpenGL/DirectX at the same window, but now the problem is that both versions imports the functions with the same name, like glDrawArrays, and only one version is imported. Unfortunately, I don't have sources of any of that libraries.

Is there a way to... I dont' know, wrap one library into additional namespace before linking (with calls like ES::glDrawArrays), somehow rename some of functions or do anything else?

I'm using microsoft compiler now, but if there will be solution with another one (GCC/ICC), I'll switch to it.

© Stack Overflow or respective owner

Related posts about opengl

Related posts about opengl-es