FullMapRendererTest.cs 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291
  1. //using Microsoft.Xna.Framework;
  2. //using Microsoft.Xna.Framework.Graphics;
  3. //using MonoGame.Extended.Shapes;
  4. //using MonoGame.Extended.TextureAtlases;
  5. //using MonoGame.Extended.Tiled;
  6. //using MonoGame.Extended.Tiled.Graphics;
  7. //using NSubstitute;
  8. //using Xunit;
  9. //namespace MonoGame.Extended.Tests.Tiled.Renderers
  10. //{
  11. //
  12. // public class FullMapRendererTest
  13. // {
  14. // [Fact]
  15. // public void Draw_MapObjectLayer_MissingGID_NoGroups()
  16. // {
  17. // var gd = TestHelper.CreateGraphicsDevice();
  18. // var r = new MockRenderer(gd);
  19. // var texture = Substitute.For<Texture2D>(gd, 64, 64);
  20. // var m = new TiledMap("test", 2, 2, 32, 32);
  21. // m.CreateTileset(texture, 0, 32, 32, 4);
  22. // IShapeF shape = new RectangleF(1, 1, 1, 1);
  23. // TiledObject[] objs =
  24. // {
  25. // new TiledObject(TiledObjectType.Tile, 1, null, shape, 1, 1) { IsVisible = true },
  26. // };
  27. // var layer = new TiledObjectLayer("object", objs);
  28. // m.AddLayer(layer);
  29. // r.Map = m;
  30. // r.Draw(new Matrix());
  31. // Assert.IsNull(gd.Indices);
  32. // }
  33. // [Fact]
  34. // public void Draw_MapObjectLayer_ShapeObject_NoGroups()
  35. // {
  36. // var gd = TestHelper.CreateGraphicsDevice();
  37. // var r = new MockRenderer(gd);
  38. // var texture = Substitute.For<Texture2D>(gd, 64, 64);
  39. // var m = new TiledMap("test", 2, 2, 32, 32);
  40. // m.CreateTileset(texture, 0, 32, 32, 4);
  41. // IShapeF shape = new RectangleF(1, 1, 1, 1);
  42. // TiledObject[] objs =
  43. // {
  44. // new TiledObject(TiledObjectType.Rectangle, 1, 1, shape, 1, 1) { IsVisible = true },
  45. // };
  46. // var layer = new TiledObjectLayer("object", objs);
  47. // m.AddLayer(layer);
  48. // r.Map = m;
  49. // r.Draw(new Matrix());
  50. // Assert.IsNull(gd.Indices);
  51. // }
  52. // [Fact]
  53. // public void Draw_MapObjectLayer_TileObject_OneGroup()
  54. // {
  55. // var gd = TestHelper.CreateGraphicsDevice();
  56. // var r = new MockRenderer(gd);
  57. // var texture = Substitute.For<Texture2D>(gd, 64, 64);
  58. // var m = new TiledMap("test", 2, 2, 32, 32);
  59. // m.CreateTileset(texture, 0, 32, 32, 4);
  60. // IShapeF shape = new RectangleF(1, 1, 1, 1);
  61. // TiledObject[] objs =
  62. // {
  63. // new TiledObject(TiledObjectType.Tile, 1, 1, shape, 1, 1) { IsVisible = true },
  64. // };
  65. // var layer = new TiledObjectLayer("object", objs);
  66. // m.AddLayer(layer);
  67. // r.Map = m;
  68. // r.Draw(new Matrix());
  69. // Assert.NotNull(gd.Indices);
  70. // Assert.Equal(6, gd.Indices.IndexCount);
  71. // }
  72. // [Fact]
  73. // public void Draw_MapObjectLayer_NotVisible_NoGroups()
  74. // {
  75. // var gd = TestHelper.CreateGraphicsDevice();
  76. // var r = new MockRenderer(gd);
  77. // var texture = Substitute.For<Texture2D>(gd, 64, 64);
  78. // var m = new TiledMap("test", 2, 2, 32, 32);
  79. // m.CreateTileset(texture, 0, 32, 32, 4);
  80. // IShapeF shape = new RectangleF(1, 1, 1, 1);
  81. // TiledObject[] objs =
  82. // {
  83. // new TiledObject(TiledObjectType.Tile, 1, 1, shape, 1, 1) { IsVisible = false },
  84. // };
  85. // var layer = new TiledObjectLayer("object", objs);
  86. // m.AddLayer(layer);
  87. // r.Map = m;
  88. // r.Draw(new Matrix());
  89. // Assert.IsNull(gd.Indices);
  90. // }
  91. // [Fact]
  92. // public void Draw_MapObjectLayer_NoObjects_NoGroups()
  93. // {
  94. // var gd = TestHelper.CreateGraphicsDevice();
  95. // var r = new MockRenderer(gd);
  96. // var texture = Substitute.For<Texture2D>(gd, 64, 64);
  97. // var m = new TiledMap("test", 2, 2, 32, 32);
  98. // m.CreateTileset(texture, 0, 32, 32, 4);
  99. // TiledObject[] objs = {};
  100. // var layer = new TiledObjectLayer("object", objs);
  101. // m.AddLayer(layer);
  102. // r.Map = m;
  103. // r.Draw(new Matrix());
  104. // Assert.IsNull(gd.Indices);
  105. // }
  106. // [Fact]
  107. // public void Draw_MapTileLayer_TwoVisible_OneGroup()
  108. // {
  109. // var gd = TestHelper.CreateGraphicsDevice();
  110. // var r = new MockRenderer(gd);
  111. // var texture = Substitute.For<Texture2D>(gd, 64, 64);
  112. // var m = new TiledMap("test", 2, 2, 32, 32);
  113. // m.CreateTileset(texture, 0, 32, 32, 4);
  114. // m.CreateTileLayer("tile", 2, 2, new int[] { 1, 0, 1, 0 });
  115. // r.Map = m;
  116. // r.Draw(new Matrix());
  117. // Assert.NotNull(gd.Indices);
  118. // Assert.Equal(12, gd.Indices.IndexCount);
  119. // }
  120. // [Fact]
  121. // public void Draw_MapTileLayer_AllBlank_NoGroups()
  122. // {
  123. // var gd = TestHelper.CreateGraphicsDevice();
  124. // var r = new MockRenderer(gd);
  125. // var texture = Substitute.For<Texture2D>(gd, 64, 64);
  126. // var m = new TiledMap("test", 2, 2, 32, 32);
  127. // m.CreateTileset(texture, 0, 32, 32, 4);
  128. // m.CreateTileLayer("tile", 2, 2, new int[] { 0, 0, 0, 0 });
  129. // r.Map = m;
  130. // r.Draw(new Matrix());
  131. // Assert.IsNull(gd.Indices);
  132. // }
  133. // [Fact]
  134. // public void Draw_MapImageLayer_OneGroup()
  135. // {
  136. // var gd = TestHelper.CreateGraphicsDevice();
  137. // var r = new MockRenderer(gd);
  138. // var texture = Substitute.For<Texture2D>(gd, 64, 64);
  139. // var m = new TiledMap("test", 10, 10, 32, 32);
  140. // m.CreateImageLayer("img", texture, new Vector2(100, 100));
  141. // r.Map = m;
  142. // r.Draw(new Matrix());
  143. // Assert.NotNull(gd.Indices);
  144. // Assert.Equal(6, gd.Indices.IndexCount);
  145. // }
  146. // [Fact]
  147. // public void Draw_MapNoGroups()
  148. // {
  149. // var gd = TestHelper.CreateGraphicsDevice();
  150. // var r = new MockRenderer(gd);
  151. // r.Map = new TiledMap("test", 10, 10, 32, 32);
  152. // r.Draw(new Matrix());
  153. // Assert.IsNull(gd.Indices);
  154. // }
  155. // [Fact]
  156. // public void Draw_NoMap()
  157. // {
  158. // var gd = TestHelper.CreateGraphicsDevice();
  159. // var r = new MockRenderer(gd);
  160. // r.Draw(new Matrix());
  161. // Assert.IsNull(gd.Indices);
  162. // }
  163. // [Fact]
  164. // public void CreatePrimatives()
  165. // {
  166. // var gd = TestHelper.CreateGraphicsDevice();
  167. // var texture = Substitute.For<Texture2D>(gd, 64, 64);
  168. // var region = Substitute.For<TextureRegion2D>(texture, 1, 1, 32, 32);
  169. // VertexPositionTexture[] vertices;
  170. // ushort[] indexes;
  171. // var r = new MockRenderer(gd);
  172. // r.CreatePrimitives(new Point(0, 0), region, 0, 0.5f, out vertices, out indexes);
  173. // Assert.Equal(4, vertices.Length);
  174. // Assert.Equal(new Vector3(0, 0, .5f), vertices[0].Position);
  175. // Assert.Equal(new Vector2(0.0234375f, 0.0234375f), vertices[0].TextureCoordinate);
  176. // Assert.Equal(new Vector3(32, 0, .5f), vertices[1].Position);
  177. // Assert.Equal(new Vector2(0.515625f, 0.0234375f), vertices[1].TextureCoordinate);
  178. // Assert.Equal(new Vector3(0, 32, .5f), vertices[2].Position);
  179. // Assert.Equal(new Vector2(0.0234375f, 0.515625f), vertices[2].TextureCoordinate);
  180. // Assert.Equal(new Vector3(32, 32, .5f), vertices[3].Position);
  181. // Assert.Equal(new Vector2(0.515625f, 0.515625f), vertices[3].TextureCoordinate);
  182. // CollectionAssert.Equal(new[] { 0, 1, 2, 1, 3, 2 }, indexes);
  183. // }
  184. // [Fact]
  185. // public void CreatePrimatives_Offset10()
  186. // {
  187. // var gd = TestHelper.CreateGraphicsDevice();
  188. // var texture = Substitute.For<Texture2D>(gd, 64, 64);
  189. // var region = Substitute.For<TextureRegion2D>(texture, 1, 1, 32, 32);
  190. // VertexPositionTexture[] vertices;
  191. // ushort[] indexes;
  192. // var r = new MockRenderer(gd);
  193. // r.CreatePrimitives(new Point(0, 0), region, 10, 0.5f, out vertices, out indexes);
  194. // Assert.Equal(4, vertices.Length);
  195. // Assert.Equal(new Vector3(0, 0, .5f), vertices[0].Position);
  196. // Assert.Equal(new Vector2(0.0234375f, 0.0234375f), vertices[0].TextureCoordinate);
  197. // Assert.Equal(new Vector3(32, 0, .5f), vertices[1].Position);
  198. // Assert.Equal(new Vector2(0.515625f, 0.0234375f), vertices[1].TextureCoordinate);
  199. // Assert.Equal(new Vector3(0, 32, .5f), vertices[2].Position);
  200. // Assert.Equal(new Vector2(0.0234375f, 0.515625f), vertices[2].TextureCoordinate);
  201. // Assert.Equal(new Vector3(32, 32, .5f), vertices[3].Position);
  202. // Assert.Equal(new Vector2(0.515625f, 0.515625f), vertices[3].TextureCoordinate);
  203. // CollectionAssert.Equal(new[] { 40, 41, 42, 41, 43, 42 }, indexes);
  204. // }
  205. // }
  206. // internal class MockRenderer : TiledMapRenderer
  207. // {
  208. // public MockRenderer(GraphicsDevice graphicsDevice)
  209. // : base(graphicsDevice)
  210. // {
  211. // }
  212. // public void CreatePrimitives(Point point, TextureRegion2D region, int offset, float depth,
  213. // out VertexPositionTexture[] vertices, out ushort[] indexes)
  214. // {
  215. // base.CreatePrimitives(point, region, offset, depth, out vertices, out indexes);
  216. // }
  217. // public new void Draw(Matrix viewMatrix)
  218. // {
  219. // base.Draw(viewMatrix);
  220. // }
  221. // }
  222. //}