MiniGL之所以取了这么个名字,最初的想法就是希望把OpenGL作一个封装,方便自己使用。不过说归这么说吧,其实我心底也是有点野心的,总归希望这个MiniGL在对OpenGL的封装足够成熟后,可以向着渲染引擎的方向发展,慢慢加入更多的东西。实际上哪怕是现在刚刚起步的状态,MiniGL中就已经开始有很多和OpenGL不搭边的东西了。而本篇日志就专门负责记录MiniGL中关于OpenGL封装的那部分内容,本篇日志会持续更新,每次有新的相关内容就会补充进来。
下面是正文
一、
其实最初想着要封装OpenGL的时候,我的想法非常单纯:“想让他好用一点。”,并没有认真想过“封装”OpenGL是什么意思。而现在做了一些东西后回过头来想,当我说我要封装OpenGL的时候,我实际上要做什么事情呢?要做两件事情:
- OpenGL是一个面向过程的api,我们要将它包装成一个面向对象的api
- OpenGL没有管理资源的能力,这里的资源指任何需要维护的数据,比如mesh,纹理贴图,光源之类的,而我们要增加资源管理的能力。
MiniGL底层的设计就是围绕着这两点展开(因为现在只有OpenGL做没有别的图形api,所以MiniGL的底层就是对OpenGL的封装)