小编ig2*_*g2r的帖子

CARenderer从不产生输出

试图使用CARenderer将Core Animation图层树渲染到OpenGL上下文中,我已经呆了几个小时。OpenGL上下文当前由Interface Builder中设置的NSOpenGLView子类提供,默认设置为。

这是我在示例中设置CALayers的方法:

l1 = [[CALayer layer] retain];        // l1 is an instance variable
l1.bounds = CGRectMake(0, 0, 100, 100);
l1.backgroundColor = CGColorCreateGenericRGB(1, 1, 0, 1);
CALayer* l2 = [CALayer layer];
l2.bounds = CGRectMake(0, 0, 20, 20);
l2.backgroundColor = CGColorCreateGenericRGB(1, 0, 0, 1);
l2.position = CGPointMake(50, 50);
[l1 addSublayer:l2];
Run Code Online (Sandbox Code Playgroud)

如果我将它们添加到常规NSView中,它们会很好显示。

这是我的NSOpenGLView子类的绘图代码:

- (void) drawRect:(NSRect)dirtyRect
{
    NSRect frame = [self frame];

    // set up context according to CARenderer.h instructions
    glViewport(0, 0, frame.size.width, frame.size.height);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0, frame.size.width, 0, frame.size.height, -1, …
Run Code Online (Sandbox Code Playgroud)

opengl macos cocoa core-animation

5
推荐指数
1
解决办法
1216
查看次数

标签 统计

cocoa ×1

core-animation ×1

macos ×1

opengl ×1