我正在开发一个OpenG L应用程序,需要使用glew库.我正在使用Visual Studio C++ 2008 Express.
我使用gl.h,glu.h和glut.h编译了一个程序就好了,它完成了它应该做的事情.但是在包含glew.h之后它仍然编译得很好,但是当我尝试:
glewInit();
if (glewIsSupported("GL_VERSION_2_0"))
printf("Ready for OpenGL 2.0\n");
else {
printf("OpenGL 2.0 not supported\n");
}
Run Code Online (Sandbox Code Playgroud)
它不断印刷:
"不支持OpenGL 2.0".
我试图将它更改为glewIsSupported("GL_VERSION_1_3")或甚glewIsSupported("GL_VERSION_1_0")至它仍然返回false意味着它不支持OpenGL版本.
我有一台Radeon HD 5750,它应该支持OpenGL 3.1和3.2的一些功能.我知道所有设备驱动程序都安装正确,因为我能够运行ATI提供的Radeon sdk中的所有程序.
我还安装了Opengl Extensions Viewer 3.15,它说的是OpenGL 3.1版Ati Driver 6.14.10.9116.我厌倦了所有的人GLEW_VERSION_1_1,GLEW_VERSION_1_2,GLEW_VERSION_1_3,GLEW_VERSION_2_0,GLEW_VERSION_2_1,GLEW_VERSION_3_0和所有这些返回false.
还有其他什么建议吗?我甚至试过GLEW_ARB_vertex_shader && GLEW_ARB_fragment_shader,这也是假的.
我正在使用openGL和glew来检查扩展.
说我想检查是否可以使用multitexture扩展:
如果可以使用它,GLEW_ARB_multitexture将返回true.
但
arb_multitexture在openGL 3.0中已弃用.
它还会归还吗?
它在3.1中删除了什么?
谢谢.
我只想绘制一堆构成"立方体"的线条.我不能为我的生活弄清楚为什么这会产生黑屏.调试器不会在任何时候中断.
我确定这是我的指针的一个问题,因为我在普通的c ++和OpenGL中只对他们不太好,它变得更糟.
const char* vertexSource =
"#version 150\n"
"in vec3 position;"
"void main() {"
" gl_Position = vec4(position, 1.0);"
"}";
const char* fragmentSource =
"#version 150\n"
"out vec4 outColor;"
"void main() {"
" outColor = vec4(1.0, 1.0, 1.0, 1.0);"
"}";
int main() {
initializeGLFW();
// Initialize GLEW
glewExperimental = GL_TRUE;
glewInit();
// Create Vertex Array Object
GLuint vao;
glGenVertexArrays(1, &vao);
glBindVertexArray(vao);
// Create a Vertex Buffer Object and copy the vertex data to it
GLuint vbo;
glGenBuffers( 1, &vbo …Run Code Online (Sandbox Code Playgroud) 我一直在寻找一个如何制作游戏菜单的例子.例如,我想让应用程序打开菜单.从那里它将打开"玩游戏""显示积分""退出".
到目前为止我所看到的一切都是弹出菜单..
因此我寻找的答案是关于使用"状态",如暂停状态,游戏状态等等.但我无法弄清楚应该是这样的布局或应该如何使用..没有如何创建MenuState而无法找到一个示例任何地方
使用过剩和freeglew
我是OpenGL的新手,并尝试按照http://www.openglbook.com教程学习OpenGL 4 .在第二页,我们使用着色器创建一个简单的三角形.但是在创建顶点着色器之后,程序崩溃了.通过调试,我可以找到一个OpenGL错误GL_INVALID_ENUM(0x0500).见下面的代码......
不幸的是,我找不到任何解决方案.也许你知道吗?
编辑:
所以,再次搜索后GL_INVALID_ENUM和glewInit(),我发现已经有其他网站上的很多帖子,但:他们大多有一些错别字其着色器和我绝对没有.在
http://www.opengl.org/wiki/OpenGL_Loading_Library上
我发现:
您可能仍然会得到GL_INVALID_ENUM(取决于您使用的GLEW的版本),但至少GLEW会忽略glGetString(GL_EXTENSIONS)并获取所有函数指针.
有人建议只是忽略错误,但我仍然无法运行该程序...顺便说一句,你们中的任何人都可以尝试运行该程序吗?如果你有同样的错误,我们肯定知道它不是我的IDE/Project配置错误.
眼镜:
Windows 8.1 64bit
Intel Core i7-3517U with
Intel HD4000 GPU (OpenGL 4.0.0 Support)
8 GB RAM
Run Code Online (Sandbox Code Playgroud)
IDE:
Eclipse IDE for C/C++ Developers
Version: Kepler Service Release 1
Build id: 20130919-0819
using MinGW Compiler
Run Code Online (Sandbox Code Playgroud)
码:
#include <stdlib.h>
#include <stdio.h>
#include <string>
#define GLEW_STATIC
#include <gl/glew.h>
#include <gl/freeglut.h>
#define WINDOW_TITLE_PREFIX "Chapter 2"
// initialization
int CurrentWidth = 800,
CurrentHeight = 600,
WindowHandle = …Run Code Online (Sandbox Code Playgroud) 鉴于以下情况,我正在努力寻找在 Visual Studio(即 2015)中设置依赖项的正确方法:
我有2个项目:
至此,Engine项目编译成功。
我希望 Game 项目也能工作,但是当我尝试使用简单的 main.cpp 编译该项目时,编译器显示此错误(引用 Engine 项目中的文件):
-- 错误 C1083 无法打开包含文件:'GL/glew.h':没有这样的文件或目录
我不想包含 opengl、glew 和 glfw 库,也不想包含目录到我的游戏项目中,因为用户不应该访问此 API。
那么......实现这一目标的正确方法是什么(越简单越好)?
提前致谢
我想将 glfw 和 glew 链接到我的图形编程项目。
添加 glfw 非常简单,我按照他们网站上的说明进行操作。使用 glfw 创建一个窗口效果很好。
但是,我看不出我的 CMakeLists.txt 添加 GLEW 有什么问题。程序给出错误:“GL/glew.h:没有这样的文件或目录”。
我的 CMakeLists.txt:
cmake_minimum_required( VERSION 3.5 )
project(Starting)
find_package( OpenGL REQUIRED )
set( GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE )
set( GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE )
set( GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE )
add_subdirectory( ${PROJECT_SOURCE_DIR}/GLEW/build/cmake )
add_subdirectory( ${PROJECT_SOURCE_DIR}/GLFW )
add_executable( Starting ${PROJECT_SOURCE_DIR}/src/main.cxx )
target_link_libraries( Starting glew32s glfw )
Run Code Online (Sandbox Code Playgroud)
我试过给它命名 GLEW、glew、glew32,但没有任何改变。该库从这里下载:https : //github.com/Perlmint/glew-cmake
如果它有任何重要性,这是我用来运行 CMakeLists.txt 的批处理文件(位于我的项目源目录中的构建文件夹中):
@echo off
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug .. …Run Code Online (Sandbox Code Playgroud) 我正在为 GLEW 使用静态链接库,因此我必须定义 GLEW_STATIC 来编译我使用 GLEW 的程序。但我一直不明白为什么这是必要的。所以有人能解释一下原因吗?
我想用 GLTransition 过滤器构建 FFMPEG。我按照此链接中的构建说明进行操作
我还安装了 FFMPEG 构建(GLU 和 GLEW 库)的所有依赖项,并使用 EGL 配置它。
我配置的命令是:
./configure --extra-libs='-lGLEW -lEGL' --enable-filter=gltransition --disable-x86asm
Run Code Online (Sandbox Code Playgroud)
执行此命令后,Enabled Filter 日志中会出现 GLTransition 过滤器。我已经使用命令检查了 GLTransition 过滤器:
./ffmpeg -v 0 -filters | grep gltransition
Run Code Online (Sandbox Code Playgroud)
但它什么也没显示。
然后还使用下面的 ffmpeg 命令进行交叉检查:
./ffmpeg -i media/0.mp4 -i media/1.mp4 -filter_complex gltransition -y out.mp4
Run Code Online (Sandbox Code Playgroud)
但它显示错误,例如
[AVFilterGraph @ 0x1febe80] No such filter: 'gltransition'
Error initializing complex filters.
Invalid argument.
Run Code Online (Sandbox Code Playgroud)
我是不是错过了什么?
我想用 SDL2 创建一个 OpenGL 项目。我通常通过GL/glew.h首先包含来开始我的 OpenGL 项目。SDL_opengl.h之后我必须包括吗?它还包含 OpenGL API 标头,因此在我看来没有必要同时包含两者。