Exemplo n.º 1
0
        public Models(int numPipelines = 1)
        {
            NumPipelines = numPipelines;
            CheckDeviceCapabilities();

            SharedModel        = new SharedModel();
            Images             = new ImagesModel(SharedModel.ScaleShader);
            TextureCache       = new TextureCache(Images);
            pixelValueShader   = new PixelValueShader(SharedModel);
            polarConvertShader = new ConvertPolarShader(SharedModel.QuadShader);

            Export = new ExportModel(SharedModel);
            Filter = new FiltersModel(Images);
            //Gif = new GifModel(sharedModel.QuadShader);
            Progress = new ProgressModel();

            for (int i = 0; i < numPipelines; ++i)
            {
                pipelines.Add(new ImagePipeline(i));
                pipelines.Last().PropertyChanged += PipeOnPropertyChanged;
            }
            Pipelines = pipelines;

            stats     = new StatisticsModel(SharedModel);
            thumbnail = new ThumbnailModel(SharedModel.QuadShader);

            // pipeline controller
            pipelineController = new PipelineController(this);
        }
Exemplo n.º 2
0
        public async void BulkInsert_No_Errors()
        {
            PipelineControllerMockFacade mock = new PipelineControllerMockFacade();

            var mockResponse = new CreateResponse <ApiPipelineResponseModel>(new FluentValidation.Results.ValidationResult());

            mockResponse.SetRecord(new ApiPipelineResponseModel());
            mock.ServiceMock.Setup(x => x.Create(It.IsAny <ApiPipelineRequestModel>())).Returns(Task.FromResult <CreateResponse <ApiPipelineResponseModel> >(mockResponse));
            PipelineController controller = new PipelineController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            var records = new List <ApiPipelineRequestModel>();

            records.Add(new ApiPipelineRequestModel());
            IActionResult response = await controller.BulkInsert(records);

            response.Should().BeOfType <OkObjectResult>();
            (response as OkObjectResult).StatusCode.Should().Be((int)HttpStatusCode.OK);
            var result = (response as OkObjectResult).Value as List <ApiPipelineResponseModel>;

            result.Should().NotBeEmpty();
            mock.ServiceMock.Verify(x => x.Create(It.IsAny <ApiPipelineRequestModel>()));
        }
Exemplo n.º 3
0
 public Instruction()
 {
     EM     = GameObject.FindGameObjectWithTag("SceneManager").GetComponent <EntityManager>();
     CM     = EM.GetComponent <TaskManager>();
     Player = GameObject.FindGameObjectWithTag("Player").GetComponent <Entity>();
     PC     = GameObject.FindGameObjectWithTag("Pipeline").GetComponent <PipelineController>();
 }
Exemplo n.º 4
0
        public async void Patch_No_Errors()
        {
            PipelineControllerMockFacade mock = new PipelineControllerMockFacade();
            var mockResult = new Mock <UpdateResponse <ApiPipelineResponseModel> >();

            mockResult.SetupGet(x => x.Success).Returns(true);
            mock.ServiceMock.Setup(x => x.Update(It.IsAny <int>(), It.IsAny <ApiPipelineRequestModel>()))
            .Callback <int, ApiPipelineRequestModel>(
                (id, model) => model.PipelineStatusId.Should().Be(1)
                )
            .Returns(Task.FromResult <UpdateResponse <ApiPipelineResponseModel> >(mockResult.Object));
            mock.ServiceMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult <ApiPipelineResponseModel>(new ApiPipelineResponseModel()));
            PipelineController controller = new PipelineController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, new ApiPipelineModelMapper());

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            var patch = new JsonPatchDocument <ApiPipelineRequestModel>();

            patch.Replace(x => x.PipelineStatusId, 1);

            IActionResult response = await controller.Patch(default(int), patch);

            response.Should().BeOfType <OkObjectResult>();
            (response as OkObjectResult).StatusCode.Should().Be((int)HttpStatusCode.OK);
            mock.ServiceMock.Verify(x => x.Update(It.IsAny <int>(), It.IsAny <ApiPipelineRequestModel>()));
        }
Exemplo n.º 5
0
        /// <summary>
        /// 解析操作
        /// </summary>
        /// <param name="cron">cron表达式字符串</param>
        public override void Resolve(string cron)
        {
            string _cron = GetTargetCronSlice(TimeFormat.Second, cron);
            Tuple <bool, string, dynamic> value = PipelineController.SecondDisposePipeline(_cron);

            if (value.Item1)
            {
                this.CronResolve.CronExpression.Days = value.Item3;
            }
        }
Exemplo n.º 6
0
        /// <summary>
        /// Initialization of tracking thread
        /// </summary>
        private void InitPipelineThread(UserDefinedParametersPrototypeFactory userParameters)
        {
            var thread = new Thread(() =>
            {
                var processingController =
                    new PipelineController(ProcessingCommandsQueue, ProcessingOutputQueue, userParameters);
                processingController.Start();
            })
            {
                IsBackground = true
            };

            thread.Start();
        }
Exemplo n.º 7
0
        public async void Get_Not_Exists()
        {
            PipelineControllerMockFacade mock = new PipelineControllerMockFacade();

            mock.ServiceMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult <ApiPipelineResponseModel>(null));
            PipelineController controller = new PipelineController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            IActionResult response = await controller.Get(default(int));

            response.Should().BeOfType <StatusCodeResult>();
            (response as StatusCodeResult).StatusCode.Should().Be((int)HttpStatusCode.NotFound);
            mock.ServiceMock.Verify(x => x.Get(It.IsAny <int>()));
        }
Exemplo n.º 8
0
        public async void Delete_Errors()
        {
            PipelineControllerMockFacade mock = new PipelineControllerMockFacade();
            var mockResult = new Mock <ActionResponse>();

            mockResult.SetupGet(x => x.Success).Returns(false);
            mock.ServiceMock.Setup(x => x.Delete(It.IsAny <int>())).Returns(Task.FromResult <ActionResponse>(mockResult.Object));
            PipelineController controller = new PipelineController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            IActionResult response = await controller.Delete(default(int));

            response.Should().BeOfType <ObjectResult>();
            (response as ObjectResult).StatusCode.Should().Be((int)HttpStatusCode.UnprocessableEntity);
            mock.ServiceMock.Verify(x => x.Delete(It.IsAny <int>()));
        }
Exemplo n.º 9
0
        public async void All_Not_Exists()
        {
            PipelineControllerMockFacade mock = new PipelineControllerMockFacade();

            mock.ServiceMock.Setup(x => x.All(It.IsAny <int>(), It.IsAny <int>())).Returns(Task.FromResult <List <ApiPipelineResponseModel> >(new List <ApiPipelineResponseModel>()));
            PipelineController controller = new PipelineController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            IActionResult response = await controller.All(1000, 0);

            response.Should().BeOfType <OkObjectResult>();
            (response as OkObjectResult).StatusCode.Should().Be((int)HttpStatusCode.OK);
            var items = (response as OkObjectResult).Value as List <ApiPipelineResponseModel>;

            items.Should().BeEmpty();
            mock.ServiceMock.Verify(x => x.All(It.IsAny <int>(), It.IsAny <int>()));
        }
Exemplo n.º 10
0
        public async void Update_NotFound()
        {
            PipelineControllerMockFacade mock = new PipelineControllerMockFacade();
            var mockResult = new Mock <UpdateResponse <ApiPipelineResponseModel> >();

            mockResult.SetupGet(x => x.Success).Returns(false);
            mock.ServiceMock.Setup(x => x.Update(It.IsAny <int>(), It.IsAny <ApiPipelineRequestModel>())).Returns(Task.FromResult <UpdateResponse <ApiPipelineResponseModel> >(mockResult.Object));
            mock.ServiceMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult <ApiPipelineResponseModel>(null));
            PipelineController controller = new PipelineController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, new ApiPipelineModelMapper());

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            IActionResult response = await controller.Update(default(int), new ApiPipelineRequestModel());

            response.Should().BeOfType <StatusCodeResult>();
            (response as StatusCodeResult).StatusCode.Should().Be((int)HttpStatusCode.NotFound);
            mock.ServiceMock.Verify(x => x.Get(It.IsAny <int>()));
        }
Exemplo n.º 11
0
        public MGPad()
        {
            try
            {
                _application = new Application(Platforms.Gtk2);
                _application.Attach();
            }
            catch
            {
                // Ok, Eto Forms extension already loaded a backend
            }

            DrawInfo.TextFont   = new Font(".AppleSystemUIFont", 12);
            DrawInfo.TextHeight = (int)DrawInfo.TextFont.LineHeight;

            if (IdeApp.Preferences.UserInterfaceTheme == Theme.Dark)
            {
                DrawInfo.TextColor      = new Color(0.843f, 0.843f, 0.843f);
                DrawInfo.BackColor      = new Color(0.251f, 0.251f, 0.251f);
                DrawInfo.HoverTextColor = new Color(1f, 1f, 1f);
                DrawInfo.HoverBackColor = new Color(0.129f, 0.341f, 0.800f);
                DrawInfo.BorderColor    = new Color(0.322f, 0.322f, 0.322f);
            }
            else
            {
                DrawInfo.TextColor      = new Color(0.153f, 0.153f, 0.153f);
                DrawInfo.BackColor      = new Color(1f, 1f, 1f);
                DrawInfo.HoverTextColor = new Color(1f, 1f, 1f);
                DrawInfo.HoverBackColor = new Color(0.129f, 0.341f, 0.800f);
                DrawInfo.BorderColor    = new Color(0.871f, 0.871f, 0.871f);
            }

            DrawInfo.DisabledTextColor   = DrawInfo.TextColor;
            DrawInfo.DisabledTextColor.A = 0.6f;

            _window = new MainWindow();
            PipelineController.Create(_window);

            _control = _window.ToNative(true);
            _control.ShowAll();
        }
Exemplo n.º 12
0
        public async void Patch_Record_Not_Found()
        {
            PipelineControllerMockFacade mock = new PipelineControllerMockFacade();
            var mockResult = new Mock <ActionResponse>();

            mock.ServiceMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult <ApiPipelineResponseModel>(null));
            PipelineController controller = new PipelineController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            var patch = new JsonPatchDocument <ApiPipelineRequestModel>();

            patch.Replace(x => x.PipelineStatusId, 1);

            IActionResult response = await controller.Patch(default(int), patch);

            response.Should().BeOfType <StatusCodeResult>();
            (response as StatusCodeResult).StatusCode.Should().Be((int)HttpStatusCode.NotFound);
            mock.ServiceMock.Verify(x => x.Get(It.IsAny <int>()));
        }
Exemplo n.º 13
0
        public async void Create_No_Errors()
        {
            PipelineControllerMockFacade mock = new PipelineControllerMockFacade();

            var mockResponse = ValidationResponseFactory <ApiPipelineServerResponseModel> .CreateResponse(null as ApiPipelineServerResponseModel);

            mockResponse.SetRecord(new ApiPipelineServerResponseModel());
            mock.ServiceMock.Setup(x => x.Create(It.IsAny <ApiPipelineServerRequestModel>())).Returns(Task.FromResult <CreateResponse <ApiPipelineServerResponseModel> >(mockResponse));
            PipelineController controller = new PipelineController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            IActionResult response = await controller.Create(new ApiPipelineServerRequestModel());

            response.Should().BeOfType <CreatedResult>();
            (response as CreatedResult).StatusCode.Should().Be((int)HttpStatusCode.Created);
            var createResponse = (response as CreatedResult).Value as CreateResponse <ApiPipelineServerResponseModel>;

            createResponse.Record.Should().NotBeNull();
            mock.ServiceMock.Verify(x => x.Create(It.IsAny <ApiPipelineServerRequestModel>()));
        }
Exemplo n.º 14
0
        public ParticleRenderer(Graphics g, Texture2D tex, Sprite sprite, string vertexShader, string fragmentShader, int maxParticles = 1024)
        {
            MaxParticles  = maxParticles;
            Graphics      = g;
            Texture       = tex;
            Sprite        = sprite;
            Instances     = VKBuffer.InstanceInfo <ParticleInfo>(g, maxParticles);
            UProjection   = VKBuffer.UniformBuffer <ViewProjection>(g, 1);
            UTime         = VKBuffer.UniformBuffer <float>(g, 1);
            USpriteCoords = VKBuffer.UniformBuffer <SpriteCoords>(g, 1);
            UColor        = VKBuffer.UniformBuffer <Color4>(g, 1);
            var spriteCoords = new SpriteCoords
            {
                LeftTop     = sprite.LeftTop / Texture.SizeF,
                RightBottom = sprite.RightBottom / Texture.SizeF,
                Center      = sprite.TextureCenter
            };

            USpriteCoords.Write(ref spriteCoords);
            var color = Color4.White;

            UColor.Write(ref color);

            Pipeline = new PipelineController(Graphics);
            Pipeline.ClearDepthOnBeginPass = true;
            Pipeline.DepthTest             = false;
            Pipeline.DepthWrite            = false;
            Pipeline.BlendMode             = BlendMode.AlphaPremultiplied;
            Pipeline.Instancing            = true;
            Pipeline.InstanceInfoType      = typeof(ParticleInfo);
            Pipeline.Shaders         = new[] { vertexShader, fragmentShader };
            Pipeline.DescriptorItems = new[] {
                DescriptorItem.UniformBuffer(DescriptorItem.ShaderType.Vertex, UProjection),
                DescriptorItem.UniformBuffer(DescriptorItem.ShaderType.Vertex, UTime),
                DescriptorItem.UniformBuffer(DescriptorItem.ShaderType.Vertex, USpriteCoords),
                DescriptorItem.UniformBuffer(DescriptorItem.ShaderType.Fragment, UColor),
                DescriptorItem.CombinedImageSampler(DescriptorItem.ShaderType.Fragment, tex, DescriptorItem.SamplerFilter.Nearest, DescriptorItem.SamplerFilter.Nearest)
            };
        }
Exemplo n.º 15
0
        public Models(int numPipelines = 1)
        {
            NumPipelines = numPipelines;
            CheckDeviceCapabilities();

            SharedModel  = new SharedModel();
            Images       = new ImagesModel(SharedModel.ScaleShader);
            TextureCache = new ImageModelTextureCache(Images);

            Filter   = new FiltersModel(Images);
            Progress = new ProgressModel();

            for (int i = 0; i < numPipelines; ++i)
            {
                pipelines.Add(new ImagePipeline(i));
                pipelines.Last().PropertyChanged += PipeOnPropertyChanged;
            }
            Pipelines = pipelines;

            // pipeline controller
            pipelineController = new PipelineController(this);
        }
Exemplo n.º 16
0
        public async void BulkInsert_Errors()
        {
            PipelineControllerMockFacade mock = new PipelineControllerMockFacade();

            var mockResponse = new Mock <CreateResponse <ApiPipelineServerResponseModel> >(null as ApiPipelineServerResponseModel);

            mockResponse.SetupGet(x => x.Success).Returns(false);

            mock.ServiceMock.Setup(x => x.Create(It.IsAny <ApiPipelineServerRequestModel>())).Returns(Task.FromResult <CreateResponse <ApiPipelineServerResponseModel> >(mockResponse.Object));
            PipelineController controller = new PipelineController(mock.ApiSettingsMoc.Object, mock.LoggerMock.Object, mock.TransactionCoordinatorMock.Object, mock.ServiceMock.Object, mock.ModelMapperMock.Object);

            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            var records = new List <ApiPipelineServerRequestModel>();

            records.Add(new ApiPipelineServerRequestModel());
            IActionResult response = await controller.BulkInsert(records);

            response.Should().BeOfType <ObjectResult>();
            (response as ObjectResult).StatusCode.Should().Be((int)HttpStatusCode.UnprocessableEntity);
            mock.ServiceMock.Verify(x => x.Create(It.IsAny <ApiPipelineServerRequestModel>()));
        }
Exemplo n.º 17
0
        public CharRenderer(Graphics g, Texture2D tex, string vertexShader, string fragmentShader, int maxChars = 1024)
        {
            MaxChars    = maxChars;
            Graphics    = g;
            Texture     = tex;
            Instances   = VKBuffer.InstanceInfo <CharInfo>(g, MaxChars);
            UProjection = VKBuffer.UniformBuffer <ViewProjection>(g, 1);
            UTime       = VKBuffer.UniformBuffer <float>(g, 1);

            Pipeline = new PipelineController(Graphics);
            Pipeline.ClearDepthOnBeginPass = true;
            Pipeline.DepthTest             = false;
            Pipeline.DepthWrite            = false;
            Pipeline.BlendMode             = BlendMode.AlphaPremultiplied;
            Pipeline.Instancing            = true;
            Pipeline.InstanceInfoType      = typeof(CharInfo);
            Pipeline.Shaders         = new[] { vertexShader, fragmentShader };
            Pipeline.DescriptorItems = new[] {
                DescriptorItem.UniformBuffer(DescriptorItem.ShaderType.Vertex, UProjection),
                DescriptorItem.UniformBuffer(DescriptorItem.ShaderType.Vertex, UTime),
                DescriptorItem.CombinedImageSampler(DescriptorItem.ShaderType.Fragment, tex, DescriptorItem.SamplerFilter.Nearest, DescriptorItem.SamplerFilter.Nearest)
            };
        }
Exemplo n.º 18
0
        protected override void OnInit()
        {
            base.OnInit();

            var rot = Matrix4.CreateRotationX(0) * Matrix4.CreateRotationY(0) * Matrix4.CreateRotationZ(90);

            Console.WriteLine(rot);
            Console.WriteLine(Matrix4.CreateRotation(new Angle(30f, 45f, 30f)).Rotation);

            Positions = new Vector3[Billboards];
            var rand = new Random();

            for (var i = 0; i < Billboards; i++)
            {
                Positions[i] = new Vector3(-200f + (float)rand.NextDouble() * 400f, -200f + (float)rand.NextDouble() * 400f, 0f);
            }

            Instances = VKBuffer.InstanceInfo <InstanceInfo>(Graphics, Billboards);
            Instances.Write(Positions);
            BViewProjection = VKBuffer.UniformBuffer <ViewProjection>(Graphics, 1);
            var testImg = Content.Get <Image>("Data/tex.png");

            using (var imgBuilder = new ImageBuilder(testImg))
            {
                var data = imgBuilder.GetData();
                for (var i = 0; i < data.Length; i += 4)
                {
                    data[i + 2] += 128;
                }
                imgBuilder.SetData(data);
                imgBuilder.Finish();
                TestTex = Texture2D.FromBitmap(Graphics, imgBuilder, new Rectangle[] { new Rectangle(Point.Empty, testImg.Size) });
            }

            Pipeline                  = new PipelineController(Graphics);
            Pipeline.DepthTest        = true;
            Pipeline.DepthWrite       = true;
            Pipeline.BlendMode        = BlendMode.Alpha;
            Pipeline.Instancing       = true;
            Pipeline.InstanceInfoType = typeof(InstanceInfo);
            Pipeline.Shaders          = new[] { "Data/billboard.vert.spv", "Data/billboard.frag.spv" };
            Pipeline.DescriptorItems  = new[] {
                DescriptorItem.UniformBuffer(DescriptorItem.ShaderType.Vertex, BViewProjection),
                DescriptorItem.CombinedImageSampler(DescriptorItem.ShaderType.Fragment, TestTex, DescriptorItem.SamplerFilter.Nearest, DescriptorItem.SamplerFilter.Nearest)
            };
            Pipeline.Build();

            /*var font = SpriteFont.FromSprites(
             *  Graphics, Content.Get<Texture2D>("Data/ascii.png"), new Vector2(10f, 18f), Vector2.Zero, new Vector2(16f, 16f), 256 / 16,
             *  " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
             * );*/
            var font = SpriteFont.FromFont(Graphics, "Arial", FontStyle.Regular, 20.0f, 20f, true, '\n', (char)127, 16);

            TextRenderer = new TextRenderer(Graphics, font, "Data/text.vert.spv", "Data/text.frag.spv", 128);
            TextRenderer.BuildPipeline();
            TextInstances = new[] { new TextRenderer.TextInstance(Vector2.Zero, Vector2.One, Color4.LightGray, 1, new Color4(0f, 0f, 0f, 1f), new Vector2(0f, 0f), Vector2.Zero, "N/A") };

            MeshRenderer = new MeshRenderer(Graphics, Content.Get <Texture2D>("Data/tex.png"), "Data/mesh.vert.spv", "Data/mesh.frag.spv", 32, 4);
            MeshRenderer.BuildPipeline();
            MeshRenderer.SetMeshInfo(
                new[] {
                MeshRenderer.CreateMeshInfo(
                    Mesh.FromPolygon(Graphics, new[]
                {
                    new Vertex(new Vector3(-180f, -90f, 0f), new Vector3(0f, 0f, 1f), new Vector2(0f, 0f), Color4.White),
                    new Vertex(new Vector3(0f, -180f, 0f), new Vector3(0f, 0f, 1f), new Vector2(0.5f, 0f), Color4.White),
                    new Vertex(new Vector3(180f, 0f, 0f), new Vector3(0f, 0f, 1f), new Vector2(1f, 0.2f), Color4.White),
                    new Vertex(new Vector3(0f, 120f, 0f), new Vector3(0f, 0f, 1f), new Vector2(0f, 1f), Color4.White),
                    new Vertex(new Vector3(-180f, 90f, 0f), new Vector3(0f, 0f, 1f), new Vector2(0.1f, 1f), Color4.White)
                }),
                    new Sprite(new Vector2(0f, 0f), new Vector2(64f, 64f)),
                    new Vector3(400f, 300f, 0f),
                    Vector3.One,
                    Matrix4.CreateRotationZ(0f),
                    Vector3.Zero
                    ),
                MeshRenderer.CreateMeshInfo(
                    new Mesh(
                        Graphics,
                        new Vertex[]
                {
                    new Vertex(new Vector3(-180f, -90f, 0f), new Vector3(0f, 0f, 1f), new Vector2(0f, 0f), Color4.White),
                    new Vertex(new Vector3(0f, -90f, 0f), new Vector3(0f, 0f, 1f), new Vector2(1f, 0f), Color4.White),
                    new Vertex(new Vector3(180f, 90f, 0f), new Vector3(0f, 0f, 1f), new Vector2(1f, 1f), Color4.White),
                    new Vertex(new Vector3(0f, 90f, 0f), new Vector3(0f, 0f, 1f), new Vector2(0f, 1f), Color4.White)
                },
                        new int[] { 0, 1, 2, 2, 3, 0 }
                        ),
                    new Sprite(new Vector2(0f, 0f), new Vector2(64f, 64f)),
                    new Vector3(580f, 300f, 0f),
                    Vector3.One,
                    Matrix4.CreateRotationZ(0f),
                    Vector3.Zero
                    )
            },
                2
                );

            ParticleRenderer = new ParticleRenderer(
                Graphics, Content.Get <Texture2D>("Data/fire.png"),
                new Sprite(Vector2.Zero, new Vector2(64f, 64f), new Vector2(64f, 64f)),
                "Data/particle.vert.spv", "Data/particle.frag.spv", 900000
                );
            ParticleRenderer.BlendMode = BlendMode.Add;
            ParticleRenderer.BuildPipeline();
        }