Esempio n. 1
0
        public Building(RgbaFloat color) : base("Building")
        {
            Resources.OnInitialize = (factory, device) => {
                _model.Buffer.Initialize(factory, device);
                _color = new UniformColor(color);
                _color.Buffer.Initialize(factory, device);

                ResourceLayout = factory.CreateResourceLayout(new ResourceLayoutDescription(
                                                                  new ResourceLayoutElementDescription[]
                {
                    UniformModelTransformation.ResourceLayout,
                    UniformViewProjection.ResourceLayout,
                    _color.LayoutDescription
                }
                                                                  ));

                ResourceSet = factory.CreateResourceSet(new ResourceSetDescription(
                                                            ResourceLayout,
                                                            _model.Buffer.DeviceBuffer,
                                                            CameraViewProjection.DeviceBuffer,
                                                            _color.Buffer.DeviceBuffer
                                                            ));
            };
            Resources.OnDispose = () => {
                _color.Buffer.Dispose();
                ResourceLayout.Dispose();
                ResourceSet.Dispose();
            };
        }
Esempio n. 2
0
        public Color(RgbaFloat?color = null) : base(nameof(Color))
        {
            _color = color.HasValue ? new UniformColor(color.Value) : new UniformColor();

            Resources.OnInitialize += (_, e) => {
                _color.Buffer.Initialize(e.ResourceFactory, e.GraphicsDevice);
            };
            Resources.OnDispose += (_, __) => _color.Buffer.Dispose();
        }