diff --git a/src/core/Shader.js b/src/core/Shader.js index 6ec7ecb..78b17e6 100644 --- a/src/core/Shader.js +++ b/src/core/Shader.js @@ -1,7 +1,7 @@ import { GLShader } from 'pixi-gl-core'; import settings from './settings'; -function checkPrecision(src) +function checkPrecision(src, def) { if (src instanceof Array) { @@ -9,14 +9,14 @@ { const copy = src.slice(0); - copy.unshift(`precision ${settings.PRECISION} float;`); + copy.unshift(`precision ${def} float;`); return copy; } } else if (src.substring(0, 9) !== 'precision') { - return `precision ${settings.PRECISION} float;\n${src}`; + return `precision ${def} float;\n${src}`; } return src; @@ -40,6 +40,7 @@ */ constructor(gl, vertexSrc, fragmentSrc) { - super(gl, checkPrecision(vertexSrc), checkPrecision(fragmentSrc)); + super(gl, checkPrecision(vertexSrc, settings.PRECISION_VERTEX), + checkPrecision(fragmentSrc, settings.PRECISION_FRAGMENT)); } } diff --git a/src/core/Shader.js b/src/core/Shader.js index 6ec7ecb..78b17e6 100644 --- a/src/core/Shader.js +++ b/src/core/Shader.js @@ -1,7 +1,7 @@ import { GLShader } from 'pixi-gl-core'; import settings from './settings'; -function checkPrecision(src) +function checkPrecision(src, def) { if (src instanceof Array) { @@ -9,14 +9,14 @@ { const copy = src.slice(0); - copy.unshift(`precision ${settings.PRECISION} float;`); + copy.unshift(`precision ${def} float;`); return copy; } } else if (src.substring(0, 9) !== 'precision') { - return `precision ${settings.PRECISION} float;\n${src}`; + return `precision ${def} float;\n${src}`; } return src; @@ -40,6 +40,7 @@ */ constructor(gl, vertexSrc, fragmentSrc) { - super(gl, checkPrecision(vertexSrc), checkPrecision(fragmentSrc)); + super(gl, checkPrecision(vertexSrc, settings.PRECISION_VERTEX), + checkPrecision(fragmentSrc, settings.PRECISION_FRAGMENT)); } } diff --git a/src/core/settings.js b/src/core/settings.js index bb08cb0..abd01b8 100644 --- a/src/core/settings.js +++ b/src/core/settings.js @@ -175,14 +175,24 @@ SCALE_MODE: 0, /** - * Default specify float precision in shaders. + * Default specify float precision in vertex shader. + * + * @static + * @memberof PIXI.settings + * @type {PIXI.PRECISION} + * @default PIXI.PRECISION.HIGH + */ + PRECISION_VERTEX: 'highp', + + /** + * Default specify float precision in fragment shader. * * @static * @memberof PIXI.settings * @type {PIXI.PRECISION} * @default PIXI.PRECISION.MEDIUM */ - PRECISION: 'mediump', + PRECISION_FRAGMENT: 'mediump', /** * Can we upload the same buffer in a single frame? diff --git a/src/core/Shader.js b/src/core/Shader.js index 6ec7ecb..78b17e6 100644 --- a/src/core/Shader.js +++ b/src/core/Shader.js @@ -1,7 +1,7 @@ import { GLShader } from 'pixi-gl-core'; import settings from './settings'; -function checkPrecision(src) +function checkPrecision(src, def) { if (src instanceof Array) { @@ -9,14 +9,14 @@ { const copy = src.slice(0); - copy.unshift(`precision ${settings.PRECISION} float;`); + copy.unshift(`precision ${def} float;`); return copy; } } else if (src.substring(0, 9) !== 'precision') { - return `precision ${settings.PRECISION} float;\n${src}`; + return `precision ${def} float;\n${src}`; } return src; @@ -40,6 +40,7 @@ */ constructor(gl, vertexSrc, fragmentSrc) { - super(gl, checkPrecision(vertexSrc), checkPrecision(fragmentSrc)); + super(gl, checkPrecision(vertexSrc, settings.PRECISION_VERTEX), + checkPrecision(fragmentSrc, settings.PRECISION_FRAGMENT)); } } diff --git a/src/core/settings.js b/src/core/settings.js index bb08cb0..abd01b8 100644 --- a/src/core/settings.js +++ b/src/core/settings.js @@ -175,14 +175,24 @@ SCALE_MODE: 0, /** - * Default specify float precision in shaders. + * Default specify float precision in vertex shader. + * + * @static + * @memberof PIXI.settings + * @type {PIXI.PRECISION} + * @default PIXI.PRECISION.HIGH + */ + PRECISION_VERTEX: 'highp', + + /** + * Default specify float precision in fragment shader. * * @static * @memberof PIXI.settings * @type {PIXI.PRECISION} * @default PIXI.PRECISION.MEDIUM */ - PRECISION: 'mediump', + PRECISION_FRAGMENT: 'mediump', /** * Can we upload the same buffer in a single frame? diff --git a/src/deprecation.js b/src/deprecation.js index 7e70c04..b9c73b3 100644 --- a/src/deprecation.js +++ b/src/deprecation.js @@ -535,7 +535,7 @@ { parent: 'GC_MODES', target: 'GC_MODE' }, { parent: 'WRAP_MODES', target: 'WRAP_MODE' }, { parent: 'SCALE_MODES', target: 'SCALE_MODE' }, - { parent: 'PRECISION', target: 'PRECISION' }, + { parent: 'PRECISION', target: 'PRECISION_FRAGMENT' }, ]; for (let i = 0; i < defaults.length; i++) @@ -559,6 +559,32 @@ }); } +Object.defineProperties(core.settings, { + + /** + * @static + * @name PRECISION + * @memberof PIXI.settings + * @see PIXI.PRECISION + * @deprecated since version 4.4.0 + */ + PRECISION: { + enumerable: true, + get() + { + warn('PIXI.settings.PRECISION has been deprecated, please use PIXI.settings.PRECISION_FRAGMENT'); + + return core.settings.PRECISION_FRAGMENT; + }, + set(value) + { + warn('PIXI.settings.PRECISION has been deprecated, please use PIXI.settings.PRECISION_FRAGMENT'); + + core.settings.PRECISION_FRAGMENT = value; + }, + }, +}); + Object.defineProperties(extras, { /**