这是个基于OPENGL ES2.0的游戏开发包,里面带的范例有这么一段,不太明白下面是个用来创建角色实例的类,ShaderProgram 和 GraphicsContext 都是API中提供的类型。CreateSimpleSpriteShader()这个方法中的Assembly和Stream,查资料说是反射和字节流,但还是很糊涂,反射有人讲是起查看未知类型的信息的作用。下面这段代码中,这两个东西是必要的还是可选的头一次请教问题,字儿有点多,怕表达不清,先谢谢各位啦~
public class SimpleSprite
{
static ShaderProgram shaderProgram;
protected GraphicsContext graphics; …………………………………………
private static ShaderProgram CreateSimpleSpriteShader()
{
string resourceName = "TutoLib.shaders.SimpleSprite.cgx";
Assembly resourceAssembly = Assembly.GetExecutingAssembly();
if (resourceAssembly.GetManifestResourceInfo(resourceName) == null)
{
throw new FileNotFoundException("File not found.", resourceName);
}
Stream fileStream = resourceAssembly.GetManifestResourceStream(resourceName);
Byte[] dataBuffer = new Byte[fileStream.Length];
//@e Read files into the dataBuffer.
fileStream.Read(dataBuffer, 0, dataBuffer.Length);
var shaderProgram = new ShaderProgram(dataBuffer);
shaderProgram.SetUniformBinding(0, "u_WorldMatrix");
return shaderProgram;
}
}
public class SimpleSprite
{
static ShaderProgram shaderProgram;
protected GraphicsContext graphics; …………………………………………
private static ShaderProgram CreateSimpleSpriteShader()
{
string resourceName = "TutoLib.shaders.SimpleSprite.cgx";
Assembly resourceAssembly = Assembly.GetExecutingAssembly();
if (resourceAssembly.GetManifestResourceInfo(resourceName) == null)
{
throw new FileNotFoundException("File not found.", resourceName);
}
Stream fileStream = resourceAssembly.GetManifestResourceStream(resourceName);
Byte[] dataBuffer = new Byte[fileStream.Length];
//@e Read files into the dataBuffer.
fileStream.Read(dataBuffer, 0, dataBuffer.Length);
var shaderProgram = new ShaderProgram(dataBuffer);
shaderProgram.SetUniformBinding(0, "u_WorldMatrix");
return shaderProgram;
}
}
解决方案 »
- 自定义制作DataGridView控件的问题,急...
- VS2010 水晶报表Ver:13打印预览与打印的纸张方向不同
- 命名空间的父、子、孙之间是否有什么编程、开发等逻辑关系,还是仅仅为了便于分块管理?
- 模拟窗体的控件
- 请问一下这个c#和论坛列表下边的c# builder 不一样么,不是都是c#语言么
- 防SQL注入的正则表达式!帮忙改一下错!
- 如何让treeview的上下文菜单只在鼠标在子结点上右击时出现?高分求教。。。
- 有誰用VC#.NET 、XML创建动态分层菜单(web不是WIN)
- ASP.NET 连接本地SQL SERVER问题-WINDOWS集成验证
- 如何绕过代理?
- win2000sp4安装MDAC2.8,总是提示odbcconf.exe没有通过微软数字签名
- C# WebClient获取网址源代码时,如果目标网站延迟不能获取其源码,该什么弄?是设置延时还是怎么弄?
而这里的Stream是从Accembly加载的程序集中读取资源清单,都是必须的。