WebGLPreferences

Assembly: ZennoLab.CommandCenter
Full name: ZennoLab.CommandCenter.WebGLPreferences
Kind: class


Represents an WebGLContext settings object.

Methods

Set

Method

void Set(WebGLPreference preference, string value)

Sets the webgl context settings.

Parameters

TypeNameDescription
WebGLPreferencepreferenceThe setting of webgl context.
stringvalueThe value of setting.

Example

// set Chrome useragent
            instance.SetHeader(ZennoLab.InterfacesLibrary.Enums.Browser.NavigatorField.UserAgent, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36");
            // set webgl context params
            instance.WebGLPreferences.Set(ZennoLab.InterfacesLibrary.Enums.Browser.WebGLPreference.Renderer, "WebKit WebGL");
            instance.WebGLPreferences.Set(ZennoLab.InterfacesLibrary.Enums.Browser.WebGLPreference.Vendor, "WebKit");
            instance.WebGLPreferences.Set(ZennoLab.InterfacesLibrary.Enums.Browser.WebGLPreference.Version, "WebGL 1.0 (OpenGL ES 2.0 Chromium)");
            instance.WebGLPreferences.Set(ZennoLab.InterfacesLibrary.Enums.Browser.WebGLPreference.ShadingLanguageVersion, "WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium)");
            instance.WebGLPreferences.Set(ZennoLab.InterfacesLibrary.Enums.Browser.WebGLPreference.UnmaskedRenderer, "Google Inc.");
            instance.WebGLPreferences.Set(ZennoLab.InterfacesLibrary.Enums.Browser.WebGLPreference.UnmaskedVendor, "ANGLE (NVIDIA GeForce GT 630 Direct3D11 vs_5_0 ps_5_0)");

SetExtensions

Method

void SetExtensions(IEnumerable<WebGLExtension> extensions)

Sets the webgl context extensions.

Parameters

TypeNameDescription
IEnumerable<WebGLExtension>extensionsThe value of setting.

Example

// set Chrome useragent
            instance.SetHeader(ZennoLab.InterfacesLibrary.Enums.Browser.NavigatorField.UserAgent, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36");
            // set webgl context extensions
            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);

SetShaderPrecisionFormat

Method

void SetShaderPrecisionFormat(ShaderType shaderType, ShaderPrecisionType precisionType, ShaderPrecisionFormat format)

Sets the vertex shader precision format.

Parameters

TypeNameDescription
ShaderTypeshaderTypeThe shader type.
ShaderPrecisionTypeprecisionTypeThe precision type.
ShaderPrecisionFormatformatThe object that represent format of the precision type.

Example

// set mobile useragent
            instance.SetHeader(ZennoLab.InterfacesLibrary.Enums.Browser.NavigatorField.UserAgent, "Mozilla/5.0 (Android 8.0.0; Mobile; rv:57.0) Gecko/57.0 Firefox/57.0");
            // 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));

SetAvailiableContexts

Method

void SetAvailiableContexts(IEnumerable<CanvasContext> contexts)

Sets the canvas availiable contexts.

Parameters

TypeNameDescription
IEnumerable<CanvasContext>contextsThe value of setting.

Example

// 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);

Load

Method

void Load(string value)

Loads preferences.

Parameters

TypeNameDescription
stringvalueThe preferences in json format.

Save

Method

string Save()

Saves preferences.

Returns: The preferences in json format.