mirror of
https://github.com/scratchfoundation/scratch-vm.git
synced 2025-06-04 17:44:43 -04:00
Merge pull request #2314 from adroitwhiz/dont-update-rotation-center
Remove calls to updateDrawableSkinIdRotationCenter
This commit is contained in:
commit
f5ce73ae51
3 changed files with 17 additions and 23 deletions
|
@ -212,8 +212,21 @@ const loadBitmap_ = function (costume, runtime, _rotationCenter) {
|
|||
return fetched;
|
||||
})
|
||||
.then(({canvas, mergeCanvas, rotationCenter}) => {
|
||||
// createBitmapSkin does the right thing if costume.bitmapResolution or rotationCenter are undefined...
|
||||
costume.skinId = runtime.renderer.createBitmapSkin(canvas, costume.bitmapResolution, rotationCenter);
|
||||
// createBitmapSkin does the right thing if costume.rotationCenter is undefined.
|
||||
// That will be the case if you upload a bitmap asset or create one by taking a photo.
|
||||
let center;
|
||||
if (rotationCenter) {
|
||||
// fetchBitmapCanvas will ensure that the costume's bitmap resolution is 2 and its rotation center is
|
||||
// scaled to match, so it's okay to always divide by 2.
|
||||
center = [
|
||||
rotationCenter[0] / 2,
|
||||
rotationCenter[1] / 2
|
||||
];
|
||||
}
|
||||
|
||||
// TODO: costume.bitmapResolution will always be 2 at this point because of fetchBitmapCanvas_, so we don't
|
||||
// need to pass it in here.
|
||||
costume.skinId = runtime.renderer.createBitmapSkin(canvas, costume.bitmapResolution, center);
|
||||
canvasPool.release(mergeCanvas);
|
||||
const renderSize = runtime.renderer.getSkinSize(costume.skinId);
|
||||
costume.size = [renderSize[0] * 2, renderSize[1] * 2]; // Actual size, since all bitmaps are resolution 2
|
||||
|
|
|
@ -458,19 +458,7 @@ class RenderedTarget extends Target {
|
|||
);
|
||||
if (this.renderer) {
|
||||
const costume = this.getCostumes()[this.currentCostume];
|
||||
if (
|
||||
typeof costume.rotationCenterX !== 'undefined' &&
|
||||
typeof costume.rotationCenterY !== 'undefined'
|
||||
) {
|
||||
const scale = costume.bitmapResolution || 2;
|
||||
const rotationCenter = [
|
||||
costume.rotationCenterX / scale,
|
||||
costume.rotationCenterY / scale
|
||||
];
|
||||
this.renderer.updateDrawableSkinIdRotationCenter(this.drawableID, costume.skinId, rotationCenter);
|
||||
} else {
|
||||
this.renderer.updateDrawableSkinId(this.drawableID, costume.skinId);
|
||||
}
|
||||
this.renderer.updateDrawableSkinId(this.drawableID, costume.skinId);
|
||||
|
||||
if (this.visible) {
|
||||
this.emit(RenderedTarget.EVENT_TARGET_VISUAL_CHANGE, this);
|
||||
|
@ -709,11 +697,7 @@ class RenderedTarget extends Target {
|
|||
this.renderer.updateDrawableVisible(this.drawableID, this.visible);
|
||||
|
||||
const costume = this.getCostumes()[this.currentCostume];
|
||||
const bitmapResolution = costume.bitmapResolution || 2;
|
||||
this.renderer.updateDrawableSkinIdRotationCenter(this.drawableID, costume.skinId, [
|
||||
costume.rotationCenterX / bitmapResolution,
|
||||
costume.rotationCenterY / bitmapResolution
|
||||
]);
|
||||
this.renderer.updateDrawableSkinId(this.drawableID, costume.skinId);
|
||||
|
||||
for (const effectName in this.effects) {
|
||||
if (!this.effects.hasOwnProperty(effectName)) continue;
|
||||
|
|
3
test/fixtures/fake-renderer.js
vendored
3
test/fixtures/fake-renderer.js
vendored
|
@ -17,9 +17,6 @@ FakeRenderer.prototype.getFencedPositionOfDrawable = function (d, p) { // eslint
|
|||
FakeRenderer.prototype.updateDrawableSkinId = function (d, skinId) { // eslint-disable-line no-unused-vars
|
||||
};
|
||||
|
||||
FakeRenderer.prototype.updateDrawableSkinIdRotationCenter =
|
||||
function (d, skinId, rotationCenter) {}; // eslint-disable-line no-unused-vars
|
||||
|
||||
FakeRenderer.prototype.updateDrawablePosition = function (d, position) { // eslint-disable-line no-unused-vars
|
||||
this.x = position[0];
|
||||
this.y = position[1];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue