我能够让窗口渲染,我很确定我的着色器正在工作,我可以从我的资源中获取图像,但是当我实际渲染视图时,我只得到我的蓝色背景并且没有精灵显示
基本设计如下:
视图继承了抽象类WindowBase,其中包含了大部分繁重的东西,并声明了一个Shader(我现在只在Assets中有一个)。我现在唯一的观点就是Main.cs
然后我可以在View中声明ObjectBase实例。对象具有由Sprite组成的动画,这些Sprite链接到纹理服务通过OpenGL生成的纹理。
还有一个输入服务还没有做太多,虽然我确实已将它绑定到Escape Key以立即关闭窗口。但我怀疑该计划的一部分与这个问题有关。
更新:一块一块地,我慢慢将原件转换成我的,并且一旦我换到我的Shader系统就发现它已经坏了,所以问题就在那里。我会在这里发布我的代码:
我猜这点我必须在某个地方输入错字。或者我的一个循环是不兼容的。也许我在Assets Class中处理我的streamreader的方式是什么?
答案 0 :(得分:0)
Solved it: My problem was on line 114, I had the following code:
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;
}
As follows:
_uniforms.ContainsKey("name") should be _uniforms.ContainsKey(name)