首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我将如何在visual 2012中启动一个OpenGL项目?

我将如何在visual 2012中启动一个OpenGL项目?
EN

Stack Overflow用户
提问于 2013-12-12 10:34:24
回答 3查看 4K关注 0票数 1

我在Visual 2012中创建了一个空白的c++项目,我想创建一个乒乓游戏来了解OpenGL的工作原理。

在我的项目中有四个目录,外部依赖关系,头文件,资源文件和源文件。有人能告诉我相关的最新资源,这些资源详细介绍了如何实现OpenGL的初始设置和基本方法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-12 10:52:44

理论上说,你不需要别的什么了,你已经准备好了。然而,基本窗口设置并不那么容易(一旦您了解基本窗口,它就会重复,但仍然是“乏味的”)。

因此,大多数人会推荐您使用GLUT,它本质上是一个处理最常见的平台依赖的东西的小型库项目(read:创建窗口、输入处理等)。为了你。这里有相当多的备选方案/实现,每个人似乎都有自己的最爱。

但是,我建议改用SFML。它是一个更大的库,但同时它也更高级(如果您了解基本知识并想要一个更受管理的库)。虽然它包含自己的绘图类,但仍然可以仅用于创建窗口,然后在原始OpenGL中使用您自己的自定义绘图代码。到目前为止,基于SFML的程序可以在Windows、Mac和Unix上编译,而Android和iOS端口处于beta状态。与使用GLU相比,最小的代码要长一些,但是它可能更容易理解/读取,特别是如果您还没有深入到回调中。

举个简单的例子:

代码语言:javascript
复制
#include <SFML/Graphics.hpp>

int main (int argc, char **argv) {
    sf::RenderWindow window(sf::VideoMode(640, 480), "OpenGL Test", sf::Style::Close | sf::Style::Titlebar);

    // Your own custom OpenGL setup calls here
    // There's no additional code needed, unless you want to mix SFML drawing and raw OpenGL


    sf::Event e;

    while (window.isOpen()) { // This is the program's main loop

        while (window.pollEvent(e)) { // Event handling
            switch (e.Type) {
                case sf::Event::Closed:
                    mWindow.close();
                    break;
            }
        }

        window.clear(); // Clear the buffer

        // Your own custom OpenGL drawing calls here
        // There's no additional code needed, unless you want to mix SFML drawing and raw OpenGL

        window.display(); // Update window contents
    }
    return 0;
}
票数 1
EN

Stack Overflow用户

发布于 2013-12-12 10:40:23

一种简单的方法是下载并安装GLFW格鲁。安装这两个目录,并将包含目录和库目录安装到这两个已安装的apis (右键单击项目->属性、->VS++目录、->appends路径以包含和库)。您很好,只需根据文档包含并设置上下文即可。GLFW处理所有的窗口创建和上下文处理,GLEW绑定所有您拥有的调用(例如: glClear、glBein等)以便能够使用它们。GLEW很容易使用,只需调用glewInit()

票数 0
EN

Stack Overflow用户

发布于 2013-12-12 14:56:30

对于OpenGL游戏开发,最简单的解决方案是使用包装器,如SFML或新的SDL2,它将处理窗口管理的丑陋细节,并允许您自由地试验OpenGL。

您还可以使用GLee轻松导入所需的OpenGL扩展。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20541057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档