再次实践用c语言来编写webgl

当年asm.js出来的时候,emscripten这个工具链还不是很好用,不,是很难用。

尝试以后,被一个helloworld 好几兆吓退了。

webassembly 如今已经发育的挺成熟了。今天又尝试了一下这套工具链,现在好用多了

而且编译出来的wasm文件尺寸很小

将来可能懒得看,摘重点记录一下

首先装个git 和 python(我装的3.9.2可以)

我只说在windows下面怎么搞

cd emsdk

emsdk install latest

emsdk activate latest

emsdk_env.bat

这么一套,install 是要网络的,他会把所有的东西都安装一套 ,包括gcc

最后的emsdk_env是设置环境变量,这玩意儿每次设烦死人,我建议你设置完把他手动敲进系统里(他会把他设置的环境变量打印出来的)

path里需要加三条

环境变量设置好以后,随便开一个终端 输入 emcc -v可以看到正常了

然后这个例子简单吧,真正的helloworld

emcc 就是用来替代 gcc的一个命令行编译工具,它用来把c语言(cpp也行,半残),编译成wasm

当我们 emcc tt.c –o i.html时,就会产生三个文件 i.wasm i.js i.html

js是胶水js

这里生成的文件很干净,我们只需要用 测试用的live server 就能跑了

跑起来是这样,不要慌,这是 emsdk 帮你给的调试环境,可以用命令行去掉

现在的Oz就很给力了, Oz 是尺寸优化,后面两个是关掉调试多出来的东西,只跑一个干净的html

emsdk 封装的很好

你可以看看这个例子

编译比较复杂

我专门写了个bat来处理

他倒是提供了一个工具 emmake,依赖make,在windows下很难用,我宁愿写批处理

这个webgl的基本例子,不加各种优化参数wasm 24k,胶水117k

加上各种参数 则 wasm 17k 胶水 5k

这个尺寸已经可以实用了

Original: https://www.cnblogs.com/crazylights/p/16538609.html
Author: 疯光无线
Title: 再次实践用c语言来编写webgl

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/536587/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球