【绘画app源码】【unity逆向源码】【asmr源码解析】Linux源码OpenGL

时间:2024-12-22 19:57:17 来源:焦点图js源码 分类:百科

1.Ubuntu Desktop 实践 13、在 Linux 中写 OpenGL 程序——使用 Visual Studio Code(上)
2.苹果电脑装Linux有显卡驱动了,首次兼容OpenGL ES标准,网友:逆向工程巨佬
3.qt5在linux下会默认带有-lgl链接参数,即使没有使用openg
4.如何在Linux下使用OpenGL+ C++开发

Linux源码OpenGL

Ubuntu Desktop 实践 13、在 Linux 中写 OpenGL 程序——使用 Visual Studio Code(上)

       在 Linux 下编写 OpenGL 程序,成为了 C/C++ 语言在计算机图形学应用中的绘画app源码重要途径。这一领域虽然有 Vulkan 的出现,但 OpenGL 在计算机图形学的入门学习中仍然具有优势。本文将介绍如何在 Ubuntu Desktop 环境中搭建 OpenGL 开发环境,并使用 Visual Studio Code 进行程序开发。

       要学习 OpenGL,首选语言是 C/C++。在 Ubuntu 中,通过安装 build-essential 包即可迅速搭建起 C/C++ 开发环境。推荐使用 GLFW 库来简化 OpenGL 程序的框架构建,同时提供跨平台功能。unity逆向源码GLEW 扩展库则自动识别平台支持的 OpenGL 高级扩展函数,大大方便了开发过程。GLM 数学库能提供便捷的向量和矩阵运算支持,而 Assimp 库则用于加载 3D 模型,stb_image.h 读取库则用于处理图像文件。这些库的安装,使用 sudo apt install 命令即可一键完成,相比 Windows 环境更为便捷。

       在开发工具上,本文推荐使用 Visual Studio Code。通过下载并安装 Visual Studio Code,我们能更加高效地编写和管理 OpenGL 程序。在项目目录下,我们可以按模块化方式进行组织,如创建 -FirstStep 目录用于初始化程序,asmr源码解析编写 FirstStep.cpp 文件作为第一个 OpenGL 程序。通过 C/C++ Extension Pack 扩展,Visual Studio Code 提供了便捷的编译和运行功能,使整个开发流程更为流畅。

       对于程序框架的进一步优化,可以通过封装成 App 类来实现。这样不仅使代码结构更清晰,还能方便地添加输入输出功能,如鼠标键盘操作。通过继承 App 类,简化了新程序的构建。通过 init() 和 display() 方法,能够控制初始化和渲染流程,使程序运行更高效。

       本文介绍了在 Ubuntu Desktop 环境下搭建 OpenGL 开发环境的测试springboot源码步骤,以及如何利用 Visual Studio Code 进行程序开发和优化。通过本文的介绍,读者可以快速上手,搭建自己的 OpenGL 程序。

苹果电脑装Linux有显卡驱动了,首次兼容OpenGL ES标准,网友:逆向工程巨佬

       Asahi Linux项目取得重大突破,首次为苹果M1/M2芯片开发出符合OpenGL ES 3.1标准的GPU驱动,这一成果出自两位程序员之手,打破了苹果自身不兼容开放GPU标准的局限。这个开源项目由Hector Martin发起,目标是将Linux移植到Apple Silicon设备上,其进展早在去年3月就已引起关注。

       Asahi Linux在年1月启动项目后,成功实现了在M1芯片上运行Linux,欢聚水鱼源码并且操作简便。现在,他们发布了首个支持M1系列芯片,包括M1 Pro/Max/Ultra、M2和M2 Pro/Max的OpenGL ES驱动,但前提是在Linux系统环境下。用户可以通过升级系统命令获取这一驱动,目前正接受Khronos Group的审查。

       这一成果对游戏行业和开发者来说是一个重要信号,引发网友热议。有人猜测苹果可能会考虑改善对OpenGL和Vulkan等标准的支持,甚至可能被苹果挖角。但也有人认为,鉴于Metal在游戏开发者中的受欢迎程度,苹果可能会坚持其自家标准。

       总之,Asahi Linux的成就引发了关于苹果未来技术路线的讨论,是否会选择兼容更多标准,还是继续推动自家标准,这将决定行业的技术走向。不论如何,Asahi Linux的逆向工程能力无疑得到了业界的认可。

qt5在linux下会默认带有-lgl链接参数,即使没有使用openg

       参考上文,针对Qt5在Linux下默认带有-lgl链接参数的问题,我们可以通过以下步骤来解决。

       首先,你的Qt工程基于MakeFile,经历QMake后执行Make。

       通过修改.pro文件,实际上仅是通过QMake工具调整了MakeFile生成过程。因此,直接查看生成的MakeFile文件,关注参数。

       了解后得知,Ubuntu系统中缺少lgl或你不想使用lgl,但Qt仍然为你链接了lgl。

       直接删除MakeFile中的-lGL参数,重新执行make clean,再进行make。

       使用ldd XXXX命令(其中XXXX为你make的输出文件)查看已链接的库。你会发现仍然使用了libGL。

       原因在于,虽然没有明确指示Qt使用OpenGL,但Qt在绘制窗口时默认使用OpenGL。只要有QT+= gui,并绘制窗口,就会用到-lGL。

       若希望Qt不使用OpenGL,可进入Qt源码目录,使用./configure -no-opengl编译一个不支持OpenGL的Qt版本。这将使Qt绘制窗口时无需OpenGL支持。

       尝试上述步骤后,如仍有问题,请告知。我自己也有类似需求,现尝试解答。

       首先运行OpenGL ES2.0程序,查看Makefile的LIBS。

       LIBS = $(SUBLIBS) -L/home/hydro/Qt/Qt5..1/5..1/gcc_/lib -lQt5Widgets -lQt5Gui -lQt5Core -lGL -lpthread

       使用ldd命令,发现已链接libGL模块。

       删除-lGL参数,执行make clean,再make,重新查看ldd。

       尽管删除-lGL,但libGL仍存在于链接模块中。

       尝试新建一个QWindow工程,再次使用ldd检查,验证任何包含窗口的程序都会加载libGL。

       按照上述步骤调整Qt配置:进入Qt源码目录,使用./configure -opengl es2,再make,最后make install。

       安装完成后,将配置应用至工程,重新运行。查看Makefile。

       LIBS = $(SUBLIBS) -L/usr/local/Qt-5..1/lib -lQt5Widgets -lQt5Gui -lQt5Core -lGLESv2 -lpthread

       成功!

       再次使用ldd检查,结果令人满意。

如何在Linux下使用OpenGL+ C++开发

       å‰ææ˜¯ï¼š

       1.配置好了Ubuntu下的c++环境,gcc以及g++可用。

       2.使用eclipse for c+做OpenGL开发

       ã€€ã€€æ­¥éª¤ä¸€ï¼š

       åœ¨ubuntu终端下运行以下命令,安装opengl所需要的库文件

       $ sudo apt-get install build-essential

       $ sudo apt-get install freeglut3-dev

       ã€€ã€€æ­¥éª¤äºŒï¼š

       ã€€ã€€è¿è¡Œä¸€ä¸‹opengl实例,测试配置的环境是否安装成功

       åœ¨eclipse下新建一个工程文件,假设我们命名为Test,在工程Test里面新建一个C++源代码文件,这里我们把它命名为main.cpp,在main.cpp文件中打入一下代码

#include <GL/glut.h>

       ã€€ã€€void init();

       void display();

       ã€€ã€€int main(int argc, char* argv[])

       {

             glutInit(&argc, argv);

             glutInitDisplayMode(GLUT_RGB |GLUT_SINGLE);

             glutInitWindowPosition(0, 0);

             glutInitWindowSize(, );

       ã€€ã€€glutCreateWindow("OpenGL 3D View");

       ã€€ã€€init();

             glutDisplayFunc(display);

       ã€€ã€€glutMainLoop();

             return 0;

       }

       ã€€ã€€void init()

       {

             glClearColor(0.0, 0.0, 0.0, 0.0);

             glMatrixMode(GL_PROJECTION);

             glOrtho(-5, 5, -5, 5, 5, );

             glMatrixMode(GL_MODELVIEW);

             gluLookAt(0, 0, , 0, 0, 0, 0, 1, 0);

       }

       ã€€ã€€void display()

       {

             glClear(GL_COLOR_BUFFER_BIT);

       ã€€ã€€glColor3f(1.0, 0, 0);

             glutWireTeapot(3);

       ã€€ã€€glFlush();

       }

       å³å‡»å·¥ç¨‹æ–‡ä»¶å

       Test->点击属性(Properties)->C/C++Bulid->Settings->GCC C++Linker->Libraries,

       åœ¨è¿™ä¸ªçª—口中添加几个个库,

       åˆ†åˆ«ä¸ºGLU,glut,GL,

       ç‚¹å‡»OK。

       å¦‚果还想使用opencv,

       åœ¨è¿™é‡Œè¿˜åŠ å…¥cv,cxcore,highgui等库文件,

       æ ¹æ®è‡ªå·±çš„需要来定

       åŒæ—¶åœ¨GCC C++ Compiler->Includes下的incudepath中添加路径/usr/include/GL

       å¦‚果还想使用opencv中的库,那么加入opencv的路径,一般是/usr/include/opencv

       ã€€ã€€è¿è¡Œä»¥ä¸Šç¨‹åºï¼Œä¼šæ˜¾ç¤ºä¸€ä¸ªèŒ¶å£¶å½¢çŠ¶çš„opengl运行结果