OpenTK:精灵不渲染?

OpenTK: Sprites not Rendering?

我已经能够让 window 渲染,我很确定我的着色器正在工作,并且我可以从我的资产中获取图像,但是当我实际渲染视图时,我只是得到了我的蓝色背景,没有精灵出现。

基本设计如下:

Views 继承了抽象的 class WindowBase,其中包含大部分繁重的工作并声明了一个 Shader(我现在在 Assets 中只有一个)。我现在唯一的观点是 Main.cs

然后我可以在视图中声明 ObjectBase 实例。对象具有由 Sprites 组成的动画,这些 Sprites 链接到纹理服务通过 OpenGL 生成的纹理。

还有一个输入服务还没有做太多事情,尽管我现在已经将它绑定到 Escape 键以关闭 window。但我怀疑程序的一部分与此问题有关。

更新:一点一点,我慢慢地把原来的转换成我的,当我换到我的着色器系统时发现它坏了,所以问题就出在这里。我将 post 我的代码与他们的代码对比:

Their Shader class

My version

我猜我一定是在什么地方打错了字。或者我的循环之一不兼容。也许我在资产 Class?

中处理流阅读器的方式

已解决:我的问题在第 114 行,我有以下代码:

    public int Attribute(string name)
    {
        return _attributes.ContainsKey(name) ? _attributes[name].Address : -1;
    }

    public int Uniform(string name)
    {
        return _uniforms.ContainsKey("name") ? _uniforms[name].Address : -1;
    }

    public uint Buffer(string name)
    {
        return _buffers.ContainsKey(name) ? _buffers[name] : 0;
    }

如下:

_uniforms.ContainsKey("name") 应该是 _uniforms.ContainsKey(姓名)