OpenTK と GTK# を使用して開発するために、この GLWidget を使用しようとしています。これは良いことのように思えますが、残念ながらドキュメントがほとんどありません。そのウィジェットで何かをレンダリングする方法を理解しようとしています。これまでのところ、monodevelop ソリューションを作成し、OpenTK と GLWidget への参照を追加しました。Stetic のツール ペインに GLWidget が表示されるようになりました。Vbox を追加し、2 つのスロットがあり、上部のスロットにメニュー バーを追加し、下部のスロットに有名なGLWidget。OnRender イベントと Initialized イベントのイベント ハンドラーも作成しましたが、三角形も描画できません。誰かが GLWidget を使ったことがあり、私にアドバイスを与えることができますか? これが私のMainWindow.csコードです:
using System;
using Gtk;
using OpenTK;
using OpenTK.Graphics;
using OpenTK.Graphics.OpenGL;
using OpenTK.Audio;
using OpenTK.Audio.OpenAL;
using OpenTK.Input;
public partial class MainWindow : Gtk.Window{
public MainWindow () : base(Gtk.WindowType.Toplevel)
{
Build ();
}
protected void GLWidgetInitialize (object sender, System.EventArgs e)
{
int width = 0, height = 0;
//glwidget7.GdkWindow.GetSize(out width, out height);
this.vbox3.GetSizeRequest(out width, out height);
GL.Viewport(0, 0, width, height);
GL.ClearColor(1.0f, 1.0f,1.0f,1.0f);
GL.Clear(ClearBufferMask.ColorBufferBit);
}
protected void OnDeleteEvent (object sender, DeleteEventArgs a)
{
Application.Quit ();
a.RetVal = true;
}
protected void OnRenderFrameWidget (object sender, System.EventArgs e)
{
GL.ClearColor(1.0f, 1.0f,1.0f,1.0f);
GL.Begin(BeginMode.Triangles);
GL.Color3(1.0f, 1.0f, 0.0f); GL.Vertex3(-1.0f, -1.0f, 4.0f);
GL.Color3(1.0f, 0.0f, 0.0f); GL.Vertex3(1.0f, -1.0f, 4.0f);
GL.Color3(0.2f, 0.9f, 1.0f); GL.Vertex3(0.0f, 1.0f, 4.0f);
GL.End();
}
}
ちなみに、GLClearColor の値を変更すると、GLWidget の背景色が変更されます。