opengl version 1.2 api?
opengl version 1.2 api?
在哪里可以找到 2.0 之前版本的 OpenGL 文档?在网站上:opengl.org,他们只列出了新的api。
我的情况是:我有一台我正在开发的笔记本电脑,并意识到opengl的某些方法不适用于这台计算机。
到目前为止,我已经通过针对用户版本的条件进行测试来解决了一些问题。那些更新于 2.0(含)的人将使用较新的代码,而那些版本低于 2.0 的人将使用 ARB 扩展方法。
例:
if(m_glVersion>2){//Integer value of your opengl version
glGenBuffers(NUM_BUFFERS, m_vertexArrayBuffers);
glBindBuffer(GL_ARRAY_BUFFER, m_vertexArrayBuffers[POSITION_VB]);
glBufferData(GL_ARRAY_BUFFER, sizeof(model.positions[0]) * model.positions.size(), &model.positions[0], GL_STATIC_DRAW);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);
glBindBuffer(GL_ARRAY_BUFFER, m_vertexArrayBuffers[TEXCOORD_VB]);
glBufferData(GL_ARRAY_BUFFER, sizeof(model.texCoords[0]) * model.texCoords.size(), &model.texCoords[0], GL_STATIC_DRAW);
glEnableVertexAttribArray(1);
glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 0, 0);
glBindBuffer(GL_ARRAY_BUFFER, m_vertexArrayBuffers[NORMAL_VB]);
glBufferData(GL_ARRAY_BUFFER, sizeof(model.normals[0]) * model.normals.size(), &model.normals[0], GL_STATIC_DRAW);
glEnableVertexAttribArray(2);
glVertexAttribPointer(2, 3, GL_FLOAT, GL_FALSE, 0, 0);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_vertexArrayBuffers[INDEX_VB]);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(model.indices[0]) * model.indices.size(), &model.indices[0], GL_STATIC_DRAW);
}else{
glGenBuffersARB(NUM_BUFFERS, m_vertexArrayBuffers);
glBindBufferARB(GL_ARRAY_BUFFER, m_vertexArrayBuffers[POSITION_VB]);
glBufferDataARB(GL_ARRAY_BUFFER, sizeof(model.positions[0]) * model.positions.size(), &model.positions[0], GL_STATIC_DRAW);
glEnableVertexAttribArrayARB(0);
glVertexAttribPointerARB(0, 3, GL_FLOAT, GL_FALSE, 0, 0);
glBindBufferARB(GL_ARRAY_BUFFER, m_vertexArrayBuffers[TEXCOORD_VB]);
glBufferDataARB(GL_ARRAY_BUFFER, sizeof(model.texCoords[0]) * model.texCoords.size(), &model.texCoords[0], GL_STATIC_DRAW);
glEnableVertexAttribArrayARB(1);
glVertexAttribPointerARB(1, 2, GL_FLOAT, GL_FALSE, 0, 0);
glBindBufferARB(GL_ARRAY_BUFFER, m_vertexArrayBuffers[NORMAL_VB]);
glBufferDataARB(GL_ARRAY_BUFFER, sizeof(model.normals[0]) * model.normals.size(), &model.normals[0], GL_STATIC_DRAW);
glEnableVertexAttribArrayARB(2);
glVertexAttribPointerARB(2, 3, GL_FLOAT, GL_FALSE, 0, 0);
glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER, m_vertexArrayBuffers[INDEX_VB]);
glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER, sizeof(model.indices[0]) * model.indices.size(), &model.indices[0], GL_STATIC_DRAW);
}
http://www.songho.ca/opengl/gl_vbo.html 提供了一些关于网格创建和删除的良好来源,但是没有关于着色器的可用资源。
在glCreateProgram上出错,我目前的假设是它不支持低于2.0的版本 https://www.opengl.org/sdk/docs/man/html/glCreateProgram.xhtml。
我找不到此方法的 ARB 版本。有吗?变通办法?谢谢。
看看它 https://www.opengl.org/registry/就在OpenGL-2的正下方
OpenGL-1.2 规范:https://www.opengl.org/registry/doc/glspec121_bookmarked.pdf
从来没有HTML在线参考,但是大多数Linux发行版都有一个Mesa文档包,其中包含所有OpenGL函数的手册页;OpenGL-2.x是OpenGL-1.x的真正超集,没有任何折旧。
网格创建和删除 但是,没有关于着色器的可用信息。
GLSL着色器支持仅在OpenGL-2中引入;但是它们通常作为扩展提供,但是如果您的目标系统不支持OpenGL-2,则根本不可能有可编程硬件;可能是寄存器组合器,但仅此而已。
- 用于访问容器<T>数据成员的正确 API
- 如何使用Luacneneneba API正确读取字符串和表参数
- C++MySQL C api用户输入行
- 如何使用 AWS Transcribe C++ API 中的'StartTranscriptionJobRequest'?
- 将std::string传递给WriteConsole API
- EvtExportLogneneneba API正在将远程计算机的事件日志保存到远程PC本身.如何将其保存到主机
- 在gtest.中使用fff.h模拟系统API
- 有没有任务栏API可以立即应用注册表更改
- C++win32 API创建多个类似视口的窗口
- 使用libcurl提交批量url的正确BING Api POST url是什么
- 如何将真正的字符串从python c-api转换为python脚本
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 使用Qt框架在c ++类中创建API调用
- Libreoffice API (UNO):需要更改用户的 xTextField 文本
- 为什么 -mmacosx-version-min=10.10 不阻止使用标记为从 10.11 开始的函数?
- 使用 WIN32 API (C/C++) 对特定树视图项进行着色
- 使用 Python Extension API 包装复杂C++类
- 如何使用 samtools C API 构建一个简单的主.cpp文件
- 第三方 API 中的编译错误 - Visual Studio
- opengl version 1.2 api?