如何查看自己电脑支持OpenGL core版本
1. 起因:
红宝书上的例子在电脑上运行后没有效果,但是怎么也找不到原因,反复对看了书上的源码和代码发现没有任何问题,但是就是没有树上写的效果
2. 思路:查看函数的说明,这里推荐使用docs.gl,这个网站会列出函数在OpenGL中哪些版本中有效.
查看后发现函数是OpenGL 4以后才有效,结合自己电脑比较老,所有想到了是不是自己电脑的OpenGL core版本比较低,不支持这个函数
3. 通过OpenGL函数glGetString
来获取我电脑的OpenGL core版本
const char * version = (const char *)glGetString(GL_VERSION);
log("OpenGL version : %s\n", version); /// log是我封装的一个输出函数
//printf("OpenGL version : %s\n", version);
输出结果:OpenGL version : 3.3.12618 Core Profile Context 13.251.9001.1001,看到这个我认为应该是我电脑OpenGL 版本不支持这个函数,目前不知道怎么解决如何才能使用到新版OpenGL版本的函数,留待以后思考(注:我有猜测是不是可以通过升级显卡驱动,但是今天没试),
4. 今天发现了一个新的查看方法判断自己电脑OpenGL是否支持我们写的版本(前提使用GLFW库)
/// 错误日志接收函数
static void error_callback(int error, const char *description)
{
log("%s", description); // 输出错误
}
glfwSetErrorCallback(error_callback); /// 关联上面的函数
一旦OpenGL操作函数发生错误,就会自动回调这个函数,让我们知道发生了什么错误
glfwWindowHint(GLFW_SAMPLES, 4);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 4);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
window = glfwCreateWindow(512, 512, "Hello World", NULL, NULL);
上述例子会输出如下错误:"WGL: Failed to create OpenGL context"
- 后记:我们可以通过OpenGL的函数
glGetString
的不同参数来获取很多OpenGL相关的信息,譬如:上面的版本,显卡名称等等
如何查看自己电脑支持OpenGL core版本的更多相关文章
- [Android] 如何查看apk需要支持的Android版本
reference to : http://blog.csdn.net/huiguixian/article/details/39928089 如果有一个apk,需要知道他最低安装支持的Android ...
- CYQ.Data 正式支持 DotNET Core 版本发布
闲话几句: 自从上周开始,IOS人员逝去,就开始接手IOS的代码了. 并开始整理IOS的代码(包括当时一开始设计的开发框架). 在未来不远的日子里,设想是有一个系列详细的介绍I恋App和IT连App及 ...
- 查看Windows电脑上.NET Framework版本的方法(找了好久的方法)
照网上大多数人的方法,在路径 C:\Windows\Microsoft.NET\Framework 下可以查看到.NET Framework的版本,不过无论Win7还是Win10,显示都是这样的: 那 ...
- 查看win电脑支持的最大内存?
wmic memphysical get maxcapacity 67108864 大约64G
- VMware Workstation 12 OpenGL ES版本支持情况与设置
概述 开始学习Opengl时,发现VMware Workstation虚拟机无法运行Opengl ES2.0的程序.后来,经过查找最终得知,是因为VMware Workstation11及之前的版本对 ...
- 支持多个版本的ASP.NET Core Web API
基本配置及说明 版本控制有助于及时推出功能,而不会破坏现有系统. 它还可以帮助为选定的客户提供额外的功能. API版本可以通过不同的方式完成,例如在URL中添加版本或通过自定义标头和通过Accept- ...
- C# 当前 .NET SDK 不支持将 .NET Core 2.1 设置为目标。请将 .NET Core 2.0 或更低版本设置为目标,或使用支持 .NET Core 2.1 的 .NET SDK 版本。
报错信息: 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 NETSDK1045 当前 .NET SDK 不支持将 .NET Core 2.2 设置为目标.请将 .NET Core 2.1 或 ...
- 如何查看tomcat的支持的jdk、servlet、jsp的版本
解压servlet-api 查看 可以看出,支持的servlet版本是4.0,jdk是1.8
- .NET Core 版本不支持的问题
分析一个.NET Core开源项目(Ocelot),打开后发现提示当前版本.NET Core 不支持. 错误信息如下: The current .NET SDK does not support ta ...
随机推荐
- 2016 C++及系统软件技术大会亮点
2016 C++及系统软件技术大会将于201610月28日-29日在上海举办!此次2016 C++及系统软件技术大会秉承"全球专家. 连接智慧"的理念!大会特邀C++之父Bjarn ...
- OpenCV常用函数分析
1. 聚类:将拥有最相似属性的数据归为一类. K-means聚类: python调用格式:compacness, labels, centers = cv2.kmeans(data, K, crite ...
- putty完全使用手册--多窗口---git提交---连接数据库--自动日志显示
01 putty dev 192.168.3.38 02 cd /home/gongfu/tripb/cranedev02.1 git status git add git commit git pu ...
- jquery的跳转.禁止全url跳转.只需控制器+方法
success:function(){ window.location.href="/enterprise/show"; } success:function(){ window. ...
- 自定义MVC框架(一)-(没有基于xml的)
0.创建oracle的sql语句如下 --创建表 create table userinfo(id number primary key,uname varchar2(20),password var ...
- centos 6 安装docker
安装 Fedora EPEL 1.yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarc ...
- java中修饰符及其用法
1. java中的修饰符 a. 权限修饰符 private,默认的,protected,public b. 状态修饰符 static,final c. 抽象修饰符 abstract 2. 类修饰符 p ...
- php 备份数据库
<?php header("Content-type:text/html;charset=utf-8"); //配置信息 $cfg_dbhost = 'loca ...
- def语句常见错误
自觉不才,使用def语句时容易出现以下错误, 参考: 习题—25 http://www.2cto.com/shouce/Pythonbbf/ex25.html def add(): print &qu ...
- IAR和Keil文件包含路径设置
在模块化编程时,为一个模块单独设置头文件是必不可少的. 在两款主流编译器中,在引用模块函数时候,包含头文件路径是必须的,那么设置文件路径的准确性就显得尤为重要. 否则,编译器会报错,无法打开某某头文件 ...