NSViewで描画しているOpenGLの背景を透明にしたい
Mac上で、OpenTKを利用して、描画を行おうとしています。
サンプルを元に、背景を透明にしようとしているのですが、黒のまま変化が見られない状況です。
以下が、そのコードです。
gameWindow = new MonoMacGameView( new CoreGraphics.CGRect(x,y,width,height) );
// Wire-up any required Game events
gameWindow.Load += (sender, e) =>
{
// TODO: Initialize settings, load textures and sounds here
};
gameWindow.Resize += (sender, e) =>
{
// Adjust the GL view to be the same size as the window
GL.Viewport(0, 0, gameWindow.Size.Width, gameWindow.Size.Height);
};
gameWindow.UpdateFrame += (sender, e) =>
{
// TODO: Add any game logic or physics
};
gameWindow.RenderFrame += (sender, e) =>
{
GL.Enable( EnableCap.AlphaTest );
GL.Enable( EnableCap.Blend );
GL.ClearColor( 0.0f,0.0f,0.0f,0.0f );
// Setup buffer
GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
GL.PushMatrix();
GL.MatrixMode(MatrixMode.Projection);
// Draw a simple triangle
GL.LoadIdentity();
GL.Ortho(-1.0, 1.0, -1.0, 1.0, 0.0, 4.0);
GL.Begin(BeginMode.Triangles);
GL.Color3(Color.MidnightBlue);
GL.Vertex2(-1.0f, 1.0f);
GL.Color3(Color.SpringGreen);
GL.Vertex2(0.0f, -1.0f);
//GL.Color3(Color.Ivory);
GL.Color4( 0.0f,0.5f,0.5f,0.1f);
GL.Vertex2(1.0f, 1.0f);
GL.End();
GL.PopMatrix();
};
NSView側の設定かもしれませんが、どのような処理を追加すればいいかがわからない状況です。
以下の様なコードも試してみましたが、そうすると、GLの描画が消えてしまいました。
CALayer viewLayer = CALayer.Create ();
viewLayer.BackgroundColor = NSColor.Clear.CGColor;
renderView.WantsLayer = false;
renderView.Layer = viewLayer;
※renderViewが、GL描画を行っているNSViewです。
ご助言をいただきたいと思います。