- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为 OpenGL 工作设置跨平台代码库,以下代码在我硬盘驱动器的 Windows 7 分区上绘制得很好。但是,在 Mavericks 上,我只看到黑屏并且无法弄清楚原因。我已经尝试了指南和此处相关问题中建议的所有内容,但到目前为止没有任何效果!希望我只是遗漏了一些明显的东西,因为我对 OpenGL 还是很陌生。
#include "stdafx.h"
#include "gl_core_4_3.hpp"
#include <GLFW/glfw3.h>
int main(int argc, char* argv[])
{
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, 1);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
if (!glfwInit())
{
fprintf(stderr, "ERROR");
glfwTerminate();
return 1;
}
GLFWwindow* window = glfwCreateWindow(640, 480, "First GLSL Triangle", nullptr, nullptr);
if (!window)
{
fprintf(stderr, "ERROR");
glfwTerminate();
return 1;
}
glfwMakeContextCurrent(window);
gl::exts::LoadTest didLoad = gl::sys::LoadFunctions();
if (!didLoad)
{
fprintf(stderr, "ERROR");
glfwTerminate();
return 1;
}
printf("Number of functions that failed to load: %i\n", didLoad.GetNumMissing()); // This is returning 16 on Windows and 82 on Mavericks, however i have no idea how to fix that.
gl::Enable(gl::DEPTH_TEST);
gl::DepthFunc(gl::LESS);
float points[] =
{
0.0f, 0.5f, 0.0f,
0.5f, -0.5f, 0.0f,
-0.5f, -0.5f, 0.0f,
};
GLuint vbo = 0;
gl::GenBuffers(1, &vbo);
gl::BindBuffer(gl::ARRAY_BUFFER, vbo);
gl::BufferData(gl::ARRAY_BUFFER, sizeof(points) * sizeof(points[0]), points, gl::STATIC_DRAW);
GLuint vao = 0;
gl::GenVertexArrays(1, &vao);
gl::BindVertexArray(vao);
gl::EnableVertexAttribArray(0);
gl::BindBuffer(gl::ARRAY_BUFFER, vbo);
gl::VertexAttribPointer(0, 3, gl::FLOAT, 0, 0, NULL);
const char* vertexShader =
"#version 400\n"
"in vec3 vp;"
"void main() {"
" gl_Position = vec4(vp, 1.0);"
"}";
const char* fragmentShader =
"#version 400\n"
"out vec4 frag_colour;"
"void main() {"
" frag_colour = vec4(1.0, 1, 1, 1.0);"
"}";
GLuint vs = gl::CreateShader(gl::VERTEX_SHADER);
gl::ShaderSource(vs, 1, &vertexShader, nullptr);
gl::CompileShader(vs);
GLuint fs = gl::CreateShader(gl::FRAGMENT_SHADER);
gl::ShaderSource(fs, 1, &fragmentShader, nullptr);
gl::CompileShader(fs);
GLuint shaderProgram = gl::CreateProgram();
gl::AttachShader(shaderProgram, fs);
gl::AttachShader(shaderProgram, vs);
gl::LinkProgram(shaderProgram);
while (!glfwWindowShouldClose(window))
{
gl::ClearColor(0, 0, 0, 0);
gl::Clear(gl::COLOR_BUFFER_BIT | gl::DEPTH_BUFFER_BIT);
gl::UseProgram(shaderProgram);
gl::BindVertexArray(vao);
gl::DrawArrays(gl::TRIANGLES, 0, 3);
glfwPollEvents();
glfwSwapBuffers(window);
}
glfwTerminate();
return 0;
}
通过 Xcode 编译,使用 2013 Macbook Mini,Intel HD Graphics 5000。可能还值得注意的是,GLLoadGen GetNumMissing() 方法在 OSX 上返回 82 个缺失函数,我不知道为什么会这样或如何修复它。 GLFW 包括 gl.h 而不是 gl3.h,但是通过声明所需的宏输出一个关于包括两个 header 但仍然没有绘制的警告来强制它包括 gl3.h。任何帮助或建议都会很棒。
最佳答案
您必须在调用任何其他 GLFW 函数之前调用 glfwInit。还要注册一个错误回调,以便诊断某个 GLFW 操作失败的原因。您请求的 OpenGL 配置文件不受 MacOS X Mavericks 支持。但是在设置窗口提示后调用 glfwInit
会重置该选择,因此您得到的是窗口+上下文,而不是所需的配置文件。将 glfwInit
拉到前面可以解决该问题,但现在由于缺少操作系统支持,您的窗口+上下文创建失败。
关于c++ - OpenGL 不使用 GLFW 和 GLLoadGen 绘制 Mavericks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26177631/
我从 git 克隆: git clone git://git.apache.org/mesos.git 并且还做了 brew install autoconf automake libtool 然后尝
我已经在 Mavericks 上安装了 XQuartz 2.7.5。在那之后,我用 mplayer 播放的视频似乎加载到了一个单独的窗口中,所有白色都停留在播放音频上。我通过使用 launchctl
最近,我将我的 OS X 更新到了 10.9( Mavericks );不幸的是,尽管我将 Xcode 命令行更新为 OS X Mavericks 的 5.1.1,但 gfortran 停止工作。前段
尝试使用 Homebrew 软件在 mac os x mavericks 上安装 zlib-devel 不起作用: brew install zlib-devel Error: No availabl
更新:我看到有人尝试将 PyCharm 与 SSHFS 结合使用,而 JetBrains 说:“不”。也许这行不通? 我正在尝试在我工作的客户办公室的 SSHFS 安装磁盘上使用 WebStorm —
给定以下程序: #import int main(int argc, char *argv[]) { @autoreleasepool { NSDateFormatter *
我的快速查看生成器以前可以正常工作,但现在坏了。 这是一个错误还是我做错了什么? 这是我的代码: OSStatus GeneratePreviewForURL(void *thisInterface,
我很难让 PhpMyAdmin 在 Mavericks 上工作。 我通过取消注释/etc/apache2/httpd.conf 中的 LoadModule 指令在 apache 中启用了 PHP,我已
我知道还为时过早,但我已经升级到 OSX mavericks,我无法使用 Homebrew 安装 opencv。 ==> Installing dependencies for opencv:
我正在使用 vagrant Geodjango box 并且端口转发对我不起作用。 在盒子上,我运行了: python manage.py runserver 0.0.0.0:8000 但是 http
我一直在用 homebrew在 OSX Mavericks 上有一段时间了,但是我现在正在处理需要将文件添加到那些相同安装程序的文件夹中。 这是输入时的问题: $ brew info ant 我收到
我在前一周升级到 Mavericks,从那以后开始遇到 Homebrew 软件问题。 'brew doctor' 报告没有问题,但我目前正在尝试安装 Apache Thrift,但它失败了。有什么建议
我找不到任何关于此的信息,而且我从未对推送通知做过任何事情(但我模糊地知道它们是如何工作的)。在Mavericks中,既然OS X可以接收来自网站等各种事物的推送通知,那么iPhone模拟器可以接收推
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 9 年前。 Improve this ques
我有一个包含以下文本的 lldb 命令文件: settings set -- auto-confirm true breakpoint set --name main proc
我刚刚更新到 OS X Mavericks 中的命令行工具的最新版本,现在在编译我的(以前工作的)代码时,它会抛出以下错误 > clang: warning: no such sysroot dire
我正在尝试使用此脚本选择“Soundflower (2ch)”作为我的音频输出: tell application "System Preferences" activate set
在早期版本的 OS X 上,Applescript 如下: tell application "System Events" to tell process "Google Chrome" get p
我正在尝试在Genymotion中安装Google Play。但是,当我将zip放到仿真器中时,它会将文件保存在/sd.../中,而不是将其闪烁。我如何获得zip闪存? 最佳答案 如果您使用的是Mac
我的 Java 应用程序有一个构建在另一台服务器计算机上的应用程序。该服务器机器现已升级为 Mavericks + xcode 5.1。早些时候,我遇到了未使用 Mavericks + xcode 5
我是一名优秀的程序员,十分优秀!