Ejemplo n.º 1
0
 public void Dispose()
 {
     _callbacks.Dispose();
     _material.Dispose();
     _bufferBinding.Dispose();
     _indexBuffer.Dispose();
 }
    /// <summary>
    /// Renders the Line Of Sight buffer for a given party member.
    /// </summary>
    public void RenderLineOfSight(IGameViewport viewport, int partyIndex)
    {
        var buffer = _system.GetLineOfSightBuffer(partyIndex, out var size, out var originTile);

        if (!_texture.IsValid || _texture.Resource.GetSize() != size)
        {
            _colorBuffer = new PackedLinearColorA[size.Width * size.Height];

            _texture.Dispose();
            _texture = _device.CreateDynamicTexture(BufferFormat.A8R8G8B8, size.Width, size.Height);
        }

        // Update color buffer
        for (int i = 0; i < buffer.Length; i++)
        {
            _colorBuffer[i] = GetColorFromLosFlags(buffer[i]);
        }

        var rawColorBuffer = MemoryMarshal.Cast <PackedLinearColorA, byte>(_colorBuffer);

        _texture.Resource.UpdateRaw(rawColorBuffer, size.Width * 4);

        var origin = new Vector4(originTile.ToInches3D(), 1);

        var widthVec  = new Vector4(size.Width * locXY.INCH_PER_SUBTILE, 0, 0, 0);
        var heightVec = new Vector4(0, 0, size.Height * locXY.INCH_PER_SUBTILE, 0);

        Span <ShapeVertex3d> corners = stackalloc ShapeVertex3d[4]
        {
            new ShapeVertex3d
            {
                pos = origin,
                uv  = new Vector2(0, 0)
            },
            new ShapeVertex3d
            {
                pos = origin + widthVec,
                uv  = new Vector2(1, 0)
            },
            new ShapeVertex3d
            {
                pos = origin + widthVec + heightVec,
                uv  = new Vector2(1, 1)
            },
            new ShapeVertex3d
            {
                pos = origin + heightVec,
                uv  = new Vector2(0, 1)
            }
        };

        Tig.ShapeRenderer3d.DrawQuad(viewport, corners, new PackedLinearColorA(255, 255, 255, 127), _texture.Resource);
    }
Ejemplo n.º 3
0
 public void Dispose()
 {
     _resourceListener.Dispose();
     _lineMaterial.Dispose();
     _quadMaterial.Dispose();
     _lineOccludedMaterial.Dispose();
     _discBufferBinding.Dispose();
     _lineBinding.Dispose();
     _circleBinding.Dispose();
 }
Ejemplo n.º 4
0
    private void UpdateBufferSize(bool force = false)
    {
        if (!force &&
            _originalFogSize.Width == _fogSystem._fogScreenBufferWidthSubtiles &&
            _originalFogSize.Height == _fogSystem._fogScreenBufferHeightSubtiles)
        {
            return;
        }

        _originalFogSize = new Size(
            _fogSystem._fogScreenBufferWidthSubtiles,
            _fogSystem._fogScreenBufferHeightSubtiles
            );

        _blurredFogTexture.Dispose();

        _blurredFogWidth  = (_originalFogSize.Width / 4) * 4 + 8;
        _blurredFogHeight = (_originalFogSize.Height / 4) * 4 + 8;

        _blurredFogTexture = _device.CreateDynamicTexture(BufferFormat.A8, _blurredFogWidth, _blurredFogHeight);
        _blurredFog        = new byte[_blurredFogWidth * _blurredFogHeight];

        CreateMaterial();
    }
Ejemplo n.º 5
0
 public void Dispose()
 {
     IndexBuffer.Dispose();
     BufferBinding.Dispose();
 }
Ejemplo n.º 6
0
 public void Dispose()
 {
     material.Dispose();
 }
 public void Dispose()
 {
     _indexBuffer.Dispose();
     _device?.Dispose();
 }
Ejemplo n.º 8
0
 private void FreeResources(RenderingDevice obj)
 {
     _discVertexBuffer.Dispose();
     _discIndexBuffer.Dispose();
 }
 public void Dispose()
 {
     _fogTexture.Dispose();
 }
Ejemplo n.º 10
0
 public void Dispose()
 {
     mTexture.Dispose();
 }
Ejemplo n.º 11
0
 public void Dispose()
 {
     _vertexBuffer.Dispose();
     _indexBuffer.Dispose();
     _bufferBinding.Dispose();
 }
Ejemplo n.º 12
0
    public override void Render()
    {
        var contentArea = GetContentArea();

        var destRect = GetContentArea();
        var srcRect  = new Rectangle(0, 0, destRect.Width, destRect.Height);

        destRect.Y -= 2;

        ResourceRef <ITexture> buttonTexture = default;

        try
        {
            switch (ButtonState)
            {
            case LgcyButtonState.Normal:
                buttonTexture = _normalTexture;
                break;

            case LgcyButtonState.Disabled:
                buttonTexture = _selectedTexture;
                break;

            case LgcyButtonState.Down:
                destRect.Width  += 3;
                destRect.Height += 3;
                srcRect.Width   += 3;
                srcRect.Height  += 3;
                buttonTexture    = _pressedTexture;
                break;

            case LgcyButtonState.Hovered:
                buttonTexture = _hoverTexture;
                break;

            default:
                buttonTexture = _normalTexture;
                break;
            }

            if (UiSystems.CharSheet.CurrentPage == _sheetPage)
            {
                Render2dArgs args = default;
                args.customTexture = _arcTopTexture.Resource;
                args.flags         = Render2dFlag.BUFFERTEXTURE;
                args.srcRect       = new Rectangle(0, 0, 21, 21);
                args.destRect      = new Rectangle(contentArea.X - 18, contentArea.Y + 5, 21, 21);
                Tig.ShapeRenderer2d.DrawRectangle(ref args);

                args.destRect.X = contentArea.X + contentArea.Width;
                args.flags     |= Render2dFlag.FLIPH;
                Tig.ShapeRenderer2d.DrawRectangle(ref args);

                if (ButtonState != LgcyButtonState.Down)
                {
                    srcRect.Width   += 3;
                    srcRect.Height  += 3;
                    destRect.Width  += 3;
                    destRect.Height += 3;
                    buttonTexture    = _selectedTexture;
                }
            }

            var buttonArgs = new Render2dArgs();
            buttonArgs.flags         = Render2dFlag.BUFFERTEXTURE;
            buttonArgs.srcRect       = srcRect;
            buttonArgs.destRect      = destRect;
            buttonArgs.customTexture = buttonTexture.Resource;
            Tig.ShapeRenderer2d.DrawRectangle(ref buttonArgs);
        }
        finally
        {
            buttonTexture.Dispose();
        }
    }
Ejemplo n.º 13
0
 protected override void FreeResource()
 {
     mDeviceMaterial.Dispose();
 }