标签: glew

freeglut与glew的区别?

我最近开始学习OpenGL(> 3.3)并且我注意到很多示例和教程都使用了freeglut和glew,但是并没有真正解释它们的区别.我在谷歌搜索和阅读广告后发现的最好的描述是这个OpenGL相关的工具包和API,但发现它缺乏.我甚至在SO上读过标签信息.

作为OpenGL的新手,我仍然试图掌握不同的概念.我已经到了创建基本程序的阶段,该程序使用glew,创建上下文(在Windows上,VS2010),并绘制真正基本的形状,所有这些都不需要明确包含freeglut.所以我不明白为什么我需要它.

所以我的问题是,有什么区别:
-freeglut
-glew
- (&glfw) 另一个人不能
做什么呢?

opengl glew freeglut glfw

41
推荐指数
1
解决办法
3万
查看次数

在Xcode中添加来自添加框架的标头

我想使用一些类似的框架glew,cg所以我手动添加

右键单击项目所需的框架到我的项目 - >将文件添加到...

并选择正确的框架.问题是,当我尝试包含头文件时,

Xcode无法找到它们中的任何一个.我希望这张照片有助于理解:

在此输入图像描述

和:

在此输入图像描述

给出的错误是针对glew框架的,但它也会发生Cg.

正如您在左侧所看到的,添加了所需的框架.

关于如何包含这些标题的任何想法?

尝试手动添加头文件后,我遇到了一个架构错误:

在此输入图像描述

我不知道这是不是应该是这样的.谢谢!

macos xcode cg frameworks glew

35
推荐指数
2
解决办法
6万
查看次数

编译OpenGL程序GL/glew.h缺失

我按照本教程中的说明将OpenGL安装到运行Linux Mint的计算机上.我正在尝试编译一个使用OpenGL的程序,但是我遇到了编译错误:fatal error: GL/glew.h: No such file or directory.我检查/ usr/include/GL文件夹,确实缺少glew.h.我不知道为什么它丢失了,因为我做了命令sudo apt-get install libglew1.5并且它给出了输出:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
libglew1.5 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 465 not upgraded.
Run Code Online (Sandbox Code Playgroud)

为什么缺少glew.h文件?

linux opengl glew

33
推荐指数
2
解决办法
5万
查看次数

用mingw在窗户上建立glew

谁能给我正确的命令,用mingw在windows上构建glew?

我试过了:

gcc -static glew.c glewinfo.c visualinfo.c -I/path/to/glew/include

但我收到了数以千计的链接器错误(缺少引用).

我不能用Make构建,因为不幸的是makefile有很多unix命令,我没有cygwin或任何工作.

(或者,如果有人可以指向我的Windows 32b构建我将非常感激)

c++ glew mingw

28
推荐指数
4
解决办法
5万
查看次数

Cmake链接库目标链接错误

嗨我有链接Glfw和其他库使用cmake的问题.从命令行我编译如下

g++ main.cpp -lGL -lGLU -lGLEW -lglfw
Run Code Online (Sandbox Code Playgroud)

但我想用cmake进行编译.我试图使用target_linkg_libraries,但这会产生错误

CMakeLists.txt上的CMake错误:18(target_link_libraries):无法为目标"GL"指定不是由此
项目构建的链接库.

我尝试使用添加定义来做到这一点.我没有看到错误,但这不链接库.

cmake_minimum_required (VERSION 2.6)
project (test)

find_package(OpenGL REQUIRED)
find_package(GLEW REQUIRED)

ADD_DEFINITIONS(
    -lGL
    -lGLU
    -lGLEW
    -lglfw
)

add_executable(test.out
    main.cpp
)

target_link_libraries(GL GLU GLEW glfw)
Run Code Online (Sandbox Code Playgroud)

c++ opengl glut glew cmake

27
推荐指数
1
解决办法
5万
查看次数

GLEW做了什么以及为什么需要它?

好的,所以我已经知道为什么我需要GLEW,但只有一点.

如果我使用现代OpenGL的东西,可能是从版本3.0开始,和/或使用核心配置文件,那么GLEW是必需的,因为没有它编译产生的错误,如未glGenVertexArrays声明.

所以GLEW做了一些背景工作,包括我们想要使用的现代OpenGL函数.

除此之外,还有什么其他的吗?另外,它是如何工作的.

举个例子,它是否改进了跨平台编译?(例如,如果从Linux迁移到Windows或OS X,需要对代码进行少量修改?

它是否也改善了图形硬件的"跨平台性"?例如,假设我们有两台相同的计算机,包括操作系统.在一个系统上使用OpenGL 4.3命令编译程序.如果其他系统有只支持OpenGL 3.3的显卡或驱动程序,那么GLEW会帮忙吗?(也许是为旧版OpenGL编译着色器?)

所以你可能会发现我实际上并不知道GLEW做了什么或它是如何做到的.

最后一点; 有谁知道如何使用GLEW与GLFW?我可能会将其作为一个单独的问题发布.

opengl glew opengl-3 opengl-4

24
推荐指数
2
解决办法
1万
查看次数

使用GLEW在Windows下使用OpenGL扩展

我一直在Windows上使用OpenGL扩展这种痛苦的方式.GLEW是更容易的方式吗?我该如何开始使用它?

opengl glew

23
推荐指数
2
解决办法
4万
查看次数

OpenGL:glGetError()在调用glewInit()后返回无效的枚举

我使用GLEW和freeglut.出于某种原因,在调用glewInit()之后,glGetError()返回错误代码1280,即使使用glewExperimental = GL_FALSE也是如此.

我无法编译着色器,glGetProgramInfoLog()返回"在调用glLinkProgram()之前未成功编译顶点着色器.链接失败." 之前我能够编译着色器.

重新安装驱动程序没有帮助.

这是我的代码:

int main(int argc, char* argv[])
{
    GLenum GlewInitResult, res;

    InitWindow(argc, argv);

    res = glGetError(); // res = 0

    glewExperimental = GL_TRUE;
    GlewInitResult = glewInit();    

    fprintf(stdout, "ERROR: %s\n", glewGetErrorString(GlewInitResult)); // "No error"
    res = glGetError(); // res = 1280

    glutMainLoop();

    exit(EXIT_SUCCESS);
}

void InitWindow(int argc, char* argv[])
{
    glutInit(&argc, argv);

    glutInitContextVersion(4, 0);
    glutInitContextFlags(GLUT_FORWARD_COMPATIBLE);
    glutInitContextProfile(GLUT_CORE_PROFILE);

    glutSetOption(GLUT_ACTION_ON_WINDOW_CLOSE,
    GLUT_ACTION_GLUTMAINLOOP_RETURNS);

    glutInitWindowPosition(0, 0);
    glutInitWindowSize(CurrentWidth, CurrentHeight);
    glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);

    WindowHandle = glutCreateWindow(WINDOW_TITLE);

    GLenum errorCheckValue = glGetError();

    if (WindowHandle …
Run Code Online (Sandbox Code Playgroud)

c++ opengl glew freeglut

22
推荐指数
1
解决办法
2万
查看次数

无法初始化GLEW.缺少GL版本

我试图用最新版本的qt创建器设置SFML 2.0,我已经设置了SFML,我导入了一个我在visual studio中编写的小游戏.编译后,我得到这个:

在此输入图像描述

我尝试了什么

  • 从头开始重新安装整个qt SDK和qt creator IDE
  • 重新安装SFML
  • 重新安装mingw
  • 我试着编写一个简单的程序来确保它不是我的代码,程序编译正确但是当我关闭应用程序时,我得到的OpenGL错误不正常
  • 我尝试在SFML论坛上发帖,但无济于事.
  • 谷歌搜索错误显示一些特定于OpenGL的结果,并且过于本地化,它们不适用于我,在SFML 2.0中没有回答这个问题

额外细节

  • 我正在运行Windows XP SP3,最新版本的mingw和qt SDK以及SFML

  • 我正在尝试使用的代码在Visual Studio 2010 Code :: Blocks 上没有任何错误甚至警告

  • 是的,我确信在我的IDE上设置了SFML,基本代码可以正常运行,但是显示了这些错误,更高级的代码将所有精灵和文本显示为框.
  • 我自己没有编译SFML

  • 我的gcc版本是4.6.2

  • 我的gcc是DW2

我没有得到任何结果,我甚至不知道如何远程接近解决这个问题,甚至不知道从哪里开始.

编辑 我无法向您展示我的所有代码,它是超过20个文件,我几乎90%确定它不是我的代码,我上面说过:我可以运行此代码,没有任何警告甚至任何IDE上的错误除了qt创建者.

c++ opengl glew qt-creator sfml

22
推荐指数
3
解决办法
2万
查看次数

为什么glGetString(GL_VERSION)返回null/zero而不是OpenGL版本?

我在Linux Mint 13 XFCE上.我的问题是,当我在终端运行命令时:

glxinfo | grep "OpenGL version"
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

OpenGL version string: 3.3.0 NVIDIA 295.40
Run Code Online (Sandbox Code Playgroud)

但是当我glGetString(GL_VERSION)在我的应用程序中运行时,结果为null.为什么这段代码没有得到gl_version

#include <stdio.h>
#include <GL/glew.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
#include <GL/glext.h>

int main(int argc, char **argv) {

    glutInit(&argc, argv);
    glewInit();

    printf("OpenGL version supported by this platform (%s): \n",
        glGetString(GL_VERSION));
}
Run Code Online (Sandbox Code Playgroud)

c++ opengl glut glew

21
推荐指数
1
解决办法
3万
查看次数

标签 统计

glew ×10

opengl ×8

c++ ×5

freeglut ×2

glut ×2

cg ×1

cmake ×1

frameworks ×1

glfw ×1

linux ×1

macos ×1

mingw ×1

opengl-3 ×1

opengl-4 ×1

qt-creator ×1

sfml ×1

xcode ×1