2018-01-09 21:00:56 +00:00
|
|
|
module.exports = {
|
|
|
|
|
2018-01-09 22:51:22 +00:00
|
|
|
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 22:51:22 +00:00
|
|
|
},
|
2018-01-09 21:00:56 +00:00
|
|
|
|
2018-01-09 22:51:22 +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;
|
|
|
|
},
|
|
|
|
|
|
|
|
getTintAppendFloatAlphaAndSwap: function (rgb, a)
|
2018-01-09 22:51:22 +00:00
|
|
|
{
|
|
|
|
var ur = ((rgb >> 16)|0) & 0xff;
|
|
|
|
var ug = ((rgb >> 8)|0) & 0xff;
|
|
|
|
var ub = (rgb|0) & 0xff;
|
|
|
|
var ua = ((a * 255.0)|0) & 0xFF;
|
|
|
|
|
2018-01-12 16:46:46 +00:00
|
|
|
return ((ua << 24) | (ub << 16) | (ug << 8) | ur) >>> 0;
|
2018-01-22 22:51:15 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
getComponentCount: function (attributes)
|
|
|
|
{
|
|
|
|
var count = 0;
|
|
|
|
|
|
|
|
for (var index = 0; index < attributes.length; ++index)
|
|
|
|
{
|
|
|
|
var element = attributes[index];
|
|
|
|
|
|
|
|
if (element.type === WebGLRenderingContext.FLOAT)
|
|
|
|
{
|
|
|
|
count += element.size;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
count += 1; // We'll force any other type to be 32 bit. for now
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return count;
|
2018-01-09 22:51:22 +00:00
|
|
|
}
|
2018-01-09 21:00:56 +00:00
|
|
|
|
|
|
|
};
|