Opengl 使用SDL的顶点缓冲区对象

Opengl 使用SDL的顶点缓冲区对象,opengl,sdl,vertex-buffer,Opengl,Sdl,Vertex Buffer,使用SDL1.2时,我需要包括什么才能使用OpenGL顶点缓冲区对象(VBO) 目前,我只包括SDL.h、SDL\u opengl.h、SDL\u image.h 并获取错误: glGenBuffersARB、glBindBufferARB、glBufferDataARB未在此范围内声明如果要使用SDL\u opengl.h在包含它之前定义GL\u GLEXT\u原型 #define GL_GLEXT_PROTOTYPES #include "SDL.h" #include "SDL_open

使用SDL1.2时,我需要包括什么才能使用OpenGL顶点缓冲区对象(VBO)

目前,我只包括
SDL.h、SDL\u opengl.h、SDL\u image.h

并获取错误:


glGenBuffersARB、glBindBufferARB、glBufferDataARB未在此范围内声明

如果要使用
SDL\u opengl.h
在包含它之前定义
GL\u GLEXT\u原型

#define GL_GLEXT_PROTOTYPES

#include "SDL.h"
#include "SDL_opengl.h"

我可能工作,也可能不工作。如果您想以“正确”的方式进行操作,请在包含它之前使用。

如果您想使用
SDL\u opengl.h
定义
GL\u GLEXT\u原型

#define GL_GLEXT_PROTOTYPES

#include "SDL.h"
#include "SDL_opengl.h"
我可能工作,也可能不工作。如果您想以“正确”的方式进行操作,请使用类似的方法。

您应该包括
。有时OpenGl扩展函数不能直接使用,必须使用SDL\u GL\u GetProcAddress加载(如果扩展不可用,则返回函数指针或0)。您可能有兴趣看看加载扩展函数的libglew

以下是您可以如何操作(如果不使用glew):

您应该包括
。有时OpenGl扩展函数不能直接使用,必须使用SDL\u GL\u GetProcAddress加载(如果扩展不可用,则返回函数指针或0)。您可能有兴趣看看加载扩展函数的libglew

以下是您可以如何操作(如果不使用glew):


我发现
SDL\u opengl.h
文件相当无用。就个人而言,我建议使用GLEW或GLee。GLee更容易添加到您的项目中,但在OpenGL 3.0中停止(在SDL应用程序中通常很好,因为SDL只启用OpenGL 2.1上下文)。GLEW只需要再多做一点工作,但它可以通过OpenGL4实现


关于SDL中的VBO,我遇到了同样的问题。

我发现
SDL\u opengl.h
文件相当无用。就个人而言,我建议使用GLEW或GLee。GLee更容易添加到您的项目中,但在OpenGL 3.0中停止(在SDL应用程序中通常很好,因为SDL只启用OpenGL 2.1上下文)。GLEW只需要再多做一点工作,但它可以通过OpenGL4实现


关于SDL中的VBO,我遇到了同样的问题。

只需稍加努力,就可以获得SDL的欠发达1.3版本

<> PF>和SFL类似,但对于2D类的硬件加速,面向对象C++,使用起来更容易。OpenGL使用起来特别简单。同样,支持OpenGL 3.2上下文的是development 2.0版本(尽管它即将发布)


您可能需要将非ARB版本与上述内容一起使用。

只需稍加努力,就可以获得SDL的欠开发1.3版本

<> PF>和SFL类似,但对于2D类的硬件加速,面向对象C++,使用起来更容易。OpenGL使用起来特别简单。同样,支持OpenGL 3.2上下文的是development 2.0版本(尽管它即将发布)


您可能需要将非ARB版本与上述内容一起使用。

我的基本意思是SDL是否提供了包含必要OpenGL标题的方法。我的基本意思是SDL是否提供了包含必要OpenGL标题的方法。简单地包括
会给我一个重新定义的警告,以及上述内容错误。所以我认为您应该加载自己想要的函数,或者使用libglew。(将编辑响应)简单地包括
会给我一个重新定义的警告,加上前面提到的错误。所以我认为你应该自己加载你想要的函数,或者使用libglew。(将编辑响应)