Esempio n. 1
0
        private void InitializeContextObjects(RenderContext rc, MaterialCache materialCache, BufferCache bufferCache)
        {
            ResourceFactory factory = rc.ResourceFactory;

            _instanceDataVB = factory.CreateVertexBuffer(InstanceData.SizeInBytes * 10, true);
            _ib             = factory.CreateIndexBuffer(new[] { 0 }, false);

            if (_texture == null)
            {
                _texture = RawTextureDataArray <RgbaFloat> .FromSingleColor(RgbaFloat.Pink);
            }

            _deviceTexture  = _texture.CreateDeviceTexture(factory);
            _textureBinding = factory.CreateShaderTextureBinding(_deviceTexture);

            _material = materialCache.GetMaterial(rc,
                                                  "passthrough-vertex", "billboard-geometry", "particle-fragment",
                                                  s_vertexInputs,
                                                  s_globalInputs,
                                                  s_perObjectInputs,
                                                  s_textureInputs);
            _depthStencilState = factory.CreateDepthStencilState(true, DepthComparison.LessEqual, true);

#if DEBUG_PARTICLE_BOUNDS
            var briwr = new BoundsRenderItemWireframeRenderer(this, rc);
            _gs.AddRenderItem(briwr, Transform);
#endif

            _initialized = true;
        }
Esempio n. 2
0
        public void ToggleBoundsRenderer()
        {
            _boundsRendererEnabled = !_boundsRendererEnabled;
            if (_boundsRendererEnabled)
            {
                if (_boundsRenderer == null)
                {
                    _boundsRenderer = new BoundsRenderItemWireframeRenderer(this, _gs.Context);
                }

                _gs.AddRenderItem(_boundsRenderer, Transform);
            }

            else
            {
                if (_boundsRenderer != null)
                {
                    _gs.RemoveRenderItem(_boundsRenderer);
                }
            }
        }