Merge pull request from adroitwhiz/dont-update-rotation-center

Remove calls to updateDrawableSkinIdRotationCenter
This commit is contained in:
DD Liu 2020-04-02 14:23:02 -04:00 committed by GitHub
commit f5ce73ae51
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 23 deletions

View file

@ -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

View file

@ -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;

View file

@ -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];