微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我如何在 OpenTK (C#) 中以简约的方式实现 2D 图像?

如何解决我如何在 OpenTK (C#) 中以简约的方式实现 2D 图像?

所以我想要一个 OpenTK 实现,它只在 2D 窗口上绘制一些图像。我尝试使用 this answer 提供的内容,但它只绘制了蓝屏。我想补充一点,我对 OpenTK 的理解基本上是不存在的,我只是对 windows 窗体感到生气,因为它甚至将简单的图形应用程序带到了崩溃的边缘。到目前为止,我得到了一个覆盖 OnLoad、OnResize、OnRenderFrame 和 OnUpdateFrame 的 GameWindow 扩展,以及一个完美大小的 NativeWindowSetting 和 GameWindowSetting。

有人可以提供使用或替换函数的注释代码(最好是 using OpenTK.Graphics.OpenGL4;)吗:

public int LoadTexture(string file)
        {
            Bitmap bitmap = new Bitmap(file);

            int image;
            GL.Hint(HintTarget.PerspectiveCorrectionHint,HintMode.Nicest);

            GL.GenTextures(1,out image);
            GL.BindTexture(TextureTarget.Texture2D,image);

            BitmapData data = bitmap.LockBits(new Rectangle(0,bitmap.Width,bitmap.Height),ImageLockMode.ReadOnly,System.Drawing.Imaging.PixelFormat.Format32bppArgb);

            GL.TexImage2D(TextureTarget.Texture2D,PixelInternalFormat.Rgba,data.Width,data.Height,OpenTK.Graphics.OpenGL.PixelFormat.Bgra,PixelType.UnsignedByte,data.Scan0);
            bitmap.UnlockBits(data);


            GL.TexParameter(TextureTarget.Texture2D,TextureParameterName.TextureMinFilter,(int)TextureMinFilter.Linear);
            GL.TexParameter(TextureTarget.Texture2D,TextureParameterName.TextureMagFilter,(int)TextureMagFilter.Linear);
            GL.TexParameter(TextureTarget.Texture2D,TextureParameterName.TextureWrapS,(int)TextureWrapMode.Repeat);
            GL.TexParameter(TextureTarget.Texture2D,TextureParameterName.TextureWrapT,(int)TextureWrapMode.Repeat);

            return image;
        }

以及如何将生成的纹理放入窗口的代码

我知道 SOF 通常用于在提供代码时提出问题,但我不知道从哪里开始,因为我发现的所有教程在绘制图形之前都需要三角形等,但我的应用程序不需要任何几何图形。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。