#c# #opentk
Вопрос:
Я создал простое приложение для отображения треугольника, но оно показывает только черное окно.
class Program
{
static void Main(string[] args)
{
GameWindow window = new GameWindow(800,600);
game game = new game(window);
window.Run(1.0/60.0);
}
}
class game
{
GameWindow window = new GameWindow();
public game(GameWindow window)
{
this.window = window;
window.Load = Window_Load;
window.UpdateFrame = Window_UpdateFrame;
window.RenderFrame = Window_RenderFrame;
}
private void Window_RenderFrame(object sender, FrameEventArgs e)
{
GL.ClearColor(Color.CornflowerBlue);
GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
GL.Viewport(0, 0, 800, 600);
GL.Begin(PrimitiveType.Triangles);
GL.Color3(Color.OrangeRed);
GL.Vertex2(0, 0);
GL.Vertex2(1, 0);
GL.Vertex2(0, 1);
GL.End();
window.SwapBuffers();
}
private void Window_UpdateFrame(object sender, FrameEventArgs e)
{
}
private void Window_Load(object sender, EventArgs e)
{
}
}
Ответ №1:
Вы случайно создали 2 GameWindow
объекта. Просто создайте один GameWindow
:
class Program
{
static void Main(string[] args)
{
GameWindow window = new GameWindow(800, 600);
game game = new game(window);
window.Run(1.0 / 60.0);
}
}
class game
{
GameWindow window; // <--- remove: = new GameWindow();
public game(GameWindow window)
{
this.window = window;
window.Load = Window_Load;
window.UpdateFrame = Window_UpdateFrame;
window.RenderFrame = Window_RenderFrame;
}
// [...]