Выброшено исключение GLFWC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Выброшено исключение GLFW

Сообщение Anonymous »

Я следую руководствам MG по OpenGL и вношу некоторые изменения по своему вкусу в код, который сначала работал, но после компиляции шейдеров и связывания их с программой он каким-то образом начал давать сбой создает нормально, но не запускает окно, только cmd в фоновом режиме выдает ошибку в отладчике
Исключение, возникающее по адресу 0x00007FF6672DF040 в Project1.exe: 0xC0000005: Местоположение чтения нарушения прав доступа 0x0000000000000310.

Код: Выделить всё

#include 
#include 
#include 
#include 
#include 
#include 

void framebuffer_size_callback(GLFWwindow* window, int width, int height);
void processInput(GLFWwindow* window);

std::string loadShaderSrc(const char* filename);

const char* tit1 = "title";
const int width = 1280;
const int height = 720;
#define wind GLFWwindow* window1

int main()
{
wind = glfwCreateWindow(width, height, tit1, NULL, NULL);

glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);

glfwMakeContextCurrent(window1);
glfwSwapInterval(1);
glfwSetFramebufferSizeCallback(window1, framebuffer_size_callback);
glViewport(0, 0, 1280, 720);

// reading shaders and transforming to const char* 's

std::string vertShaderSrc = loadShaderSrc("vertex_shader.glsl");
const char* vertShader = vertShaderSrc.c_str();
std::string fragShaderSrc = loadShaderSrc("fragment_shader.glsl");
const char* fragShader = fragShaderSrc.c_str();

// --- vertex shader ---

unsigned int vertexShader = glCreateShader(GL_VERTEX_SHADER);
glShaderSource(vertexShader, 1, &vertShader, NULL);
glCompileShader(vertexShader);

// --- fragment shader ---

unsigned int fragmentShader = glCreateShader(GL_FRAGMENT_SHADER);
glShaderSource(fragmentShader, 1, &fragShader, NULL);
glCompileShader(fragmentShader);

//shader program

unsigned int shaderProgram = glCreateProgram();
glAttachShader(shaderProgram, vertexShader);
glAttachShader(shaderProgram, fragmentShader);
glLinkProgram(shaderProgram);

//main window creation

while (!glfwWindowShouldClose(window1)) {
processInput(window1);
glfwSwapBuffers(window1);
glfwPollEvents();

glClearColor(1.0f, 1.0f, 0.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
}

return 0;
}

void framebuffer_size_callback(GLFWwindow* window, int width, int height)
{
glViewport(0, 0, width, height);
}

void processInput(GLFWwindow* window)
{
if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS || glfwGetKey(window, GLFW_KEY_Q) == GLFW_PRESS) {
glfwSetWindowShouldClose(window, true);
}
}

std::string loadShaderSrc(const char* filename)
{
std::ifstream file;
std::stringstream buf;
std::string return1 = "";
file.open(filename);
if (file.is_open()) {
buf 

Подробнее здесь: [url]https://stackoverflow.com/questions/79827834/exception-thrown-glfw[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»