and when I include this header in any other file, I always get a
"fatal error LNK1169: one or more multiply defined symbols found " in the visual studio.
I wanted to keep these declarations in a seperate header file.
You need to declare those function pointers extern. Just as with any other global variable you stick in a header. You also can’t initialize them to NULL in the header; that can only happen in the source file.
And since they’re externed in the header, you must define them in a source file (just one) somewhere. Probably the place you have your function pointer loading code.
Oh, and please stop using the extension form of buffer objects! It’s been core OpenGL functionality for near on a decade now. Use the core functions, the ones that don’t end in “ARB”.
after a long search I realized the resources on VBO and I hope I come out of the jinx and start to use the programmable pipeline after going through the book.