は私がMonoTouchでに次のコードを変換しようとしている:このOpenGLコードをxcodeからMonotouchに移植するにはどうすればいいですか?
if (videoTextureCache == NULL) {
// Create a new CVOpenGLESTexture cache
CVReturn err = CVOpenGLESTextureCacheCreate(kCFAllocatorDefault, NULL, self.context, NULL, &videoTextureCache);
if (err) {
NSLog(@"Error at CVOpenGLESTextureCacheCreate %d", err);
}
}
if (videoTextureCache) {
CMSampleBufferRef sampleBuffer = self.videoFrameReader.sampleBuffer;
CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
CVPixelBufferLockBaseAddress(imageBuffer, 0);
// Create a CVOpenGLESTexture from the CVImageBuffer
size_t frameWidth = CVPixelBufferGetWidth(imageBuffer);
size_t frameHeight = CVPixelBufferGetHeight(imageBuffer);
CVOpenGLESTextureRef texture = NULL;
CVReturn err = CVOpenGLESTextureCacheCreateTextureFromImage(kCFAllocatorDefault,
videoTextureCache,
imageBuffer,
NULL,
GL_TEXTURE_2D,
GL_RGBA,
frameWidth,
frameHeight,
GL_BGRA,
GL_UNSIGNED_BYTE,
0,
&texture);
if (!texture || err) {
NSLog(@"CVOpenGLESTextureCacheCreateTextureFromImage failed (error: %d)", err);
return;
} else {
self.cubeTextureName = CVOpenGLESTextureGetName(texture);
}
// Flush the CVOpenGLESTexture cache and release the texture
CVOpenGLESTextureCacheFlush(videoTextureCache, 0);
CFRelease(texture);
CVPixelBufferUnlockBaseAddress(imageBuffer, 0);
それは速いOpenGLのテクスチャにビデオのレンダリングに関連しています。優れたパフォーマンスでxCodeがうまく動作しますが、今はMonotouch関連のプロジェクトで動作させる必要があります。
しかし、CVOpenGLESTextureCacheCreateTextureFromImageやCVOpenGLESTextureCacheCreateのように、上記のキーメソッドについて必要なMonotouchバインディングやMonoTouch関連のドキュメントが見つからないので、このコードを移植する方法がかなり失われています。彼らはモノトゥッチから逃していますか?
私はそれらを呼び出す方法はありますか?
これはsize_t(intに、私が疑ったように)をバインドする方法の無関係な質問に答えるので、ありがとう!:-) – Dermot