19,468
社区成员
发帖
与我相关
我的任务
分享
GLfloat fAxisVertexList[][3] =
{
0.0f,0.0f,0.0f,
30.0f * m_fModelWindowRatioX * m_fScale,0.0f,0.0f,
0.0f,50.0f * m_fModelWindowRatioX * m_fScale,0.0f,
0.0f,0.0f,70.0f * m_fModelWindowRatioX * m_fScale,
};
static GLuint unAxisIndexList[][2] =
{
0,1,
0,2,
0,3,
};
static int isFirstCall = 1;
static unsigned int unVertexBuffer; // 顶点缓存对象的名称
static unsigned int unIndexBuffer;
bool bVBOSupported = IsExtensionSupported( "GL_ARB_vertex_buffer_object" );
// 获得函数的指针
glGenBuffersARB = (PFNGLGENBUFFERSARBPROC) wglGetProcAddress("glGenBuffersARB");
glBindBufferARB = (PFNGLBINDBUFFERARBPROC) wglGetProcAddress("glBindBufferARB");
glBufferDataARB = (PFNGLBUFFERDATAARBPROC) wglGetProcAddress("glBufferDataARB");
glDeleteBuffersARB = (PFNGLDELETEBUFFERSARBPROC) wglGetProcAddress("glDeleteBuffersARB");
if (isFirstCall)
{
isFirstCall = 0;
//分配一个缓冲区,并将顶点数据存入缓冲区
glGenBuffersARB(1,&unVertexBuffer);
glBindBufferARB(GL_ARRAY_BUFFER_ARB,unVertexBuffer);
glBufferDataARB(GL_ARRAY_BUFFER_ARB,sizeof(fAxisVertexList),fAxisVertexList,GL_STATIC_DRAW_ARB);
glGenBuffersARB(1,&unIndexBuffer);
glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB,unIndexBuffer);
glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB,sizeof(unAxisIndexList),unAxisIndexList,GL_STATIC_DRAW_ARB);
}
glBindBufferARB(GL_ARRAY_BUFFER_ARB,unVertexBuffer);
glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB,unIndexBuffer);
glVertexPointer(3,GL_FLOAT,0,(char *)NULL);
glDrawElements(GL_LINES,6,GL_UNSIGNED_INT,(char *)NULL);