如何为openTK gameWindow实现垂直滚动条

时间:2016-11-28 11:36:36

标签: c# 3d opentk

我正在使用openTK和c#开发一个2d windows应用程序。 我正在使用gamewindow类。

class myWindow : GameWindow
{
}

有没有办法为这个窗口实现垂直滚动条? 谢谢

1 个答案:

答案 0 :(得分:2)

创建自己的Scrollbar小部件。使用OpenGL在2D中绘制:

DrawVerticalScrollBar(scrollbar_x, scrollbar_y, 
   scrollbar_width, scrollbar_height, 
   vertical_scroll, min_value, max_value); //pseudocode

然后绘制“滚动条”视图的内容:

GL.Enable(EnableCap.ScissorTest);
GL.Scissor(view_start_x, view_start_y, view_end_x, view_end_y);

// Assume matrix mode is modelview
GL.PushMatrix();
GL.Translate(0, -vertical_scroll, 0);
      // Draw the graphics affected by scrollbar
GL.PopMatrix();

GL.Disable(EnableCap.ScissorTest);

// Draw rest of the 2d graphics

如果您不想剪辑视图的内容,可以删除ScissorTestGL.Scissor