C#开发的OpenRA的管理FBO(Framebuffer Object)
前面介绍了纹理的加载,这样纹理就准备好了。
接着下来,就是怎么样把纹理显示,但是显示之前需要创建FBO对象。
因为现代的OpenGL流程基本上都是基于对象方式来进行设置,
不同旧的OpenGL基本缓冲区方式配置。
在OpenRA里,显示界面采用帧的方式:
Game.Renderer.BeginUI();
DisplayInner(Game.Renderer, sheet, density);
Game.Renderer.EndFrame(new NullInputHandler());
这段代码是文件SheetLoadScreen.cs的函数Display()里。
它首先调用BeginUI()来准备FBO对象,然后调用DisplayInner()函数来进行构造FBO对象的顶点和纹理坐标,
最后调用EndFrame()函数来把FBO对象显示到屏幕上。
BeginUI()函数管理着FBO的创建责任,它显示界面时的代码如下:
BeginFrame();
screenBuffer.Bind();
这里调用BeginFrame()准备FBO对象,它是通过类FrameBuffer来实现的。
screenBuffer就是一个类FrameBuffer对象,它是通过下