- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我一直在阅读我的 Visual Studio 版本中包含的 gl.h 头文件,它似乎已经过时了。
我不希望 GLUT 或介于两者之间的任何其他中间件/实用程序库为我做肮脏的工作,包括 GLEW。有人可以详细说明为什么以及如何获取/查询 4.0 规范的现代功能集以及 GLEW 背后的一般想法是什么吗?
最佳答案
MSVC++ 附带的 gl.h 仅包含 Windows 附带的 opengl32.dll 导出的函数。这个 DLL 主要只是一个所谓的“蹦床”到实际驱动程序中。但它只导出一个非常旧的 OpenGL 版本,即 OpenGL-1.1。
除此之外的任何功能都必须通过扩展机制访问。
I do not want GLUT or any other middleware/utility library in between to do the dirty work for me, that includes GLEW.
GLUT 与 GLEW 完全无关
Could someone elaborate on why and how does one acquire/query for the modern feature set of the 4.0 specification and what's the idea behind GLEW in general?
您通过已经提到的扩展系统获得现代功能集。
有一个函数 ?glGetProcAddress
(具体名称取决于操作系统环境,在 Windows wglGetProcAddress
中)。使用此函数,您可以检索指向扩展过程的函数指针当前 OpenGL 上下文(在 GLX 中,函数指针对于所有上下文都是相同的,但在 Windows 中它们可能不同)。
加载一个扩展是这样的:
typedef (*OGLEXTP_SOMEEXTENSIONFUNCTION)(...)
OGLEXTP_SOMEEXTENSIONFUNCTION oglextp_glSomeExtensionFunction = NULL;
#define glSomeExtensionFunction oglextp_glSomeExtensionFunction;
struct Extensions
{
bool SomeExtensionFunction;
}
errorcode initGLExtensions(){
Extensions available;
GLubyte extensions = glGetStrings(GL_EXTENSIONS);
parse_extension_string(extensions, available);
if( available.SomeExtensionFunction ) {
oglextp_glSomeExtensionFunction = wglGwtProcAddress("glSomeExtensionFunction");
if( !oglextp_glSomeExtensionFunction )
return errorcode;
}
}
而且您必须为每个函数编写大量代码。没有人愿意写这个。因此 GLEW 的开发人员想出了一组脚本,从 opengl.org 获取扩展规范并自动创建整个扩展加载并将其包装到一个小库中,这不会创建额外的依赖项。
如果您想使用更高的 OpenGL 功能:使用 GLEW。不是因为它是强制性的,而是因为它是解决此问题的最直接方法。
关于c++ - 最新的 OpenGL 应用程序是否必须使用 GLEW?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10670555/
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
ECharts是一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器,底层依赖轻量级的Canvas类库ZRender,提供直观、生动、可交互、可高度个性化定制
前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文
作为一名ios开发攻城狮,在苹果没有出arc(自动内存管理机制)时,我们几乎有一半的开发时间都耗费在这么管理内存上.后来苹果很人性的出了arc,虽然在很大程度上,帮助我们开发者节省了精力和时间.但是
如何反转Pandas中DataSeries的排序顺序,以便我按降序使用它们? 最佳答案 In [28]: s = pd.Series([20, 10, 30], ['c', 'a', 'b']) In
这个问题已经有答案了: 已关闭10 年前。 Possible Duplicate: Is jQuery $.browser Deprecated? 最新的 jQuery 库是否发生变化 $.brows
我正在开发一个 Intranet 项目,所以我无法复制/粘贴代码,所以希望我的描述和一些小片段会有所帮助。 我知道 MySQL 触发器无法做到这一点,但希望有一种干净的 JPA PrePersist(
这是数据集: 人员状态日期 埃里克 1 1/1/2015 埃里克 2 2/1/2015 埃里克 3 2015 年 3 月 1 日 约翰福音 1 3/1/2015 约翰福音 2 2015 年 2 月 1
现在我正在使用下面的查询按每篇文章的 auto_increment id 排序 mysql_query("SELECT * FROM articles ORDER BY id DESC"); 我想知道
已结束。此问题不符合 Stack Overflow guidelines .它目前不接受答案。 我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。 关闭
已结束。此问题不符合 Stack Overflow guidelines .它目前不接受答案。 我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。 关闭
现在我正在使用下面的查询按每篇文章的 auto_increment id 排序 mysql_query("SELECT * FROM articles ORDER BY id DESC"); 我想知道
在我们做文章的时候常用一些函数修改来实现自己的页面效果,例如,时间的自定义格式 我们常常需要乃至的,搜集了些有关时间格式的CODE,作大家为参考,希望对大家有些帮助 列表页list_article
我想将某些东西提交到 github 存储库,但我(显然)没有任何权利这样做。我对那个 repo 做了一个分支,提交了我的更改并提交了一个 pull-request。 现在,问题是过了一段时间其他人已经
我是 SQL 新手,所以现有的答案对我来说有点复杂。 我有三张 table : WORKER |id |name |date |... JOB |id |name |salary |accept AP
我正在自动从PowerPoint和Excel电子表格中生成PowerPoint报表。在粘贴表格之前,我已经完成了整个过程。 我使用PPApp.CommandBars.ExecuteMso ("Past
我们有 1 个 Kafka 主题和 1 个分区: 从 spring boot kafka 消费者那里看到一个相当奇怪的行为。 Spring kafka消费者在重新启动时总是从主题的开头开始消费。 我已
通过编程从iOS照片库获取最新照片是否有技巧? 我知道我可以按日期搜索,但是我必须每隔一微秒进行一次扫描,以便进行某种比较以准确地找到它。 有没有人做过这个或任何想法? 最佳答案 我之前采取的一种方法
我们上周将 Web 应用程序中的 Telerik Kendo 库从 V2015.2.902 升级到 V2016.1.112。从那时起,我们注意到使用 Kendo 的页面需要很长时间才能加载(30 秒到
我有两个表: STUDENT GRADES ---------- ---------- id id name person_id ad
我是一名优秀的程序员,十分优秀!