我可以在同一个项目中使用opentk和xna并在同一窗口上显示数据吗? OpenTk是否支持Xna?

时间:2014-11-17 05:07:38

标签: opengl xna-4.0 opentk

我想在OpenTk项目的同一窗口中使用xna绘制一些东西 但我是Xna的初学者,所以我不知道是否可能

如果可能的话,我想在这种方法中绘制Xna:

private void glControl1_Paint(object sender, PaintEventArgs e)
    {
        if (!glcontrol1_isloaded) return;
        glControl1.MakeCurrent();
        GL.MatrixMode(MatrixMode.Modelview);
        GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
        GL.LoadIdentity();
        Scientifical_Calculations.Camara.Update(moviendo);

        IntPtr sf = Glu.NewQuadric();

        GL.Translate(0, 0, 0);
        GL.Color3(Color.White);
        GL.Enable(EnableCap.Texture2D);
        Gl.glBindTexture(Gl.GL_TEXTURE_2D, suntext);
        Glu.QuadricTexture(sf, true);
        Glu.Sphere(sf, 10, 35, 35);
        GL.Disable(EnableCap.Texture2D);
        Stars.Draw();

        glControl1.SwapBuffers();


    }

我真的不知道是否有人曾尝试过这个,但我希望如此

1 个答案:

答案 0 :(得分:0)

XNA使用的是Direct3d,而OpenTK是OpenGL。在一般情况下,您无法使用OpenGL绘制到Direct3d窗口中。[1]

可以做的是从XNA切换到MonoGame。它是XNA的开源实现,支持Direct3d和OpenGL。如果您使用OpenGL版本,您将能够使用XNA和OpenTK绘制到同一窗口。

[1] WGL_NV_DX_interop允许您在OpenGL和Direct3d之间共享纹理和渲染缓冲区,因此可以在某些系统上实现此功能。除非你真的知道你在做什么,否则我会反对它。