我正在尝试使用 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}
我的代码或系统没有任何问题所以
给我一个如何做的例子。