Esempio n. 1
0
        private void Render(DeviceContext context, VertexColumnChart[] dataPerInstance)
        {
            if (dataPerInstance.Length == 0)
            {
                return;
            }

            RenderStatesRepo.ApplyStates(_engine.ImmediateContext, _rasterStateId, _blendStateId, _depthStateId);

            _effect.Begin(context);
            _effect.CBPerDraw.Values.ViewportSize = new Vector2(_engine.ViewPort.Width, _engine.ViewPort.Height);
            _effect.CBPerDraw.IsDirty             = true;
            _effect.Apply(context);

            _vBufferInstanced.SetInstancedData(context, dataPerInstance);
            _vBufferInstanced.SetToDevice(context, 0);

            context.DrawInstanced(2, dataPerInstance.Length, 0, 0);
        }
Esempio n. 2
0
        public override void Draw(DeviceContext context, int index)
        {
            RenderStatesRepo.ApplyStates(context, DXStates.Rasters.Default, DXStates.Blenders.Disabled, DXStates.DepthStencils.DepthReadWriteEnabled);
            _effect.Begin(_d3DEngine.ImmediateContext);


            var world = Matrix.Identity * Matrix.Translation(-(CloudGridSize / 2 * CloudBlockSize) + _smallOffset.X + (float)_cameraManager.ActiveCamera.WorldPosition.ValueInterp.X, 140, -(CloudGridSize / 2 * CloudBlockSize) + _smallOffset.Y + (float)_cameraManager.ActiveCamera.WorldPosition.ValueInterp.Z);

            _worldFocusManager.CenterTranslationMatrixOnFocus(ref world, ref world);

            _effect.CBPerDraw.Values.World      = Matrix.Transpose(world);
            _effect.CBPerDraw.Values.Brightness = _brightness;
            _effect.CBPerDraw.IsDirty           = true;

            _effect.Apply(_d3DEngine.ImmediateContext);

            //Set the buffers to the graphical card
            _instancedBuffer.SetToDevice(_d3DEngine.Device.ImmediateContext, 0);
            _indexBuffer.SetToDevice(_d3DEngine.Device.ImmediateContext, 0);

            _d3DEngine.ImmediateContext.DrawIndexedInstanced(36, _cloudBlocksCount, 0, 0, 0);
        }