[xna][monogame] Fixed up renderer

This commit is contained in:
badlogic 2017-03-15 12:46:45 +01:00
parent e464a9fbba
commit ac3201afca
2 changed files with 36 additions and 36 deletions

View File

@ -98,7 +98,7 @@ namespace Spine {
Attachment attachment = slot.Attachment;
if (attachment is RegionAttachment) {
RegionAttachment regionAttachment = (RegionAttachment)attachment;
BlendState blend = slot.Data.BlendMode == BlendMode.additive ? BlendState.Additive : defaultBlendState;
BlendState blend = slot.Data.BlendMode == BlendMode.Additive ? BlendState.Additive : defaultBlendState;
if (device.BlendState != blend) {
End();
device.BlendState = blend;
@ -129,29 +129,29 @@ namespace Spine {
itemVertices[BR].Color = color;
itemVertices[TR].Color = color;
regionAttachment.ComputeWorldVertices(slot.Bone, vertices);
itemVertices[TL].Position.X = vertices[RegionAttachment.X1];
itemVertices[TL].Position.Y = vertices[RegionAttachment.Y1];
regionAttachment.ComputeWorldVertices(slot.Bone, vertices, 0, 2);
itemVertices[TL].Position.X = vertices[0];
itemVertices[TL].Position.Y = vertices[1];
itemVertices[TL].Position.Z = 0;
itemVertices[BL].Position.X = vertices[RegionAttachment.X2];
itemVertices[BL].Position.Y = vertices[RegionAttachment.Y2];
itemVertices[BL].Position.X = vertices[2];
itemVertices[BL].Position.Y = vertices[3];
itemVertices[BL].Position.Z = 0;
itemVertices[BR].Position.X = vertices[RegionAttachment.X3];
itemVertices[BR].Position.Y = vertices[RegionAttachment.Y3];
itemVertices[BR].Position.X = vertices[4];
itemVertices[BR].Position.Y = vertices[5];
itemVertices[BR].Position.Z = 0;
itemVertices[TR].Position.X = vertices[RegionAttachment.X4];
itemVertices[TR].Position.Y = vertices[RegionAttachment.Y4];
itemVertices[TR].Position.X = vertices[6];
itemVertices[TR].Position.Y = vertices[7];
itemVertices[TR].Position.Z = 0;
float[] uvs = regionAttachment.UVs;
itemVertices[TL].TextureCoordinate.X = uvs[RegionAttachment.X1];
itemVertices[TL].TextureCoordinate.Y = uvs[RegionAttachment.Y1];
itemVertices[BL].TextureCoordinate.X = uvs[RegionAttachment.X2];
itemVertices[BL].TextureCoordinate.Y = uvs[RegionAttachment.Y2];
itemVertices[BR].TextureCoordinate.X = uvs[RegionAttachment.X3];
itemVertices[BR].TextureCoordinate.Y = uvs[RegionAttachment.Y3];
itemVertices[TR].TextureCoordinate.X = uvs[RegionAttachment.X4];
itemVertices[TR].TextureCoordinate.Y = uvs[RegionAttachment.Y4];
itemVertices[TL].TextureCoordinate.X = uvs[0];
itemVertices[TL].TextureCoordinate.Y = uvs[1];
itemVertices[BL].TextureCoordinate.X = uvs[2];
itemVertices[BL].TextureCoordinate.Y = uvs[3];
itemVertices[BR].TextureCoordinate.X = uvs[4];
itemVertices[BR].TextureCoordinate.Y = uvs[5];
itemVertices[TR].TextureCoordinate.X = uvs[6];
itemVertices[TR].TextureCoordinate.Y = uvs[7];
} else if (attachment is MeshAttachment) {
MeshAttachment mesh = (MeshAttachment)attachment;
int vertexCount = mesh.WorldVerticesLength;

View File

@ -90,7 +90,7 @@ namespace Spine {
Slot slot = drawOrderItems[i];
RegionAttachment regionAttachment = slot.Attachment as RegionAttachment;
if (regionAttachment != null) {
BlendState blend = slot.Data.BlendMode == BlendMode.additive ? BlendState.Additive : defaultBlendState;
BlendState blend = slot.Data.BlendMode == BlendMode.Additive ? BlendState.Additive : defaultBlendState;
if (device.BlendState != blend) {
End();
device.BlendState = blend;
@ -113,29 +113,29 @@ namespace Spine {
item.vertexTR.Color = color;
float[] vertices = this.vertices;
regionAttachment.ComputeWorldVertices(slot.Bone, vertices);
item.vertexTL.Position.X = vertices[RegionAttachment.X1];
item.vertexTL.Position.Y = vertices[RegionAttachment.Y1];
regionAttachment.ComputeWorldVertices(slot.Bone, vertices, 0, 2);
item.vertexTL.Position.X = vertices[0];
item.vertexTL.Position.Y = vertices[1];
item.vertexTL.Position.Z = 0;
item.vertexBL.Position.X = vertices[RegionAttachment.X2];
item.vertexBL.Position.Y = vertices[RegionAttachment.Y2];
item.vertexBL.Position.X = vertices[2];
item.vertexBL.Position.Y = vertices[3];
item.vertexBL.Position.Z = 0;
item.vertexBR.Position.X = vertices[RegionAttachment.X3];
item.vertexBR.Position.Y = vertices[RegionAttachment.Y3];
item.vertexBR.Position.X = vertices[4];
item.vertexBR.Position.Y = vertices[5];
item.vertexBR.Position.Z = 0;
item.vertexTR.Position.X = vertices[RegionAttachment.X4];
item.vertexTR.Position.Y = vertices[RegionAttachment.Y4];
item.vertexTR.Position.X = vertices[6];
item.vertexTR.Position.Y = vertices[7];
item.vertexTR.Position.Z = 0;
float[] uvs = regionAttachment.UVs;
item.vertexTL.TextureCoordinate.X = uvs[RegionAttachment.X1];
item.vertexTL.TextureCoordinate.Y = uvs[RegionAttachment.Y1];
item.vertexBL.TextureCoordinate.X = uvs[RegionAttachment.X2];
item.vertexBL.TextureCoordinate.Y = uvs[RegionAttachment.Y2];
item.vertexBR.TextureCoordinate.X = uvs[RegionAttachment.X3];
item.vertexBR.TextureCoordinate.Y = uvs[RegionAttachment.Y3];
item.vertexTR.TextureCoordinate.X = uvs[RegionAttachment.X4];
item.vertexTR.TextureCoordinate.Y = uvs[RegionAttachment.Y4];
item.vertexTL.TextureCoordinate.X = uvs[0];
item.vertexTL.TextureCoordinate.Y = uvs[1];
item.vertexBL.TextureCoordinate.X = uvs[2];
item.vertexBL.TextureCoordinate.Y = uvs[3];
item.vertexBR.TextureCoordinate.X = uvs[4];
item.vertexBR.TextureCoordinate.Y = uvs[5];
item.vertexTR.TextureCoordinate.X = uvs[6];
item.vertexTR.TextureCoordinate.Y = uvs[7];
}
}
}