Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 52a01449 authored by Jason Sams's avatar Jason Sams Committed by Android (Google) Code Review
Browse files

Merge "Fix RS mipmap generation for 8 bit alpha textures."

parents 2d51bff2 e20e3b41
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -366,6 +366,25 @@ static void mip8888(const Adapter2D &out, const Adapter2D &in)
    }
}

static void mip8(const Adapter2D &out, const Adapter2D &in)
{
    uint32_t w = out.getDimX();
    uint32_t h = out.getDimY();

    for (uint32_t y=0; y < h; y++) {
        uint8_t *oPtr = static_cast<uint8_t *>(out.getElement(0, y));
        const uint8_t *i1 = static_cast<uint8_t *>(in.getElement(0, y*2));
        const uint8_t *i2 = static_cast<uint8_t *>(in.getElement(0, y*2+1));

        for (uint32_t x=0; x < w; x++) {
            *oPtr = (uint8_t)(((uint32_t)i1[0] + i1[1] + i2[0] + i2[1]) * 0.25f);
            oPtr ++;
            i1 += 2;
            i2 += 2;
        }
    }
}

static void mip(const Adapter2D &out, const Adapter2D &in)
{
    switch(out.getBaseType()->getElement()->getSizeBits()) {
@@ -375,6 +394,9 @@ static void mip(const Adapter2D &out, const Adapter2D &in)
    case 16:
        mip565(out, in);
        break;
    case 8:
        mip8(out, in);
        break;

    }