1

コントロールを含む 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 が表示されません。

何か案は?ありがとう、デイブ

4

1 に答える 1