0
現在、私のC++ソースコードをiOS上で実行しようとしています。 OpenGLES 2.0でAndroid上で動作し、すべてをコンパイルすることができましたが、シェーダのコンパイルに問題があります。なぜiOSではglCreateShaderが0を返しますか?
import Foundation
import GLKit
import OpenGLES
class SampleViewController: GLKViewController {
@IBOutlet var glview: GLKView!
override func viewDidLoad() {
super.viewDidLoad()
glview.context = EAGLContext(API: .OpenGLES2)
glview.drawableColorFormat = .RGBA8888
glview.drawableDepthFormat = .Format16
glview.drawableMultisample = .MultisampleNone
glview.drawableStencilFormat = .FormatNone
preferredFramesPerSecond = 60
let s = NSBundle.mainBundle().URLForResource("Arial", withExtension: ".ttf")?.relativePath
let cs = (s! as NSString).UTF8String
let buffer = UnsafeMutablePointer<Int8>(cs)
appInit(buffer)
}
override func glkView(view: GLKView, drawInRect rect: CGRect) {
super.glkView(view, drawInRect: rect)
glview.bindDrawable()
appRender(Int(timeSinceLastDraw * 1000), Int32(rect.width), Int32(rect.height))
}
}
ストーリーボード上GLKViewController
にフックアップされています。ここでは0を返すglCreateShader(GL_VERTEX_SHADER)
何らかの理由で私のビューコントローラのコードです。
注:appInit(buffer)
は、ブリッジヘッダーを通じてインポートされたC++コードの呼び出しです。