0

我刚刚在我的 Mac 上安装了 Visual Studio 2012/2013,并在 bootcamp 上安装了 Windows7。

但是,我的 VS 项目(win32 项目)似乎无法在它们上正常工作。一旦我单击 F5/ctrl+F5,窗口就会突然显示并消失。我尝试了 VS 2012 和 2013,都遇到了同样的问题。而bin文件夹中生成的exe文件也有同样的问题。我测试的所有项目都可以在其他 PC 上正常运行。

我尝试了一个基本的控制台“HelloWorld”项目,它工作正常。

有人知道它有什么问题吗?

截图在这里:http: //imgur.com/amQS3Ys

非常感谢!

麦粒肿

<!-- language: C++ -->
#include <sb6.h>
#include <vmath.h>

class my_app : public sb6::application
{
public:
    void startup(){
        rendering_program = compile_shaders();
        glGenVertexArrays(1, &vertex_array_object);
        glBindVertexArray(vertex_array_object);
    }

    void render(double currentTime){

        const GLfloat color[] = { 0.0f, 0.0f, 0.5f, 1.0f };
        glClearBufferfv(GL_COLOR, 0, color);

        glUseProgram(rendering_program);

        GLfloat attrib[] = { (float)sin(currentTime) * 0.5f,
            (float)cos(currentTime) * 0.6f,
            0.0f, 0.0f };

        glVertexAttrib4fv(0, attrib);

        GLfloat attribColor[] = { 1.0f, 0.0f, 0.0f, 1.0f };
        glVertexAttrib4fv(1, attribColor);

        glDrawArrays(GL_TRIANGLES, 0, 3);
    }

    void shutdown(){
        glDeleteVertexArrays(1, &vertex_array_object);
        glDeleteProgram(rendering_program);
    }
private:
    GLuint rendering_program;
    GLuint vertex_array_object;

    GLuint compile_shaders(void){
        GLuint vertex_shader;
        GLuint fragment_shader;
        GLuint program;

        static const GLchar * vertex_shader_source[] = {
            "#version 410 core                                                      \n"
            "                                                                       \n"
            "layout (location = 0) in vec4 offset;                                  \n"
            "layout (location = 1) in vec4 color;                                   \n"
            "                                                                       \n"
            "out VS_OUT                                                             \n"
            "{                                                                      \n"
            "   vec4 color;                                                         \n"
            "} vs_out;                                                              \n"
            "                                                                       \n"
            "void main(void)                                                        \n"
            "{                                                                      \n"
            "   const vec4 vertices[3] = vec4[3](vec4( 0.25, -0.25, 0.5, 1.0),      \n"
            "                                    vec4(-0.25, -0.25, 0.5, 1.0),      \n"
            "                                    vec4( 0.25,  0.25, 0.5, 1.0));     \n"
            "                                                                       \n"
            "   gl_Position = vertices[gl_VertexID] + offset;                       \n"
            "   vs_out.color = color;                                               \n"
            "}                                                                      \n"
        };

        static const GLchar * fragment_shader_source[] = {
            "#version 410 core                              \n"
            "                                               \n"
            "in VS_OUT                                      \n"
            "{                                              \n"
            "   vec4 color;                                 \n"
            "} fs_in;                                       \n"
            "                                               \n"
            "out vec4 color;                                \n"
            "                                               \n"
            "void main(void)                                \n"
            "{                                              \n"
            "   color = fs_in.color;                        \n"
            "}                                              \n"
        };

        vertex_shader = glCreateShader(GL_VERTEX_SHADER);
        glShaderSource(vertex_shader, 1, vertex_shader_source, NULL);
        glCompileShader(vertex_shader);

        fragment_shader = glCreateShader(GL_FRAGMENT_SHADER);
        glShaderSource(fragment_shader, 1, fragment_shader_source, NULL);
        glCompileShader(fragment_shader);

        program = glCreateProgram();
        glAttachShader(program, vertex_shader);
        glAttachShader(program, fragment_shader);
        glLinkProgram(program);

        glDeleteShader(vertex_shader);
        glDeleteShader(fragment_shader);

        return program;
    }
};
DECLARE_MAIN(my_app);
4

0 回答 0