【发布时间】:2013-10-09 18:37:28
【问题描述】:
如何将 WebGL 封装在 Script# 中。
我尝试在源代码中添加内容,但出现我不理解的编译错误。
[ScriptIgnoreNamespace]
[ScriptImport]
[ScriptName("webGL")]
public sealed class WebGL
{
[ScriptName("fooGL")]
public void Foo(string test)
{
}
}
错误 1 中的基类或接口“System.FormatException” 程序集'mscorlib,版本=2.0.0.0,文化=中性, PublicKeyToken=b77a5c561934e089' 类型引用 'System.UriFormatException' 不能 已解决 c:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll Web
或者有没有更好的方法将 WebGL 支持添加为库而不是将其直接添加到主源?
编辑:看起来编译器错误来自 VS,来自自动将 System.dll 添加到项目中,它不应该是。删除后现在可以编译。所以现在的问题是在 Script# 中包装 javaScript API 的最佳方法是什么?
【问题讨论】:
-
WebGL 使用的 GLSL 不是 JavaScript。 Script# 似乎只生成了 JavaScript。我不太确定为什么你会认为这会起作用。
-
"GLSL" 是 Shader 语言,而不是 GLES2 语言。 WebGL通过javaScript控制GLES2,它不控制GLSL,GLES2负责GLSL...
-
这就像斯巴鲁森林人和斯巴鲁傲虎之间的区别。他们都是斯巴鲁。甚至 WebGL 规范也区分了这一点。 “不得加载引用其他 GLSL 版本中可用的状态变量或函数的着色器,例如桌面 OpenGL 版本中的着色器。”如果我们想学究气,WebGL 中的着色器不是 GLES2,它大部分是一个子集。见 => khronos.org/registry/webgl/specs/1.0/#6
-
(尽管严格来说着色器语言本身,我看到的唯一真正明显的区别是“以 'webgl_' 和 'webgl' 开头的标识符保留供WebGL。”。)
-
无论哪种方式 GLSL 都与问题无关,因为您不在 JavaScript 中编写 GLSL,而是在 JavaScript 中编写 GLES2(又名 WebGL)。
标签: c# javascript visual-studio webgl script#