Приветствую. Целый день ищу причину, никак не могу её найти. Всё портит glad.h, но он нужен для таких функций как glDrawArrays, glBufferData, glViewport и т.д. Буду рад любой помощи!
#pragma comment(lib, "liblua53.a")
#pragma comment(lib, "glfw3dll.lib")
#pragma comment(lib, "glfw3.lib")
#pragma comment(lib, "opengl32.lib")
#include <iostream>
#include <windows.h>
extern "C"
{
#include <lua.h>
#include <lualib.h>
#include <lua.hpp>
#include <luaconf.h>
}
#include <glad/glad.h>
#include <GLFW/glfw3.h>
using namespace std;
//prototypes
void execGLFWProgram();
void glfw_ErrorFunction(int error, const char* description);
static void glfw_keyCallback(GLFWwindow* window, int key, int scancode, int action, int mods);
void lua_execScript();
//structures,data
static const struct {
float x, y;
float r, g, b;
} verticles[3]{
{ -0.6f, -0.4f, 1.f, 0.f, 0.f },
{ 0.6f, -0.4f, 0.f, 1.f, 0.f },
{ 0.f, 0.6f, 0.f, 0.f, 1.f }
};
static const char* vertex_shader_text ="";
static const char* fragment_shader_text ="";
//functions
void main() {
execGLFWProgram();
fflush(stdin);
system("pause");
}
void execGLFWProgram() {
GLFWwindow* window = nullptr;
if (!glfwInit()) {
cout << "Can't init GFLW!" << endl;
return;
}
glfwSetErrorCallback(glfw_ErrorFunction);
window = glfwCreateWindow(700, 560, "GFLW Window", NULL, NULL);
if (window == NULL) {
cout << "Can't create GFLW window!" << endl;
return;
}
glfwSetKeyCallback(window, glfw_keyCallback);
glfwMakeContextCurrent(window);
//set OpenGL
int width, height;
glfwGetFramebufferSize(window, &width, &height);
glViewport(0, 0, width, height);
GLuint vShader, vBuffer, fShader, program;
glGenBuffers(1, &vShader);
glBindBuffer(GL_ARRAY_BUFFER, vShader);
glBufferData(GL_ARRAY_BUFFER, sizeof(verticles), verticles, GL_STATIC_DRAW);
vShader = glCreateShader(GL_VERTEX_SHADER);
glShaderSource(vShader, 1, &vertex_shader_text, NULL);
glCompileShader(vShader);
fShader = glCreateShader(GL_FRAGMENT_SHADER);
glShaderSource(fShader, 1, &fragment_shader_text, NULL);
glCompileShader(fShader);
program = glCreateProgram();
glAttachShader(program, vShader);
glAttachShader(program, fShader);
glLinkProgram(program);
GLint mvpLoc = glGetUniformLocation(program, "MVP");
GLint vPosLoc = glGetUniformLocation(program, "vPos");
GLint vColLoc = glGetUniformLocation(program, "vCol");
glEnableVertexAttribArray(vPosLoc);
glVertexAttribPointer(vPosLoc, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 5, (void*)0);
glEnableVertexAttribArray(vColLoc);
glVertexAttribPointer(vColLoc, 3, GL_FLOAT, GL_FALSE, sizeof(float) * 5, (void*)(sizeof(float)*2));
while (!glfwWindowShouldClose(window)) {
glfwPollEvents();
glUseProgram(program);
glDrawArrays(GL_TRIANGLES, 0, 3);
}
glfwDestroyWindow(window);
glfwTerminate();
}
void glfw_ErrorFunction(int error, const char* description) {}
static void glfw_keyCallback(GLFWwindow* window, int key, int scancode, int action, int mods){}
void lua_execScript() {}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как написать парсер математических выражений? Надо реализовать не только операторы (+, -, /, *), но и функции, например log, sin, cos, tan и тд
Надо считать бесконечный ряд переменных типа double с консолиНапример, я ввожу:
Подскажите, зачем в приведенном примере инициализируется локальный массив char temp[80] ? Массив не используется, но и объяснений нет никаких,...