Skip to content

Commit

Permalink
Merge pull request #2412 from ivanpopelyshev/dev-canvasMeshFix
Browse files Browse the repository at this point in the history
Dev canvas mesh fix
  • Loading branch information
GoodBoyDigital committed Mar 26, 2016
2 parents e46b365 + 571534f commit d855f06
Showing 1 changed file with 10 additions and 8 deletions.
18 changes: 10 additions & 8 deletions src/mesh/Mesh.js
Original file line number Diff line number Diff line change
Expand Up @@ -158,14 +158,15 @@ Mesh.prototype._renderCanvas = function (renderer)
var context = renderer.context;

var transform = this.worldTransform;
var res = renderer.resolution;

if (renderer.roundPixels)
{
context.setTransform(transform.a, transform.b, transform.c, transform.d, transform.tx | 0, transform.ty | 0);
context.setTransform(transform.a * res, transform.b * res, transform.c * res, transform.d * res, (transform.tx * res) | 0, (transform.ty * res) | 0);
}
else
{
context.setTransform(transform.a, transform.b, transform.c, transform.d, transform.tx, transform.ty);
context.setTransform(transform.a * res, transform.b * res, transform.c * res, transform.d * res, transform.tx * res, transform.ty * res);
}

if (this.drawMode === Mesh.DRAW_MODES.TRIANGLE_MESH)
Expand Down Expand Up @@ -238,15 +239,16 @@ Mesh.prototype._renderCanvasTriangles = function (context)
*/
Mesh.prototype._renderCanvasDrawTriangle = function (context, vertices, uvs, index0, index1, index2)
{
var textureSource = this._texture.baseTexture.source;
var textureWidth = this._texture.baseTexture.width;
var textureHeight = this._texture.baseTexture.height;
var base = this._texture.baseTexture;
var textureSource = base.source;
var textureWidth = base.width;
var textureHeight = base.height;

var x0 = vertices[index0], x1 = vertices[index1], x2 = vertices[index2];
var y0 = vertices[index0 + 1], y1 = vertices[index1 + 1], y2 = vertices[index2 + 1];

var u0 = uvs[index0] * textureWidth, u1 = uvs[index1] * textureWidth, u2 = uvs[index2] * textureWidth;
var v0 = uvs[index0 + 1] * textureHeight, v1 = uvs[index1 + 1] * textureHeight, v2 = uvs[index2 + 1] * textureHeight;
var u0 = uvs[index0] * base.width, u1 = uvs[index1] * base.width, u2 = uvs[index2] * base.width;
var v0 = uvs[index0 + 1] * base.height, v1 = uvs[index1 + 1] * base.height, v2 = uvs[index2 + 1] * base.height;

if (this.canvasPadding > 0)
{
Expand Down Expand Up @@ -304,7 +306,7 @@ Mesh.prototype._renderCanvasDrawTriangle = function (context, vertices, uvs, ind
deltaB / delta, deltaE / delta,
deltaC / delta, deltaF / delta);

context.drawImage(textureSource, 0, 0);
context.drawImage(textureSource, 0, 0, textureWidth * base.resolution, textureHeight * base.resolution, 0, 0, textureWidth, textureHeight);
context.restore();
};

Expand Down

0 comments on commit d855f06

Please sign in to comment.