小编Lor*_*ani的帖子

为什么使用glDrawElements()会导致分段错误?

我正在学习OpenGL,并使用本指南本视频在C++中编写了以下代码.我也使用GLFW进行上下文创建,使用GLEW进行GL函数大部分Shader类都是从视频上传链接的,

问题是使用glDrawElements()在主循环内部渲染会给我一个分段错误:

Segmentation fault


------------------
(program exited with code: 139)
Press return to continue
Run Code Online (Sandbox Code Playgroud)

而使用glDrawArrays()我可以毫无问题地绘制.

有谁知道这可能是由什么引起的?我认为错误可能取决于Shader类的实现,因为我在其他程序中使用了glDrawArrays(),这些程序没有使用这个类,并且关心主函数中的着色器.

program.cpp

//INCLUDE AND DECLARATIONS
#include <iostream>
#include <fstream> 
// GLEW
#define GLEW_STATIC
#include <GL/glew.h>
// GLFW
#include <GLFW/glfw3.h>
#include "Shader.h"

void key_callback(GLFWwindow* window, int key, int scancode, int action, int mode);
unsigned long getFileLength(std::ifstream& file);
int loadshader(char* filename, GLchar** ShaderSource, unsigned long* len);

const GLuint WIDTH = 800, HEIGHT = 600;


//VERTEX DATA
float data[] = {
//    X      Y …
Run Code Online (Sandbox Code Playgroud)

c++ opengl glsl gldrawarrays

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

标签 统计

c++ ×1

gldrawarrays ×1

glsl ×1

opengl ×1