コントロールを含む UIView の前で OpenGLES アニメーション レイヤーを使用しようとしています。たとえば、UIButton の FRONT でアニメーションをレンダリングしたい (したがって、アニメーション化されたオブジェクトは、通過するときにビューからボタンの前を (遮って) 通過します)。
いくつかの関連するスレッドにもかかわらず、答えを見つけることができませんでした。
私のプライマリ ビュー コントローラーには、GLKView タイプのビューが 1 つあります。UIButton が 1 つある UIView を 1 つ含む別の xib (View.xib) があります。
私のviewDidLoad内には、次のものがあります。
self.context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
if (!self.context) {
NSLog(@"Failed to create ES context");
}
GLKView *glView = (GLKView *)self.view;
glView.context = self.context;
glView.drawableDepthFormat = GLKViewDrawableColorFormatRGB565;
glView.opaque = NO;
glView.alpha = 1.0;
glView.backgroundColor = [UIColor clearColor];
UIView *controlView = [[[NSBundle mainBundle]loadNibNamed:@"View" owner:self options:nil] objectAtIndex:0];
controlView.frame = CGRectMake(100,200,100,100);
controlView.backgroundColor = [UIColor greenColor];
controlView.alpha = 1;
controlView.opaque = YES;
CALayer *controlViewLayer = controlView.layer;
[controlViewLayer insertSublayer:glView.layer above:controlViewLayer];
[self setupGL];
drawInRect内には次のものがあります。 glClearColor(0,0,0,0);
その結果、GLKView アニメーションは黒/透明な背景でレンダリングされますが、ボタンを含む UIView が表示されません。
何か案は?ありがとう、デイブ