我试图把它添加到一个glfw窗口中,但是它给了我这个错误

这是删除错误的行
ImGui_ImplOpenGL3_Init(GL_renderer);这是我的imgui文件夹

这是main.cpp (除了imgui文件夹之外没有其他文件)
#include "imgui/imgui.h"
#include <GL/glew.h>
#include <GLFW/glfw3.h>
#include "imgui/imgui_impl_glfw.h"
#include "imgui/imgui_impl_opengl3.h"
#include <stdio.h>
int main() {
GLFWwindow* window;
if (!glfwInit()) {
return -1;
}
window = glfwCreateWindow(850, 500, "test window", NULL, NULL);
// Setup Dear ImGui context
IMGUI_CHECKVERSION();
ImGui::CreateContext();
ImGuiIO& io = ImGui::GetIO(); (void)io;
// Setup Dear ImGui style
ImGui::StyleColorsDark();
//ImGui::StyleColorsClassic();
// Setup Platform/Renderer backends
ImGui_ImplGlfw_InitForOpenGL(window, true);
char* GL_renderer = (char*)glGetString(GL_RENDERER);
ImGui_ImplOpenGL3_Init(GL_renderer);
if (!window) {
return -1;
glfwTerminate();
}
while (!glfwWindowShouldClose(window)) {
glClear(GL_COLOR_BUFFER_BIT);
ImGui_ImplOpenGL3_NewFrame();
ImGui_ImplGlfw_NewFrame();
ImGui::NewFrame();
ImGui::Begin("hello world window");
glfwPollEvents();
}
glfwTerminate();
}请帮帮忙,我已经试着纠正这个错误6个小时了
发布于 2021-11-23 05:55:07
最后应该有一个ImGui::End(),就像在每个提供的示例中一样。
ImGui::Begin("hello world window");
...
ImGui::End();编辑您也编译了实现文件吗?https://github.com/ocornut/imgui/blob/master/imgui_draw.cpp
发布于 2021-05-18 16:11:00
它给了我一个空指针错误,我认为是因为它是一个错误的变量类型或什么的。
无论如何,在glfw opengl 3的示例文件中,在主函数的开头使用这样的方法,其中窗口被初始化以获得opengl呈现版本,AKA是导致错误的函数的参数。
// Decide GL+GLSL versions
#if defined(IMGUI_IMPL_OPENGL_ES2)
// GL ES 2.0 + GLSL 100
const char* glsl_version = "#version 100";
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 2);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0);
glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_ES_API);
#elif defined(__APPLE__)
// GL 3.2 + GLSL 150
const char* glsl_version = "#version 150";
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); // 3.2+ only
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); // Required on Mac
#else
// GL 3.0 + GLSL 130
const char* glsl_version = "#version 130";
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0);
//glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); // 3.2+ only
//glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); // 3.0+ only
#endifhttps://stackoverflow.com/questions/67345946
复制相似问题