Ejemplo n.º 1
0
    //[ContextMenu("Halve Alpha Tex")]
    public void HalveAlphaTex()
    {
        D2D_AlphaTex.Load(alphaData, alphaWidth, alphaHeight);

        var oldWidth  = alphaWidth;
        var oldHeight = alphaHeight;

        originalWidth  /= 2;
        originalHeight /= 2;
        alphaWidth     /= 2;
        alphaHeight    /= 2;
        alphaX         /= 2;
        alphaY         /= 2;
        alphaShiftX    *= 2;
        alphaShiftY    *= 2;

        var shiftX = oldWidth - alphaWidth * 2;
        var shiftY = oldHeight - alphaHeight * 2;

        //D2D_AlphaTex.Halve();
        D2D_AlphaTex.Resize(alphaWidth, alphaHeight);

        UpdateAlphaWith(D2D_AlphaTex.Data, D2D_AlphaTex.Width, D2D_AlphaTex.Height);

        alphaShiftX += shiftX;
        alphaShiftY += shiftY;
    }
Ejemplo n.º 2
0
    public void BlurAlphaTex()
    {
        D2D_AlphaTex.Load(alphaData, alphaWidth, alphaHeight);

        D2D_AlphaTex.Blur();

        UpdateAlphaWith(D2D_AlphaTex.Data, D2D_AlphaTex.Width, D2D_AlphaTex.Height);
    }
Ejemplo n.º 3
0
    private static float GetAlphaOrDefault(int x, int y)
    {
        if (x >= pixelsL && y >= pixelsB && x < pixelsR && y < pixelsT)
        {
            return(D2D_AlphaTex.ConvertAlpha(pixels[x + y * pixelsW]));
        }

        return(default(float));
    }
Ejemplo n.º 4
0
    private void FastPaintBoth(int i, int x, int y, float opacity)
    {
        var color = alphaTex.GetPixel(x, y);
        var alpha = FastPaint(i, x, y, opacity);

        color.a = D2D_AlphaTex.ConvertAlpha(alpha);

        alphaTex.SetPixel(x, y, color);
    }
Ejemplo n.º 5
0
    private void DeserializeAlphaTex()
    {
        if (dirty == true || alphaTex == null)
        {
            dirty = false;

            if (alphaData != null)
            {
                alphaTex           = new Texture2D(alphaWidth, alphaHeight, TextureFormat.Alpha8, false);
                alphaTex.hideFlags = HideFlags.DontSave;
                alphaTex.wrapMode  = TextureWrapMode.Clamp;

                for (var y = 0; y < alphaHeight; y++)
                {
                    for (var x = 0; x < alphaWidth; x++)
                    {
                        var color = default(Color);
                        var alpha = alphaData[x + y * alphaWidth];

                        color.a = D2D_AlphaTex.ConvertAlpha(alpha);

                        alphaTex.SetPixel(x, y, color);
                    }
                }

                alphaTex.Apply();
            }
            else
            {
                DestroyAlphaTex();
            }
        }

        if (alphaTex != null)
        {
            if (Binary == true)
            {
                if (alphaTex.filterMode != FilterMode.Point)
                {
                    alphaTex.filterMode = FilterMode.Point;
                }
            }
            else
            {
                if (alphaTex.filterMode != FilterMode.Bilinear)
                {
                    alphaTex.filterMode = FilterMode.Bilinear;
                }
            }
        }
    }
Ejemplo n.º 6
0
    public void AddPixel(int x, int y)
    {
        var color = D2D_SplitBuilder.AlphaTex.GetPixel(x, y);

        AddPixel(x, y, D2D_AlphaTex.ConvertAlpha(color.a));
    }