OSX Custom Shaped OpenGL / OpenTK查看

时间:2016-07-03 21:06:08

标签: c# objective-c opengl xamarin opentk

OSX 上有一个自定义透明窗口,其中有一个管理OpenGL绘图的NSView:

public class MyCustomOpenGLView : NSView
{
    NSOpenGLContext openGLContext;
    // ...
}

我设置了以下内容(使用Xamarin):

openGLContext.SurfaceOpaque = false;

相当于:

GLint opaque = 0;
[[[wnd contentView] openGLContext] setValues:&opaque forParameter:NSOpenGLCPSurfaceOpacity];

我还在管理OpenGL的NSView上设置了“Opaque”属性为false:

    public override bool IsOpaque
    {
        get
        {
            return false;
        }
    }

相当于:

@implementation NSOpenGLView (Opaque)
-(BOOL)isOpaque {
    return NO;
}
@end

然后在渲染过程中,我将透明色设置为透明:

GL.ClearColor(Color.Transparent);
GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
// Draw shape here...

视图呈现具有透明背景的形状,但我仍然可以单击透明区域。我希望能够点击透明区域

我尝试重写HitTest方法,NSView确实在透明区域上点击鼠标。我在这做错了什么?任何帮助将不胜感激!

0 个答案:

没有答案