- Регистрация
- 10.04.2018
- Сообщения
- 74
- Благодарностей
- 3
- Баллы
- 8
Всем привет.
Нашел вот такой пример на нашем форуме.
Возможно ли как-то полностью эмулировать Web GL в зенке?
Проверял на https://browserleaks.com/webgl
Встроенная эмуляция вроде как не канает, хэш всегда один получается.
Нашел вот такой пример на нашем форуме.
Возможно ли как-то полностью эмулировать Web GL в зенке?
Проверял на https://browserleaks.com/webgl
Встроенная эмуляция вроде как не канает, хэш всегда один получается.
Код:
public void WebGLgen()
{
Instance.WebGLPreferences.Set(ZennoLab.InterfacesLibrary.Enums.Browser.WebGLPreference.Renderer, "Mozilla");
Instance.WebGLPreferences.Set(ZennoLab.InterfacesLibrary.Enums.Browser.WebGLPreference.Vendor, "Mozilla");
Instance.WebGLPreferences.Set(ZennoLab.InterfacesLibrary.Enums.Browser.WebGLPreference.Version, "WebGL 1.0");
Instance.WebGLPreferences.Set(ZennoLab.InterfacesLibrary.Enums.Browser.WebGLPreference.ShadingLanguageVersion, "WebGL GLSL ES 1.0");
Instance.WebGLPreferences.Set(ZennoLab.InterfacesLibrary.Enums.Browser.WebGLPreference.UnmaskedRenderer, "Google Inc. ");
Instance.WebGLPreferences.Set(ZennoLab.InterfacesLibrary.Enums.Browser.WebGLPreference.UnmaskedVendor, "ANGLE (Software Adapter Direct3D11 vs_5_0 ps_5_0)");
var extensions = new List<ZennoLab.InterfacesLibrary.Enums.Browser.WebGLExtension>();
extensions.Add(ZennoLab.InterfacesLibrary.Enums.Browser.WebGLExtension.ANGLE_instanced_arrays);
extensions.Add(ZennoLab.InterfacesLibrary.Enums.Browser.WebGLExtension.EXT_blend_minmax);
extensions.Add(ZennoLab.InterfacesLibrary.Enums.Browser.WebGLExtension.EXT_color_buffer_float);
extensions.Add(ZennoLab.InterfacesLibrary.Enums.Browser.WebGLExtension.EXT_color_buffer_half_float);
extensions.Add(ZennoLab.InterfacesLibrary.Enums.Browser.WebGLExtension.EXT_frag_depth);
extensions.Add(ZennoLab.InterfacesLibrary.Enums.Browser.WebGLExtension.EXT_sRGB);
extensions.Add(ZennoLab.InterfacesLibrary.Enums.Browser.WebGLExtension.EXT_shader_texture_lod);
extensions.Add(ZennoLab.InterfacesLibrary.Enums.Browser.WebGLExtension.EXT_texture_filter_anisotropic);
extensions.Add(ZennoLab.InterfacesLibrary.Enums.Browser.WebGLExtension.EXT_disjoint_timer_query);
extensions.Add(ZennoLab.InterfacesLibrary.Enums.Browser.WebGLExtension.OES_element_index_uint);
extensions.Add(ZennoLab.InterfacesLibrary.Enums.Browser.WebGLExtension.OES_standard_derivatives);
Instance.WebGLPreferences.SetExtensions(extensions);
// set webgl shader settings
Instance.WebGLPreferences.SetShaderPrecisionFormat(ZennoLab.InterfacesLibrary.Enums.Browser.ShaderType.Fragment, ZennoLab.InterfacesLibrary.Enums.Browser.ShaderPrecisionType.MediumFloat, new ShaderPrecisionFormat(15, 15, 10));
Instance.WebGLPreferences.SetShaderPrecisionFormat(ZennoLab.InterfacesLibrary.Enums.Browser.ShaderType.Fragment, ZennoLab.InterfacesLibrary.Enums.Browser.ShaderPrecisionType.LowFloat, new ShaderPrecisionFormat(15, 15, 10));
Instance.WebGLPreferences.SetShaderPrecisionFormat(ZennoLab.InterfacesLibrary.Enums.Browser.ShaderType.Fragment, ZennoLab.InterfacesLibrary.Enums.Browser.ShaderPrecisionType.HighInt, new ShaderPrecisionFormat(31, 31, 0));
Instance.WebGLPreferences.SetShaderPrecisionFormat(ZennoLab.InterfacesLibrary.Enums.Browser.ShaderType.Fragment, ZennoLab.InterfacesLibrary.Enums.Browser.ShaderPrecisionType.MediumInt, new ShaderPrecisionFormat(15, 15, 0));
Instance.WebGLPreferences.SetShaderPrecisionFormat(ZennoLab.InterfacesLibrary.Enums.Browser.ShaderType.Fragment, ZennoLab.InterfacesLibrary.Enums.Browser.ShaderPrecisionType.LowInt, new ShaderPrecisionFormat(15, 15, 0));
Instance.WebGLPreferences.SetShaderPrecisionFormat(ZennoLab.InterfacesLibrary.Enums.Browser.ShaderType.Vertex, ZennoLab.InterfacesLibrary.Enums.Browser.ShaderPrecisionType.HighInt, new ShaderPrecisionFormat(31, 31, 0));
Instance.WebGLPreferences.SetShaderPrecisionFormat(ZennoLab.InterfacesLibrary.Enums.Browser.ShaderType.Vertex, ZennoLab.InterfacesLibrary.Enums.Browser.ShaderPrecisionType.MediumInt, new ShaderPrecisionFormat(31, 31, 0));
Instance.WebGLPreferences.SetShaderPrecisionFormat(ZennoLab.InterfacesLibrary.Enums.Browser.ShaderType.Vertex, ZennoLab.InterfacesLibrary.Enums.Browser.ShaderPrecisionType.LowInt, new ShaderPrecisionFormat(31, 31, 0));
// set availiable contexts
var contexts = new List<ZennoLab.InterfacesLibrary.Enums.Browser.CanvasContext>();
contexts.Add(ZennoLab.InterfacesLibrary.Enums.Browser.CanvasContext.Canvas2D);
contexts.Add(ZennoLab.InterfacesLibrary.Enums.Browser.CanvasContext.WebGL1);
Instance.WebGLPreferences.SetAvailiableContexts(contexts);
}
public void WebGLSave()
{
File.WriteAllText(@"C:\WebGL\gl.txt", Instance.WebGLPreferences.Save());
}
public void WebGLLoad()
{
string wglJSON = File.ReadAllText(@"C:\WebGL\gl.txt");
Project.SendInfoToLog(wglJSON);
Instance.WebGLPreferences.Load(wglJSON);
}