mirror of
https://github.com/scratchfoundation/scratch-vm.git
synced 2024-12-24 23:12:24 -05:00
Merge remote-tracking branch 'refs/remotes/LLK/develop' into optimisation-root
This commit is contained in:
commit
6f8eaaa101
6 changed files with 24 additions and 15 deletions
|
@ -258,6 +258,9 @@ Scratch3PenBlocks.prototype.setPenColorToColor = function (args, util) {
|
||||||
penState.penAttributes.color4f[0] = rgb.r / 255.0;
|
penState.penAttributes.color4f[0] = rgb.r / 255.0;
|
||||||
penState.penAttributes.color4f[1] = rgb.g / 255.0;
|
penState.penAttributes.color4f[1] = rgb.g / 255.0;
|
||||||
penState.penAttributes.color4f[2] = rgb.b / 255.0;
|
penState.penAttributes.color4f[2] = rgb.b / 255.0;
|
||||||
|
if (rgb.hasOwnProperty('a')) { // Will there always be an 'a'?
|
||||||
|
penState.penAttributes.color4f[3] = rgb.a / 255.0;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -166,8 +166,8 @@ var parseScripts = function (scripts, blocks) {
|
||||||
// Adjust script coordinates to account for
|
// Adjust script coordinates to account for
|
||||||
// larger block size in scratch-blocks.
|
// larger block size in scratch-blocks.
|
||||||
// @todo: Determine more precisely the right formulas here.
|
// @todo: Determine more precisely the right formulas here.
|
||||||
parsedBlockList[0].x = scriptX * 1.1;
|
parsedBlockList[0].x = scriptX * 1.5;
|
||||||
parsedBlockList[0].y = scriptY * 1.1;
|
parsedBlockList[0].y = scriptY * 2.2;
|
||||||
parsedBlockList[0].topLevel = true;
|
parsedBlockList[0].topLevel = true;
|
||||||
parsedBlockList[0].parent = null;
|
parsedBlockList[0].parent = null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -437,7 +437,7 @@ RenderedTarget.prototype.updateAllDrawableProperties = function () {
|
||||||
if (this.renderer) {
|
if (this.renderer) {
|
||||||
var renderedDirectionScale = this._getRenderedDirectionAndScale();
|
var renderedDirectionScale = this._getRenderedDirectionAndScale();
|
||||||
var costume = this.sprite.costumes[this.currentCostume];
|
var costume = this.sprite.costumes[this.currentCostume];
|
||||||
this.renderer.updateDrawableProperties(this.drawableID, {
|
var props = {
|
||||||
position: [this.x, this.y],
|
position: [this.x, this.y],
|
||||||
direction: renderedDirectionScale.direction,
|
direction: renderedDirectionScale.direction,
|
||||||
scale: renderedDirectionScale.scale,
|
scale: renderedDirectionScale.scale,
|
||||||
|
@ -448,7 +448,11 @@ RenderedTarget.prototype.updateAllDrawableProperties = function () {
|
||||||
costume.rotationCenterX / costume.bitmapResolution,
|
costume.rotationCenterX / costume.bitmapResolution,
|
||||||
costume.rotationCenterY / costume.bitmapResolution
|
costume.rotationCenterY / costume.bitmapResolution
|
||||||
]
|
]
|
||||||
});
|
};
|
||||||
|
for (var effectID in this.effects) {
|
||||||
|
props[effectID] = this.effects[effectID];
|
||||||
|
}
|
||||||
|
this.renderer.updateDrawableProperties(this.drawableID, props);
|
||||||
if (this.visible) {
|
if (this.visible) {
|
||||||
this.runtime.requestRedraw();
|
this.runtime.requestRedraw();
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,10 +40,11 @@ Color.decimalToHex = function (decimal) {
|
||||||
* @return {RGBObject} rgb - {r: red [0,255], g: green [0,255], b: blue [0,255]}.
|
* @return {RGBObject} rgb - {r: red [0,255], g: green [0,255], b: blue [0,255]}.
|
||||||
*/
|
*/
|
||||||
Color.decimalToRgb = function (decimal) {
|
Color.decimalToRgb = function (decimal) {
|
||||||
|
var a = (decimal >> 24) & 0xFF;
|
||||||
var r = (decimal >> 16) & 0xFF;
|
var r = (decimal >> 16) & 0xFF;
|
||||||
var g = (decimal >> 8) & 0xFF;
|
var g = (decimal >> 8) & 0xFF;
|
||||||
var b = decimal & 0xFF;
|
var b = decimal & 0xFF;
|
||||||
return {r: r, g: g, b: b};
|
return {r: r, g: g, b: b, a: a > 0 ? a : 255};
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -99,13 +99,14 @@ test('toRbgColorObject', function (t) {
|
||||||
t.deepEqual(cast.toRgbColorObject('#ffffff'), {r: 255, g: 255, b: 255});
|
t.deepEqual(cast.toRgbColorObject('#ffffff'), {r: 255, g: 255, b: 255});
|
||||||
|
|
||||||
// Decimal (minimal, see "color" util tests)
|
// Decimal (minimal, see "color" util tests)
|
||||||
t.deepEqual(cast.toRgbColorObject(0), {r: 0, g: 0, b: 0});
|
t.deepEqual(cast.toRgbColorObject(0), {a: 255, r: 0, g: 0, b: 0});
|
||||||
t.deepEqual(cast.toRgbColorObject(1), {r: 0, g: 0, b: 1});
|
t.deepEqual(cast.toRgbColorObject(1), {a: 255, r: 0, g: 0, b: 1});
|
||||||
t.deepEqual(cast.toRgbColorObject(16777215), {r: 255, g: 255, b: 255});
|
t.deepEqual(cast.toRgbColorObject(16777215), {a: 255, r: 255, g: 255, b: 255});
|
||||||
|
t.deepEqual(cast.toRgbColorObject('0x80010203'), {a: 128, r: 1, g: 2, b: 3});
|
||||||
|
|
||||||
// Malformed
|
// Malformed
|
||||||
t.deepEqual(cast.toRgbColorObject('ffffff'), {r: 0, g: 0, b: 0});
|
t.deepEqual(cast.toRgbColorObject('ffffff'), {a: 255, r: 0, g: 0, b: 0});
|
||||||
t.deepEqual(cast.toRgbColorObject('foobar'), {r: 0, g: 0, b: 0});
|
t.deepEqual(cast.toRgbColorObject('foobar'), {a: 255, r: 0, g: 0, b: 0});
|
||||||
t.end();
|
t.end();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -47,11 +47,11 @@ test('decimalToHex', function (t) {
|
||||||
});
|
});
|
||||||
|
|
||||||
test('decimalToRgb', function (t) {
|
test('decimalToRgb', function (t) {
|
||||||
t.deepEqual(color.decimalToRgb(0), {r: 0, g: 0, b: 0});
|
t.deepEqual(color.decimalToRgb(0), {a: 255, r: 0, g: 0, b: 0});
|
||||||
t.deepEqual(color.decimalToRgb(1), {r: 0, g: 0, b: 1});
|
t.deepEqual(color.decimalToRgb(1), {a: 255, r: 0, g: 0, b: 1});
|
||||||
t.deepEqual(color.decimalToRgb(16777215), {r: 255, g: 255, b: 255});
|
t.deepEqual(color.decimalToRgb(16777215), {a: 255, r: 255, g: 255, b: 255});
|
||||||
t.deepEqual(color.decimalToRgb(-16777215), {r: 0, g: 0, b: 1});
|
t.deepEqual(color.decimalToRgb(-16777215), {a: 255, r: 0, g: 0, b: 1});
|
||||||
t.deepEqual(color.decimalToRgb(99999999), {r: 245, g: 224, b: 255});
|
t.deepEqual(color.decimalToRgb(99999999), {a: 5, r: 245, g: 224, b: 255});
|
||||||
t.end();
|
t.end();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue