繁体   English   中英

GLKit迅速不显示任何内容?

[英]GLKit in swift don't show anything?

我正在关注本教程 教程 一切正常,但屏幕上没有任何显示。

渲染:

 override func glkView(view: GLKView!, drawInRect rect: CGRect) {

    glClearColor(0.1, 0.5, 0.0, 1.0)
    glClear(GLbitfield(GL_COLOR_BUFFER_BIT))

    //
    effect.texture2d0.name = textrue.name
    effect.texture2d0.enabled = GLboolean(GL_TRUE)


    //
    self.effect.transform.modelviewMatrix = modelMatrix()
    //
    effect.prepareToDraw()
    //
    glEnableVertexAttribArray(GLenum( GLKVertexAttrib.Position.rawValue))
    glEnableVertexAttribArray(GLenum( GLKVertexAttrib.TexCoord0.rawValue))

    //
    var _quad = TexturedQuad()

    withUnsafePointer(&_quad.bl.geometryVertex) { (pointer) -> Void in
        glVertexAttribPointer(GLuint(GLKVertexAttrib.Position.rawValue), 2, GLenum(GL_FLOAT), GLboolean(GL_FALSE),
            GLsizei(sizeof(TexturedVertex)), pointer)
        //                        println(sizeof(TexturedVertex))
    }

    withUnsafePointer(&_quad.bl.textureVertex) { (pointer) -> Void in
        glVertexAttribPointer(GLuint(GLKVertexAttrib.TexCoord0.rawValue), 2, GLenum(GL_FLOAT), GLboolean(GL_FALSE),
            GLsizei(sizeof(TexturedVertex)), pointer)
    }
    //

    glDrawArrays(GLenum( GL_TRIANGLE_STRIP), 0, 4)

}

TexturedQuad

struct v2Point {
    var x : GLfloat
    var y : GLfloat
    init(_ x: GLfloat ,_ y:GLfloat){
        self.x = x
        self.y = y
    }
}
struct TexturedVertex {
    var geometryVertex : v2Point = v2Point(0,0)
    var textureVertex : v2Point = v2Point(0,0)

}
struct TexturedQuad {
    var bl : TexturedVertex = TexturedVertex()
    var br : TexturedVertex = TexturedVertex()
    var tl : TexturedVertex = TexturedVertex()
    var tr : TexturedVertex = TexturedVertex()
    init(){}
}

初始纹理:

 func initWithSpriteName(str: String){

        var options  = [NSNumber(bool: true) : GLKTextureLoaderOriginBottomLeft]

        var cgiImg = UIImage(named: "background.png")?.CGImage
        assert(cgiImg != nil, "Image not found")
        textrue = GLKTextureLoader.textureWithCGImage(cgiImg, options: options, error: nil)
        //
        quad =  TexturedQuad()
        quad.bl = TexturedVertex(geometryVertex: v2Point(0,0) , textureVertex: v2Point( 0,0))
        quad.br = TexturedVertex(geometryVertex: v2Point(0,1), textureVertex: v2Point(0, textrue.height.toF()))
        quad.tl = TexturedVertex(geometryVertex: v2Point(1,0), textureVertex: v2Point(textrue.width.toF(), 0))
        quad.tr = TexturedVertex(geometryVertex: v2Point(1,1), textureVertex: v2Point(textrue.width.toF() , textrue.height.toF()))
    }

请帮助我如何快速显示glkit中的图像。 谢谢大家的帮助。

您可能缺少GL_DEPTH_BUFFER_BIT的标志

glClear(GLbitfield(GL_COLOR_BUFFER_BIT) | GLbitfield(GL_DEPTH_BUFFER_BIT))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM