名称空间“OpenTK”中不存在GLControl

时间:2013-03-14 05:58:52

标签: monodevelop opentk

我使用OpenTK和MonoDevelop。 我使用GLcontext

GLcontrol glControl1 = new GLControl();

我发现错误:

'GLControl' does not exist in the namespace 'OpenTK'

我将OpenTK.dll,OpenTK.GLControl.dll,OpenTK.dll.config添加到我的项目中。

任何想法。

1 个答案:

答案 0 :(得分:1)

确保为您的架构使用正确的库。所以对于x86,请确保您拥有x86库。对于x64,请确保您拥有x64库。确保将启动项目的体系结构设置为体系结构,以使用配置管理器匹配库。在64位机器上,它通常默认设置为“任何CPU”的组合。将其更改为正确的平台。

这就是我这样做的方式: 创建一个新的测试windforms应用程序。我想做一个64位应用程序,所以我使用配置管理器将我的启动应用程序设置为x64。使用NuGet安装opentk.glcontrol。它会自动将OpenTK解析为依赖项并安装它。

以下是添加控件并将背景颜色设置为skyblue的一些代码:

using OpenTK;
using OpenTK.Graphics.OpenGL4;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        private OpenTK.GLControl _glControl;
        public Form1()
        {
            InitializeComponent();

            _glControl = new OpenTK.GLControl();
            _glControl.Dock = DockStyle.Fill;
            this.Controls.Add(_glControl);

            _glControl.Load += control_Load;
            _glControl.Paint += control_Paint;

        }

        private void control_Paint(object sender, PaintEventArgs e)
        {
            _glControl.SwapBuffers();
        }

        private void control_Load(object sender, EventArgs e)
        {
            GL.ClearColor(Color.SkyBlue);
            GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
        }
    }
}