public void Draw(GraphicsDeviceManager graphics, BasicEffect effect, AlphaTestEffect alpha) { if (indices != null && verts != null) { if (verts.Count > 0) { effect.TextureEnabled = textureEnabled; if (textureEnabled) { if (Game1.textures.ContainsKey(textureName)) { effect.Texture = Game1.textures[textureName]; if (alpha != null) { alpha.Texture = effect.Texture; } } else { //Console.WriteLine("missing texture: " + textureName); effect.Texture = Game1.textures["test"]; if (alpha != null) { alpha.Texture = effect.Texture; } } } foreach (var pass in (alpha != null ? alpha.CurrentTechnique.Passes : effect.CurrentTechnique.Passes)) { pass.Apply(); graphics.GraphicsDevice.DrawUserIndexedPrimitives( PrimitiveType.TriangleList, verts_sealed, 0, verts_sealed.Length, indices, 0, indices.Length / 3, VertexPositionColorTexture.VertexDeclaration ); } if (Samplers.EnableWireframe) { effect.TextureEnabled = false; Samplers.SetToDevice(graphics, EngineRasterizer.Wireframe); foreach (var pass in effect.CurrentTechnique.Passes) { pass.Apply(); graphics.GraphicsDevice.DrawUserIndexedPrimitives( PrimitiveType.TriangleList, verts_sealed, 0, verts_sealed.Length, indices, 0, indices.Length / 3, VertexPositionColorTexture.VertexDeclaration ); } Samplers.SetToDevice(graphics, EngineRasterizer.Default); } } else { Console.WriteLine("Empty QuadList!"); } } }