phaser/src/renderer/webgl/Utils.js

127 lines
3.2 KiB
JavaScript
Raw Normal View History

2018-02-12 16:01:20 +00:00
/**
* @author Richard Davey <rich@photonstorm.com>
2018-04-05 08:02:36 +00:00
* @author Felipe Alfonso <@bitnenfer>
2018-02-12 16:01:20 +00:00
* @copyright 2018 Photon Storm Ltd.
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
*/
2018-02-12 22:16:18 +00:00
/**
* @namespace Phaser.Renderer.WebGL.Utils
* @since 3.0.0
*/
2018-01-09 21:00:56 +00:00
module.exports = {
2018-02-12 22:16:18 +00:00
/**
2018-04-24 14:32:08 +00:00
* [pending]
2018-02-12 22:16:18 +00:00
*
* @function Phaser.Renderer.WebGL.Utils.getTintFromFloats
* @since 3.0.0
*
2018-04-24 14:32:08 +00:00
* @param {number} r - [pending] - what's the range?
2018-02-12 22:16:18 +00:00
* @param {number} g - [description]
* @param {number} b - [description]
2018-04-24 14:32:08 +00:00
* @param {number} a - [pending] - what's the range?
2018-02-12 22:16:18 +00:00
*
* @return {number} [description]
*/
getTintFromFloats: function (r, g, b, a)
{
var ur = ((r * 255.0)|0) & 0xFF;
var ug = ((g * 255.0)|0) & 0xFF;
var ub = ((b * 255.0)|0) & 0xFF;
var ua = ((a * 255.0)|0) & 0xFF;
2018-01-09 21:00:56 +00:00
2018-01-26 03:55:05 +00:00
return ((ua << 24) | (ur << 16) | (ug << 8) | ub) >>> 0;
},
2018-01-09 21:00:56 +00:00
2018-02-12 22:16:18 +00:00
/**
2018-04-24 14:32:08 +00:00
* [pending]
2018-02-12 22:16:18 +00:00
*
* @function Phaser.Renderer.WebGL.Utils.getTintAppendFloatAlpha
* @since 3.0.0
*
2018-04-24 14:32:08 +00:00
* @param {number} rgb - [pending] - what's the range?
* @param {number} a - [pending] - what's the range?
2018-02-12 22:16:18 +00:00
*
2018-04-24 14:32:08 +00:00
* @return {number} [pending]
2018-02-12 22:16:18 +00:00
*/
getTintAppendFloatAlpha: function (rgb, a)
2018-01-26 03:55:05 +00:00
{
var ua = ((a * 255.0)|0) & 0xFF;
return ((ua << 24) | rgb) >>> 0;
},
2018-02-12 22:16:18 +00:00
/**
2018-04-24 14:32:08 +00:00
* [pending]
2018-02-12 22:16:18 +00:00
*
* @function Phaser.Renderer.WebGL.Utils.getTintAppendFloatAlphaAndSwap
* @since 3.0.0
*
2018-04-24 14:32:08 +00:00
* @param {number} rgb - [pending] - what's the range?
* @param {number} a - [pending] - what's the range?
2018-02-12 22:16:18 +00:00
*
2018-04-24 14:32:08 +00:00
* @return {number} [pending]
2018-02-12 22:16:18 +00:00
*/
2018-01-26 03:55:05 +00:00
getTintAppendFloatAlphaAndSwap: function (rgb, a)
{
var ur = ((rgb >> 16)|0) & 0xff;
var ug = ((rgb >> 8)|0) & 0xff;
var ub = (rgb|0) & 0xff;
var ua = ((a * 255.0)|0) & 0xFF;
return ((ua << 24) | (ub << 16) | (ug << 8) | ur) >>> 0;
2018-01-22 22:51:15 +00:00
},
2018-02-12 22:16:18 +00:00
/**
2018-04-24 14:32:08 +00:00
* [pending]
2018-02-12 22:16:18 +00:00
*
* @function Phaser.Renderer.WebGL.Utils.getFloatsFromUintRGB
* @since 3.0.0
*
2018-04-24 14:32:08 +00:00
* @param {number} rgb - [pending]
2018-02-12 22:16:18 +00:00
*
2018-04-24 14:32:08 +00:00
* @return {number} [pending]
2018-02-12 22:16:18 +00:00
*/
2018-01-30 22:46:43 +00:00
getFloatsFromUintRGB: function (rgb)
{
var ur = ((rgb >> 16)|0) & 0xff;
var ug = ((rgb >> 8)|0) & 0xff;
var ub = (rgb|0) & 0xff;
return [ ur / 255.0, ug / 255.0, ub / 255.0 ];
},
2018-02-12 22:16:18 +00:00
/**
2018-04-24 14:32:08 +00:00
* [pending]
2018-02-12 22:16:18 +00:00
*
* @function Phaser.Renderer.WebGL.Utils.getComponentCount
* @since 3.0.0
*
2018-04-24 14:32:08 +00:00
* @param {number} attributes - [pending]
* @param {WebGLRenderingContext} glContext - [pending]
2018-02-12 22:16:18 +00:00
*
2018-04-24 14:32:08 +00:00
* @return {number} [pending]
2018-02-12 22:16:18 +00:00
*/
getComponentCount: function (attributes, glContext)
2018-01-22 22:51:15 +00:00
{
var count = 0;
for (var index = 0; index < attributes.length; ++index)
{
var element = attributes[index];
if (element.type === glContext.FLOAT)
2018-01-22 22:51:15 +00:00
{
count += element.size;
}
else
{
count += 1; // We'll force any other type to be 32 bit. for now
}
}
return count;
}
2018-01-09 21:00:56 +00:00
2018-02-12 22:16:18 +00:00
};