C#开发的OpenRA的管理FBO(Framebuffer Object)

Posted caimouse

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#开发的OpenRA的管理FBO(Framebuffer Object)相关的知识,希望对你有一定的参考价值。

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对象,它是通过下面函数来创建:

以上是关于C#开发的OpenRA的管理FBO(Framebuffer Object)的主要内容,如果未能解决你的问题,请参考以下文章

C#开发的OpenRA加载文件的管理

C#开发的OpenRA加载文件的管理

C#开发的OpenRA的mod配置文件的容器Manifest类

C#开发的OpenRA的mod配置文件的容器Manifest类

C#开发的OpenRA的yaml文件读取和分析

C#开发的OpenRA的yaml文件读取和分析