win11: cmake+glfw+imgui

news2024/11/15 13:58:37
  1. 下载源码:imgui github地址

  2. 将需要的文件拖拽入项目外部库的imgui文件夹
    在这里插入图片描述
    backends文件夹里选择与环境适配的文件,我这里用了glfw和opengl3
    在这里插入图片描述
    目录结构:
    在这里插入图片描述

  3. CMakeLists.txt

    cmake_minimum_required(VERSION 3.24)
    project(proforlearn)
    set(CMAKE_CXX_STANDARD 17)
    
    
    file(GLOB SRC
            ${PROJECT_SOURCE_DIR}/external/imgui/*.h
            ${PROJECT_SOURCE_DIR}/external/imgui/*.cpp
    )
    add_executable(proforlearn ${SRC} main.cpp)
    
    find_package(OpenGL REQUIRED)
    include_directories(${PROJECT_SOURCE_DIR}/external/glfw/include)
    link_directories(${PROJECT_SOURCE_DIR}/external/glfw/lib-mingw-w64)
    target_link_libraries(proforlearn opengl32 glfw3.dll)
    
    include_directories(${PROJECT_SOURCE_DIR}/external/imgui)
    
  4. 测试代码:

    #include "imgui.h"
    #include "imgui_impl_glfw.h"
    #include "imgui_impl_opengl3.h"
    
    #include <GLFW/glfw3.h>
    
    int main(void)
    {
        GLFWwindow* window;
    
        /* Initialize the library */
        if (!glfwInit())
            return -1;
    
        /* Create a windowed mode window and its OpenGL context */
        window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
        if (!window)
        {
            glfwTerminate();
            return -1;
        }
    
        /* Make the window's context current */
        glfwMakeContextCurrent(window);
    
        IMGUI_CHECKVERSION();
        ImGui::CreateContext();
        ImGuiIO& io = ImGui::GetIO(); (void)io;
        ImGui_ImplGlfw_InitForOpenGL(window, true);
        ImGui_ImplOpenGL3_Init("#version 330");
    
        /* Loop until the user closes the window */
        while (!glfwWindowShouldClose(window))
        {
            /* Render here */
            glClear(GL_COLOR_BUFFER_BIT);
    
            ImGui_ImplOpenGL3_NewFrame();
            ImGui_ImplGlfw_NewFrame();
            ImGui::NewFrame();
    
            ImGui::Begin("My name is window, ImGUI window");
            ImGui::Text("Hello there new born!");
            ImGui::End();
            ImGui::Render();
            ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
    
    
            /* Swap front and back buffers */
            glfwSwapBuffers(window);
    
            /* Poll for and process events */
            glfwPollEvents();
        }
    
        ImGui_ImplOpenGL3_Shutdown();
        ImGui_ImplGlfw_Shutdown();
        ImGui::DestroyContext();
    
        glfwTerminate();
        return 0;
    }
    
  5. 运行结果:glfw黑框中成功出现imgui文本界面!
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/79832.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于java+springmvc+mybatis+jsp+mysql的实验室计算机故障报修系统

项目介绍 本系统采用java语言开发&#xff0c;后端采用ssm框架&#xff0c;前端采用jsp技术&#xff0c;数据库采用mysql进行数据存储。 前端页面&#xff1a; 功能&#xff1a;首页、设备信息、公告资讯、个人中心、后台管理、联系客服 管理员后台页面&#xff1a; 功能&…

电子学会2020年12月青少年软件编程(图形化)等级考试试卷(二级)答案解析

目录 一、单选题&#xff08;共25题&#xff0c;每题2分&#xff0c;共50分&#xff09; 二、判断题&#xff08;共10题&#xff0c;每题2分&#xff0c;共20分&#xff09; 三、编程题【该题由测评师线下评分】&#xff08;共2题&#xff0c;共30分&#xff09; 青少年软件…

业务流程监控:让多维度监控有了灵魂

需求 《可视化业务流程监控&#xff0c;是解决方案更是运维之道&#xff01;》一文让我们知道可以借助Grafana 两个插件&#xff1a;Diagram、FlowCharting&#xff0c;满足我们对于图形数据业务流程的可视化监控&#xff0c;但是在使用前需要我们做好以下两点工作&#xff1a…

修复自定义标题word题注错误:错误,文档中没有指定样式的文字以及编号无法随章节变化问题

一、单个修复指定章节号 假设采用自定义样式“毕业”&#xff0c;如果出现类似提示&#xff0c;可以具体操作如下&#xff1a; 光标定位与错误题注的位置&#xff0c;按shift F9 {STYLEREF 1 \s} - 2 将内容修改为 图 {STYLEREF "毕业" \s} - 2 右击&#xff0c;更…

被人叫做砖家模拟器的ChatGPT,它真的靠谱吗?

大家好啊&#xff0c;我是测评君&#xff0c;欢迎来到web测评。 前言 最近很热门的聊天机器人ChatGPT&#xff0c;据说五天时间用户就破了百万&#xff0c;这几天在体验过程中发现了一些问题&#xff0c;今天我就以下列几个方面来跟大家简单的交流下ChatGPT。 ChatGPT怎么注册国…

【博客555】prometheus的step,durations,rate interval,scrape interval对数据查询结果的影响

prometheus的step&#xff0c;durations&#xff0c;rate interval&#xff0c;scrape interval对数据查询结果的影响 1、场景&#xff1a;在查询prometheus数据时出现很多诡异的现象 1、为什么同样的查询语句在不同的时间点查询&#xff0c;对过去某一时刻的数据展示却不一样…

网络拓扑配置案例练习(VRRP,浮动路由,DCHP,三层交换机配置)

网络拓扑配置案例网络拓扑配置案例练习网络拓扑需求描述具体操作命令交换机创建vlan&#xff0c;配置access、trunk口&#xff0c;划分vlanvrrp配置路由配置验证vrrp和浮动路由DHCP配置总结网络拓扑配置案例练习 在这篇文章中将记录网络的常见配置&#xff1a;VRRP&#xff0c…

vue-cli和vue有什么区别

目录 1、什么是 Vue&#xff1f; 2、什么是vue-cli&#xff1f; 3、区别和关联 &#x1f449; 区别 &#x1f449; 关联 &#x1f340; 扩展知识 “vue-cli”和vue的区别&#xff1a;vue是“vue.js”的简称&#xff0c;是一个成熟的用于构建用户界面的JavaScript渐进式框…

「Docker学习系列教程」9-Docker容器数据卷介绍

通过前面8篇文章的学习&#xff0c;我们已经学会了docker的安装、docker常用的命令已经docker镜像修改后提交的远程镜像仓库及提交到公司的私服仓库中。接下来&#xff0c;我们再来学学Docker另外一个重要的东西-容器数据卷。 我们先来看看一个场景&#xff1a;我们有多个dock…

18. 权重衰退的代码的从零实现和简洁实现

通过一个简单的例子来演示权重衰减。 %matplotlib inline import torch from torch import nn from d2l import torch as d2l0.01就是权重&#xff0c;xi是随机的输入&#xff0c;噪音是均值为0&#xff0c;方差为0.01的一个正态分布 n_train,n_test,num_inputs,batch_size 2…

Alibaba 官方微服务扛把子「SpringCloudAlibaba 全彩学习手册.PDF」,开源学习ing,

最近我在知乎上看过的一个热门回答&#xff1a; 初级 Java 开发面临的最大瓶颈在于&#xff0c;脱离不出自身业务带来的局限。日常工作中大部分时间在增删改查、写写接口、改改 bug&#xff0c;久而久之就会发现&#xff0c;自己的技术水平跟刚工作时相比没什么进步。 所以我们…

Spring Batch 批处理入门案例

引言 书接上篇 何为Spring Batch&#xff1f;怎么玩&#xff1f; &#xff0c;前面普及了一下Spring Batch 相关介绍&#xff0c;本篇来一个helloword&#xff0c;简单试一下Spring Batch 怎么玩 批量处理流程 开始前&#xff0c;先了解一下Spring Batch程序运行大纲&#x…

[附源码]计算机毕业设计惠农微信小程序论文Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

这些不知道,别说你熟悉 Spring

写在前面 我们大多数 Java 程序员的日常工作基本都是在做业务开发&#xff0c;俗称 crudboy。 作为 crudboy 的你有没有这些烦恼呢&#xff1f; 随着业务的迭代&#xff0c;新功能的加入&#xff0c;代码变得越来越臃肿&#xff0c;可维护性越来越低&#xff0c;慢慢变成了屎…

【亲测有用】ERR_PROXY_CONNECTION_FAILED的解决方案(电脑明明有网络,但就是无法访问浏览器的网页!)

一、问题描述 就我而言&#xff0c;每次遇到这种问题&#xff0c;都是因为电脑意外关机导致的。昨天&#xff0c;我忘记给电脑充电&#xff0c;结果一觉醒来&#xff0c;发现电脑明明有网络&#xff0c;因为微信、QQ甚至向日葵远程连接别的电脑都没有问题&#xff0c;但就是所…

基于java+springboot+mybatis+vue+mysql的漫画动漫管理网站

项目介绍 本系统主要包括管理员和用户两个角色组成&#xff0c;主要包括以下功能&#xff1a; &#xff08;1&#xff09;前台&#xff1a;首页、漫画资源、排行榜、交流论坛、公告信息、个人中心、后台管理 。 &#xff08;2&#xff09;管理员&#xff1a;首页、个人中心、…

算法基础篇-06-排序-NB三人组(快速/堆/归并排序)

1. NB 三人组介绍 1.1 快速排序(Quick Sort) 时间复杂度&#xff1a;O(nlogn) 归位&#xff1a; 让元素去它该去的位置&#xff0c;保证左边的元素都比他小&#xff0c;右边都比他大&#xff1b; 1.1.1 原理图示&#xff1a; 假设初始列表&#xff1a; 我们从左边第一个…

三秒钟,我要拿到世界杯所有队伍阵容信息

文章目录&#x1f550;Im coming~&#x1f551;我写了个啥&#xff1f;&#x1f554;咋写的&#xff1f;&#x1f558;代码供上&#x1f55b; See you next time专栏Python零基础入门篇&#x1f525;Python网络蜘蛛&#x1f525;Python数据分析Django基础入门宝典&#x1f525;…

硬核,阿里自爆虐心万字面试手册,Github上获赞89.7K

开篇小叙 现在Java面试可以说是老生常谈的一个问题了&#xff0c;确实也是这么回事。面试题、面试宝典、面试手册......各种Java面试题一搜一大把&#xff0c;根本看不完&#xff0c;也看不过来&#xff0c;而且每份面试资料也都觉得Nice&#xff0c;然后就开启了收藏之路。 …

CSS - 02. CSS进阶

文章目录CSS进阶1 Emmet语法1.1 快速生成HTML结构语法1.2 快速生成CSS样式语法1.3 快速格式化代码2 CSS的复合选择器2.1 什么是复合选择器2.2 后代选择器2.3 子选择器2.4 并集选择器2.5 伪类选择器2.6 链接伪类选择器2.7 :focus 伪类选择器2.8 复合选择器总结3 CSS 的元素显示模…