皮皮网

【shmat源码】【linux系统qt查看源码】【易语言 excel 源码下载】glew源码编译

时间:2024-12-29 10:36:11 来源:源码时代ui设计学什么 作者:拓空者 源码

1.OpenGL基础-C++|(一) 安装与使用
2.如何Python写一个安卓APP
3.glewglew for Ada
4.OpenGL ES glad 下载和使用
5.第一个OpenGL程序

glew源码编译

OpenGL基础-C++|(一) 安装与使用

       OpenGL基础-C++安装与使用指南

       要开始在C++中使用OpenGL,源码首先要对它有一个基本了解。编译参考书籍:《计算机图形学编程(使用OpenGL和C++)(第2版)》。源码

       1. 安装和配置

       在Visual Studio 环境中进行安装与配置:

       1.2 GLFW的编译准备

       从官方下载GLFW源代码,链接在此处。源码

       使用CMake编译源码,编译shmat源码生成 GLFW.sln 文件。源码

       编译为位应用程序,编译完成后你会得到lib静态库文件和include文件夹。源码

       1.3 GLEW的编译准备

       从指定地址获取GLEW二进制文件,包含库文件和头文件。源码

       1.4 GLM的编译准备

       从提供的链接下载GLM压缩包,解压后即可使用。源码

       1.5 SOIL2的编译准备

       在make/windows文件夹中,打开SOIL2.sln,源码选择x环境生成静态库。

       1.6 配置文件结构

       创建包含lib和include子文件夹的文件夹,存放这些库和头文件。

       1.7 在VS中创建项目

       在VS中,linux系统qt查看源码通过新建项目模板创建OpenGL C++项目,选择OpenGL模板即可。在项目创建时,请确保glew.dll文件放在项目目录下。

       1.8 测试配置:创建窗口

       一个简单的测试代码,用于确认配置是否正确:

       // 你的代码片段

       运行这段代码,若显示成功,说明安装和配置都已完成。

如何Python写一个安卓APP

       å‰è¨€ï¼šç”¨Python写安卓APP肯定不是最好的选择,但是肯定是一个很偷懒的选择,而且实在不想学习Java,再者,就编程而言已经会的就Python与Golang(注:Python,Golang水平都一般),那么久Google了一下Python写安卓的APP的可能性,还真行。

       æ—¢ç„¶è¦å†™ä¸ªAPP,那么总得要有个想法吧。 

       å…¶å®žç¬”者想做两个APP来着,一个是自己写着好玩的,一个是关于运维的。 

       å…³äºŽè¿ç»´çš„APP,设计应该如下 

       å¯èƒ½é•¿è¿™æ ·ï¼š

       ç„¶åŽè®¾è®¡åº”该是这样:

       å¦‚果觉得可行的话,评论留言一下你觉得应该写进这个APP的运维常用命令吧^_^,笔者暂时想到的是top,free -m,df –h,uptime,iftop,iotop,如果有什么好的想法就狠狠的砸过来吧,笔者到时应该也会把这个写成一个项目放到github上,大家一起用嘛,开源才是王道,哈哈。

       å¥½å§ï¼Œè¿›å…¥æ­£é¢˜ã€‚ 

       æˆ‘们使用kivy开发安卓APP,Kivy是一套专门用于跨平台快速应用开发的开源框架,使用Python和Cython编写,对于多点触控有着非常良好的支持,不仅能让开发者快速完成简洁的交互原型设计,还支持代码重用和部署,绝对是一款颇让人惊艳的NUI框架。 

       å› ä¸ºè·¨å¹³å°çš„,所以只写一遍代码,就可以同时生成安卓及IOS的APP,很酷吧。 

       æœ¬æ–‡ä¼šå¸¦å¤§å®¶å†™ä¸€ä¸ªHello world并瞧一瞧Python版的的代码

       kivy安装 

       çŽ¯å¢ƒè¯´æ˜Žï¼šç¬”者在用的是Python2.7. 

       è¿™é‡Œä»…介绍windows平台安装 

       æ›´æ–°pip,setuptools

       python -m pip install --upgrade pip wheel setuptools

       ç„¶åŽæ˜¯å®‰è£…所需要的依赖

       python -m pip install docutils pygmentspypiwin kivy.deps.sdl2 kivy.deps.glew \

       kivy.deps.gstreamer --extra-index-url ple/

       å€¼å¾—注意的是,上面的安卓需要访问Google,所以请自备梯子,而且kivy.deps.gstreamer这个包比较大(MB),可以单独本地安装,h

       ç„¶åŽå°±æ˜¯å®‰è£…kivy了

       python -m pip install kivy

       è‡³æ­¤ï¼Œå®‰è£…就已经完毕了,值得注意的是位系统没有开启虚拟化支持,在导入kivy的时候会报错,如果是位系统就设置一下机器的BIOS,开启虚拟化支持吧。 

       æ³¨ï¼šè¿™é‡Œåªæ˜¯kivy的运行环境,这样我就能直接在windows机器上直接调试了,怎么将代码编译成APK文件我们会在后面讲到。

       å¦‚æžœkivy在python中应该就能导入了。

       æŒ‰ç…§ä¸–界惯例,我们”hello”一下吧。 

       æ–°å»ºä¸€ä¸ª.py文件

       from kivy.app import App

       from kivy.uix.button importButton

       class TestApp(App):

       def build(self):

       return Button(text='Hello,kivy')

       TestApp().run()

       è¿è¡Œï¼š

       ç„¶åŽä¼šå¼¹å‡ºä¸€ä¸ªæ¡†ï¼Œå¤§æ¦‚如下,点击”hello,kivy”会变颜色

       ç‚¹å‡»çª—口并按“F1”会这个窗口的一些属性

       ç„¶åŽæˆ‘们回过头看一看代码。

       ##导入App,然后让TestApp这个类继承

       from kivy.app import App

       ##导入一个Button,运维有这个button,当你点击的时候才会有所反应

       from kivy.uix.button importButton

       ###定义类,名字必须是xxxApp

       class TestApp(App):

       ###build一个Button

       def build(self):

       ###返回一个Button,文字内容是“Hello,kivy”

       return Button(text='Hello,kivy')

       ##运行,因为继承了App,所以才有的run这个方法

       TestApp().run()

       ä¸Šé¢å°±æ˜¯æˆ‘们的Hello了 

       åœ¨windows上运行当然没有什么太大的意义,怎么在安卓手机上运行才是我们想要的, 

       è¿™æ—¶æˆ‘们需要一个编译环境。 

       å®˜æ–¹è¯´æ˜Žçš„环境,如下:

       You’ll need:

       A     linux computer or a virtual machine

       Java

       Python     2.7 (not 2.6.)

       Jinja2     (python module)

       Apache     ant

       Android     SDK

       è™½ç„¶å®˜æ–¹æä¾›äº†ä¸€ä¸ªä¼¼ä¹Žè¿˜ä¸é”™çš„虚拟机镜像,但是还是有很多内容需要翻出去,所以笔者在

       å½“然你也可以下载官方镜像,因为第一次编译需要去国外下一大堆东西,所以请自备梯子。

       Virtual Machine 

       A Virtual Machine with Android SDK and NDK and all otherpre-requisites pre installed to ease apk generation: 

       Kivy Buildozer VM 

       Or select the Torrent

       åœ¨ç¬”者提供的镜像里,桌面上有一个dev_and,只要将上面写的代码,放入这个文件夹即可(当然也可以在其他目录,后面会讲到)。

       cd Desktop/dev_and/

       åˆå§‹åŒ–会在当前目录生成一个buildozer.spec文件 用于配置生成的apk相关信息

       buildozer init

       ä¿®æ”¹buildozer.spec文件

       vi buildozer.spec

       è‡³å°‘修改下面三项

       # (str) Title of your application

       title = helloworld

       # (str) Package name

       package.name = helloapp

       # (str) Package domain (needed for android/ios packaging)

       package.domain = youer.com

       ç„¶åŽæ³¨é‡Š

       # (str) Application versioning (method 1)

       #version.regex = __version__ = ['"](.*)['"]

       #version.filename = %(source.dir)s/main.py

       ä¸‹é¢è¿™è¡Œæ”¹ä¸ºéžæ³¨é‡Š

       version = 1.2.

       æœ€åŽæˆ‘们生成我们需要的apk文件

       buildozer -v android debug

       buildozer命令会在当前文件夹创建一个bin,该文件夹里面有我们想要的apk文件

       helloapp-1.2.0-debug.apk

       å®‰è£…以后应该是这样

       è¯è¯´åœ¨ç¼–译的时候可能出现空间不足的情况,根据虚拟机的不同(vmware或virtualbox)自行扩容吧。

       æœ€åŽæˆ‘们来瞧瞧简易版Python开发的这个游戏的源代码。 

       å…ˆçœ‹æ•ˆæžœå›¾

       è¯•çŽ©äº†ä¸€ä¸‹ï¼Œè¿˜æ˜¯è›®æµç•…的,有兴趣的可以下载玩一下 

       è¿™ä¸ªæ¸¸æˆä»£ç è™½ç„¶ä¸é•¿ï¼Œä½†æ˜¯è¿˜æ˜¯è›®å ç¯‡å¹…的,所以简要的说明一下流程:

       ä¸»è¦ç”±ä¸‰éƒ¨åˆ†ç»„成,一是素材,图片音频之类的文件,二是Python代码,三是kv文件,这个kv文件有点像html中的css。 

       Python代码的文件名一般命名为main.py 

       ç„¶åŽä¸€å®šæœ‰ä¸€ä¸ªå«åšXXXApp的类,并继承App。 

       æ¯”如该类叫做GameApp,那么该目录下的kv文件则必须为Game,如上图所示,如果不是,那么kv文件中的一些设定就不会生效。 

       æ¯”如设定一个标签

       Label:

       id: time

       text: 'xxxx'

       font_size:

       id为time,text文本内容为’xxxx’,然后字体为 

       å¥½å§ï¼Œç‚¹åˆ°ä¸ºæ­¢å§ï¼Œä¸è¿‡ä¼¼ä¹Žä»€ä¹ˆéƒ½æ²¡ç‚¹åˆ°~~~

       ä»Žæ— åˆ°æœ‰åšä¸€ä¸ªApp,我想我会另起一篇文章吧。

glewglew for Ada

       Glew是一个为C/C++开发者设计的工具,然而,glew for Ada则是一个特别定制的解决方案,它为Ada编程语言用户提供了glew的Ada绑定库。这个版本是1.5.4,特别适合于Ada程序员使用。如果你需要使用更高级的功能,你可以在该库中找到一个自动翻译工具,它能够帮助你将glew的源代码转换为Ada语言。然而,易语言 excel 源码下载这个工具并不完美,可能会存在一些重复定义的问题,以及需要对一些函数的参数名称进行调整或添加。实际上,翻译工具的源代码已随下载文件一同提供,对于对这个工具感兴趣的开发者,这是一个可以进行改进和扩展的平台。你可以根据自己的需求对其进行优化,以更好地适应Ada编程环境。

OpenGL ES glad 下载和使用

       GLEW扩展库作用:不同的显卡公司,也会发布一些只有自家显卡才支持的扩展函数,你要想用这些函数,不得不去寻找最新的glext.h,有了GLEW扩展库,你就再也不用为找不到函数的接口而烦恼,因为GLEW能自动识别你的平台所支持的全部OpenGL高级扩展函数。也就是说,只要包含一个glew.h头文件,你就能使用gl、bomb云 小程序 源码glu、glext、wgl、glx的全部函数。

       glad是继gl3w、glew之后,当前最新的用来访问OpenGL规范接口的第三方库。简单说glad是glew的升级版,就是说glew比较老,glad比较新。在Windows中使用:OpenGL只是一个标准/规范,具体的实现是由驱动开发商针对特定显卡实现的。由于OpenGL驱动版本众多,它大多数函数的位置都无法在编译时确定下来,需要在运行时查询。所以任务就落在了开发者身上,开发者需要在运行时获取函数地址并将其保存在一个函数指针中供以后使用,这就是pdled8.exe源码glfw和glew的共同之处。

       在OpenGL项目开发中,glfw一般搭配glad一起使用。

       glad下载地址:glad.dav1d.de/。打开GLAD的在线服务,将语言(Language)设置为C/C++,在API选项中,选择3.3以上的OpenGL(gl)版本(我们的教程中将使用3.3版本,但更新的版本也能用)。之后将模式(Profile)设置为Core,并且保证选中了生成加载器(Generate a loader)选项。现在可以先(暂时)忽略扩展(Extensions)中的内容。都选择完之后,点击生成(Generate)按钮来生成库文件。

       GLAD现在应该提供给你了一个zip压缩文件,包含两个头文件目录,和一个glad.c文件。将两个头文件目录(glad和KHR)复制到你的Include文件夹中(或者增加一个额外的项目指向这些目录),并添加glad.c文件到你的工程中。

       在OpenGL项目开发中,glfw+glad效果演示和源码下载:注意当前代码只编译了Windowsx平台,如果需要x,自己配置工程属性编译即可,源码下载:OpenGL_glfw_glad。

       在OpenGL项目开发中,glfw一般搭配glad一起使用。

       本文由博客-猿说编程 猿说编程发布!

第一个OpenGL程序

       初次接触游戏开发,近十个月的积累却首次编写OpenGL程序,即刻便陷入了一片混乱。然而,这个过程对初学者而言,却是不可或缺的宝贵经验。

       开发环境:VS Community Edition,一个兼容Windows开发的集成环境。

       依赖库:glew,即The OpenGL Extension Wrangler Library,作为API兼容层,为OpenGL提供了更广泛的访问和操作。glfw,GLFW库,是用于提供OpenGL环境的便利工具。

       配置准备:通过下载glew的binary版本来获得glew.dll、glew.h、glew.lib文件,使用glfw只需下载源代码,利用CMake进行编译,生成glfw3.lib、glfw3.h文件。

       设置环境:需配置头文件目录、库目录和链接库名。运行程序后会在x目录下生成文件,确保将glew.dll放入其中,否则在使用glew头文件时,程序会因找不到glew.dll而报错。

       开始编程:若未遵循特定顺序,会遭遇错误信息。为此,我们着手建立并运行两个简单的着色器,分别为顶点着色器和片元着色器,分别输出位置和固定颜色。

       流程步骤:1、创建着色器对象、关联代码、编译着色器源码。接着创建着色器程序、关联着色器对象、链接程序和使用程序。值得注意的是,确保程序链接状态,便于追踪并调试可能的错误。

       假设问题出现:如不正确地在代码中省略分号,将遇到特定的错误信息。正确执行以下步骤:定义顶点,创建缓冲对象,初始化缓冲对象,生成VAO,绑定VAO和缓存,并设置顶点数据值。最后,启用顶点数组。

       初始化窗口环境:遵循模板代码编写,特别强调在代码中加入glfwMakeContextCurrent(window)行,确保设置当前环境为窗口所关联的OpenGL环境。避免忽略此步骤导致gl调用无法执行。

       程序执行效果:成功运行,实现了第一个OpenGL程序,尽管过程繁复且可能遇到各种困难。对于有图形学基础和C++背景的开发者来说,这无疑为今后更深入的OpenGL学习打下了坚实基础。

       展望未来:此过程既是一个挑战,也是一个新的起点。对于希望探索并深入OpenGL开发领域的开发者来说,这是不断积累经验、优化环境和提高编程技能的良好开端。尽管时间投入和挑战并存,但持之以恒的学习和探索,定将逐步开启通往更高级图形编程世界的大门。

关键词:神奇九转加WAVE源码

copyright © 2016 powered by 皮皮网   sitemap