PDA

View Full Version : how to add extensions to my OPENGL version?please help me ,thank you !



09-25-2005, 05:36 PM
I am trying to learn the demo programs in the redbook ,but some functions are not defined in
my version. From the redbook i see that we can download the "glext.h" from http://www.opengl.com,but when i put it in the visual c++ include file and #include "glext.h",i meet with some link errors.i don't know what is the problem and how to correct it.could anyone help me ?thank you very much!

dorbie
09-27-2005, 11:19 AM
This is too vague. Also including glext will not cause link errors, using some function prototypes in there might, but you should be using some type of platform specific GetProcAddress which dynamically returns function pointers with runtime checks and filling in your own function declarations prototyped in the glext.h header file, so linking errors are not possible if you're using OpenGL correctly, unless the GetProcAddress call is missing which makes no sense.

Be very specific and post more information. Including your code where you use extensions or advanced API calls and the exact error the compiler spits out.

You may want to just use GLEW or GLee to prototype the functions you need and give you simpler runtime checks.

http://glew.sourceforge.net/

http://elf-stone.com/glee.php

If you want to go it alone thet grabbing the SDK from whoever designed your graphics card and using their glext.h won't hurt either.

dimensionX
09-27-2005, 12:16 PM
Is GLee Multi-context (RC) and thread safe ?
Are the Win32 Libraries compiled for the above ?

09-28-2005, 01:50 AM
thank you very much. I have written too vague,so
it is not very clearly for you to read ,I am really sorry.
I want to compile "combiner.c" in the examples of the redbook,but the function glMultiTexCoord2fARB() was not defined in the gl1.1 version,so I downloaded the glext.h,and it was put in the directory: c:\Program Files\Microsoft Visual Studio\VC98\include\gl,and in the program "combiner.c"
,I have added this declaration:#include "gl/glext.h",but some mistakes like this "combiner.obj : error LNK2001: unresolved external symbol _glMultiTexCoord2fARB@12" happened,I don't know what is the problem,and how to solve it.
so would you please help me ?thank you very
much!

09-28-2005, 01:51 AM
thank you very much. I have written too vague,so
it is not very clearly for you to read ,I am really sorry.
I want to compile "combiner.c" in the examples of the redbook,but the function glMultiTexCoord2fARB() was not defined in the gl1.1 version,so I downloaded the glext.h,and it was put in the directory: c:\Program Files\Microsoft Visual Studio\VC98\include\gl,and in the program "combiner.c"
,I have added this declaration:#include "gl/glext.h",but some mistakes like this "combiner.obj : error LNK2001: unresolved external symbol _glMultiTexCoord2fARB@12" happened,I don't know what is the problem,and how to solve it.
so would you please help me ?I really want to know.thank you very much!

OGL_PGR
09-28-2005, 03:31 AM
Not sure if this works, but please try this :

In your header file put these:

// Declare Function Prototype
typedef void (APIENTRY * PFNGL_______EXTPROC) (GLfloat coord);

//Our glFogCoordfEXT Function
extern PFNGL_______EXTPROC glFogCoordfEXT;
(PS: 'extern')
& In your .cpp file put this:
PFNGL_________EXTPROC gl_______EXT = NULL;

( PS : '____' put your extension function name there )

FYI: you would also initialize your extension function like this:

gl_____EXT = (PFNGL______EXTPROC) wglGetProcAddress("gl_______EXT");