如何解决我返回的数据不会影响void函数保护的重写的内部
我正在将位图帧发送到下面的“加载”功能。 LoadTexture函数在GenTexture中将数据返回为“ 1”并将其设置为纹理。当我调试时,我看到纹理返回“ 1”。但这不会影响“ OnRenderFrame”函数中的数据。我必须使用带有受保护的覆盖的OnRenderFrame。
public void Load(Bitmap bitmap)
{
texture = LoadTexture(bitmap);
}
public int LoadTexture(Bitmap file)
{
Bitmap bitmap = file;
int tex;
GL.Hint(HintTarget.PerspectiveCorrectionHint,HintMode.Nicest);
GL.GenTextures(1,out tex);
GL.BindTexture(TextureTarget.Texture2D,tex);
BitmapData data = bitmap.LockBits(new System.Drawing.Rectangle(0,bitmap.Width,bitmap.Height),ImageLockMode.ReadOnly,System.Drawing.Imaging.PixelFormat.Format8bppIndexed);
GL.TexImage2D(TextureTarget.Texture2D,PixelInternalFormat.luminance,data.Width,data.Height,OpenTK.Graphics.OpenGL.PixelFormat.luminance,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 tex;
}
protected override void OnRenderFrame(FrameEventArgs e)
{
Title = $"(Vsync: {VSync}) FPS: {1f / e.Time:0}";
GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
DrawImage(texture);
Console.WriteLine(texture);
SwapBuffers();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。