Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

laeuchli

OpenGL 3dfx OpenGL, and ICD

This topic is 6923 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hey all. I have read that 3dfx can''t write a ICD for it''s voodoo cards. However, it does have a full opengl driver. How do I access it in C++?

Share this post


Link to post
Share on other sites
Advertisement
Just so you know, Voodoo cards can''t have an ICD because they are full-screen only and a full OpenGL implementation includes windowed mode--which is why Voodoo 3''s DO have a full ICD (such as it is). SO, to your real question.
There are two ways to use 3dfx''s standalone OpenGL driver. First, you can link to 3dfx''s version of the OpenGL static libraries when you build your game. This is a little sketchy because you can''t link to both the default OpenGL libraries and the 3dfx libraries at the same time since they duplicate the same functions. What that ultimately means is your game can run standard OpenGL OR 3dfx OpenGL--not both.
The other way is a little more complicated, but cleaner and more powerful. You can dynamically link to the standalone drivers and then use it (almost) just as you would the normal OpenGL driver. There is a pretty good article about this on this site if you go to the Developer Resources section, OpenGL subsection, and look for "Taking advantage of the new Quake compatible OpenGL drivers for Voodoo1/2".
Good luck!

Share this post


Link to post
Share on other sites
I tried the article you where talking about already, but I can''t get it to compile. I get the link errors:
OpenGLSetPixelFormat(struct HDC__ *,int,struct tagPIXELFORMATDESCRIPTOR
const *)"
(?OpenGLSetPixelFormat@@YGHPAUHDC__@@HPBUtagPIXELFORMATDESCRIPTOR@@@Z)
main.obj : error LNK2001: unresolved external symbol "int __stdcall
OpenGLChoosePixelFormat(struct HDC__ *,struct tagPIXELFORMATDESCRIPTOR const
*)" (?OpenGLChoosePixelFormat@@YGHPAUHDC__@@PBUtagPIXELFORMATDESCRIPTOR@@@Z)
main.obj : error LNK2001: unresolved external symbol "int __stdcall
OpenGLSwapBuffers(struct HDC__ *)" (?OpenGLSwapBuffers@@YGHPAUHDC__@@@Z)
main.obj : error LNK2001: unresolved external symbol "int __stdcall
OpenGLDeleteContext(struct HGLRC__ *)"
(?OpenGLDeleteContext@@YGHPAUHGLRC__@@@Z)
main.obj : error LNK2001: unresolved external symbol "int __stdcall
OpenGLMakeCurrent(struct HDC__ *,struct HGLRC__ *)"
(?OpenGLMakeCurrent@@YGHPAUHDC__@@PAUHGLRC__@@@Z)
main.obj : error LNK2001: unresolved external symbol "struct HGLRC__ *
__stdcall OpenGLCreateContext(struct HDC__ *)"
(?OpenGLCreateContext@@YGPAUHGLRC__@@PAUHDC__@@@Z)
main.obj : error LNK2001: unresolved external symbol "void __cdecl
OpenGLUnInit(void)" (?OpenGLUnInit@@YAXXZ)
main.obj : error LNK2001: unresolved external symbol "int __cdecl
OpenGLInit(char *)" (?OpenGLInit@@YAHPAD@Z)
main.obj : error LNK2001: unresolved external symbol "void __cdecl
OpenGLFindDriver(char *)" (?OpenGLFindDriver@@YAXPAD@Z)

Share this post


Link to post
Share on other sites
Heinzah, the reason why you can''t have a ICD for Voodoo 1/2 is NOT because it doesn''t support windowed rendering, but rather that the ICD mechanism doesn''t support the pass-through feature of these cards!

Share this post


Link to post
Share on other sites
regardless of that, does anyone who has managed to compile this code, send the whole project to me at jesse@laeuchli.com? There must be some option I havn''t set up. I am using VC++ 6.0

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!