Swift 制作无GLkit的多采样fbo

Swift 制作无GLkit的多采样fbo,swift,opengl,opengl-es,opengl-es-2.0,Swift,Opengl,Opengl Es,Opengl Es 2.0,因此,我试图制作一个跨平台的程序,以避免使用太多glkit特定的函数 不管怎样,现在我一直在画原始形状(点和三角形)到fbo的纹理。但是我现在需要对屏幕上显示的内容进行多次采样,这样形状的边缘看起来更好。所以我的目标是制作另一个FBO(FBO 2),从另一个FBO(FBO 1)反锯齿纹理,并在屏幕上显示这个美丽的反锯齿纹理 不幸的是,我所能找到的关于这一点的任何和所有资源都使用了苹果公司的特定方法。此外,我还没有让它发挥作用。这是我用来制作和激活帧缓冲区的代码 import Foundation

因此,我试图制作一个跨平台的程序,以避免使用太多glkit特定的函数

不管怎样,现在我一直在画原始形状(点和三角形)到fbo的纹理。但是我现在需要对屏幕上显示的内容进行多次采样,这样形状的边缘看起来更好。所以我的目标是制作另一个FBO(FBO 2),从另一个FBO(FBO 1)反锯齿纹理,并在屏幕上显示这个美丽的反锯齿纹理

不幸的是,我所能找到的关于这一点的任何和所有资源都使用了苹果公司的特定方法。此外,我还没有让它发挥作用。这是我用来制作和激活帧缓冲区的代码

import Foundation
import GLKit
import OpenGLES

class RenderTexture2 {
    var framebuffer:GLuint = 0
    var tex:GLuint = 0
    var old_fbo:GLint = 0



    init(widthi: GLsizei, heighti: GLsizei)
    {

    }

    func begin()
    {
        glGetIntegerv(GLenum(GL_FRAMEBUFFER_BINDING), &old_fbo)
        glBindFramebuffer(GLenum(GL_FRAMEBUFFER), framebuffer)
    }

    func checkStatus()
    {
        let status = glCheckFramebufferStatus(GLenum(GL_FRAMEBUFFER))
        if (status != GLenum(GL_FRAMEBUFFER_COMPLETE))
        {
            print("DIDNT GO WELL WITH")
            print(status)
        }
    }

    func end()
    {
        glBindFramebuffer(GLenum(GL_FRAMEBUFFER), GLenum(old_fbo))
    }

    func loadTexture(name: String, type: String) -> GLuint
    {

        var it:GLKTextureInfo = GLKTextureInfo()


        let pic = UIImage(named: name + "." + type)!.CGImage
        let path = NSBundle.mainBundle().pathForResource(name, ofType: type)

        do
        {
            //try it = GLKTextureLoader.textureWithContentsOfFile(NSBundle.mainBundle().pathForResource(name, ofType: type)!, options: nil)
            try it = GLKTextureLoader.textureWithContentsOfFile(path!, options: nil)
        }
        catch
        {
            do
            {
                //print("ERR Loading: " + path!)
                try it = GLKTextureLoader.textureWithCGImage(pic!, options: nil)
            }
            catch
            {
                print("Error loading UIImage: " +  pic.debugDescription)
                it = GLKTextureInfo()

            }

        }

        return it.name

    }

    func load(width: GLsizei, height: GLsizei)
    {
        glBindTexture(GLenum(GL_TEXTURE_2D), 0)


        glGetIntegerv(GLenum(GL_FRAMEBUFFER_BINDING), &old_fbo)

        glGenFramebuffers(1, &framebuffer)
        tex = loadTexture("AF", type: "png")

        glBindFramebuffer(GLenum(GL_FRAMEBUFFER), framebuffer)


        //glTexParameteri(GLenum(GL_TEXTURE_2D), GLenum(GL_TEXTURE_MIN_FILTER), GL_NEAREST)
        //glTexParameteri(GLenum(GL_TEXTURE_2D), GLenum(GL_TEXTURE_MAG_FILTER), GL_NEAREST)


        glBindTexture(GLenum(GL_TEXTURE_2D), tex)
        glTexImage2D(GLenum(GL_TEXTURE_2D), 0, GL_RGBA, GLsizei(width), GLsizei(height), 0, GLenum(GL_RGBA), GLenum(GL_UNSIGNED_BYTE), nil)
        glFramebufferTexture2D(GLenum(GL_FRAMEBUFFER), GLenum(GL_COLOR_ATTACHMENT0), GLenum(GL_TEXTURE_2D), tex, 0)

        glClearColor(0, 0.0, 0, 0.0)
        glClear(GLenum(GL_COLOR_BUFFER_BIT))

        let status = glCheckFramebufferStatus(GLenum(GL_FRAMEBUFFER))
        if (status != GLenum(GL_FRAMEBUFFER_COMPLETE))
        {
            print("DIDNT GO WELL WITH", width, " " , height)
            print(status)
        }

        glBindFramebuffer(GLenum(GL_FRAMEBUFFER), GLenum(old_fbo))

    }

}
这段代码现在可以作为基本的干切fbo使用

我需要做什么改变才能让这一切顺利进行?如果我更改了一些纹理过滤/贴图参数

多谢