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; }
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); } } }