I\'m using windows and I notice that a lot of functions are grayed out because I guess #ifdef GL_GLEXT_PROTOTYPES is not defined. One of these is the VBO extension. Should I
Yes, it's quite normal and expected to have something like:
#define GL_GLEXT_PROTOTYPES
#include <GL/GL.h>
If you're trying to write OpenGL 3 compliant code, you'd normally change that to:
#define GL_GLEXT_PROTOTYPES 1
#define GL3_PROTOTYPES 1
#include <GL3/GL3.h>
And if you're using the Glew OpenGL extension, make sure you initialize it.
glewInit();
Otherwise nothing will be drawn.
You can use glad to provide glGenBuffers for you.
I recommend that you use GLEW to get rid of that problem.
It's a long story, but resuming, Windows' OpenGL library only exposes OpenGL 1.1 entry points, so all functions beyond that version are loaded with wglGetProcAddress. GLEW solves this problem by doing that.
http://glew.sourceforge.net/
Just link to GLEW and GLU/GLUT (if you use them).