0

我正在尝试使用 opengl 2.1 在 Arch linux 中渲染一个三角形,但它不会渲染。

它不会说任何错误。

我的代码:

引擎.cpp

#include "engine.h"

int SCREEN_WDTH = 900;
int SCREEN_HEIGHT = 600;

float vertices[6] = {
    -0.5f,-0.5f,
    0.0f,0.5f,
    0.5f,-0.5f
};

void error_check()
{
    unsigned int error =glGetError();
    if (error != NULL)
    {
        std::cout << error << std::endl;
        std::cout << "error" << std::endl;
    }
    
}

int main()
{
    glfwInit();
    GLFWwindow* engine_window = glfwCreateWindow(SCREEN_WDTH,SCREEN_HEIGHT,"Senku engine 5",NULL,NULL);
    if (engine_window == NULL)
    {
        std::cout << "Glfw not working.." << std::endl;
        glfwTerminate();
        return -1;
    }
    glfwMakeContextCurrent(engine_window);
    glewInit();
    glewExperimental = GL_TRUE;
    error_check();

    unsigned int buffer;

    glGenBuffers(1,&buffer);
    glBindBuffer(GL_ARRAY_BUFFER,buffer);
    glBufferData(GL_ARRAY_BUFFER,6,vertices,GL_STATIC_DRAW);

    glEnableVertexAttribArray(0);
    glVertexAttribPointer(0,2,GL_FLOAT,GL_FALSE,2 * sizeof(float),0);

    error_check();
    
    while (!glfwWindowShouldClose(engine_window))
    {
        glfwPollEvents();

        glDrawArrays(GL_TRIANGLES,0,3);

        glfwSwapBuffers(engine_window);
    }
    glfwTerminate();
    return 0;
}

引擎.h:

#include <iostream>
#include <GL/glew.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GLFW/glfw3.h>

生成文件:

CC = g++
CF = -w

BINARY_NAME = -o Senku-engine-5

INCLUDE_LIBS = -lglfw -lGL -lX11 -lGLU -lGLEW

FILES = engine/engine.cpp 

all:engine/engine.cpp
    ${CC} ${CF} ${BINARY_NAME} ${FILES} ${INCLUDE_LIBS}

我的代码或系统没有任何问题所以

给我一个如何做的例子。

4

0 回答 0