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

Commit 355383e4 authored by Alex Sakhartchouk's avatar Alex Sakhartchouk Committed by Android (Google) Code Review
Browse files

Merge "Fixing fragment shader bounding code"

parents 78e42751 caaac0f8
Loading
Loading
Loading
Loading
+11 −15
Original line number Diff line number Diff line
@@ -62,15 +62,6 @@ ProgramFragment::ProgramFragment(Context *rsc, const uint32_t * params,
        mTextureEnableMask |= 2;
    }

    mUniformCount = 0;
    mUniformNames[mUniformCount++].setTo("uni_Tex0");
    mUniformNames[mUniformCount++].setTo("uni_Tex1");

    mConstantColorUniformIndex = -1;
    //if (!mVaryingColor) {
        mConstantColorUniformIndex = mUniformCount;
        mUniformNames[mUniformCount++].setTo("uni_Color");
    //}
    init(rsc);
}

@@ -89,10 +80,6 @@ ProgramFragment::ProgramFragment(Context *rsc, const char * shaderText,

    LOGE("Custom FP");

    mUniformCount = 2;
    mUniformNames[0].setTo("uni_Tex0");
    mUniformNames[1].setTo("uni_Tex1");

    mTextureEnableMask = (1 << mTextureCount) -1;

    init(rsc);
@@ -156,7 +143,7 @@ void ProgramFragment::setupGL2(const Context *rsc, ProgramFragmentState *state,
            rsc->checkError("ProgramFragment::setupGL2 tex env");
        }

        glUniform1i(sc->fragUniformSlot(ct), ct);
        glUniform1i(sc->fragUniformSlot(mTextureUniformIndexStart + ct), ct);
        rsc->checkError("ProgramFragment::setupGL2 uniforms");
    }

@@ -177,12 +164,12 @@ void ProgramFragment::createShader()
    mShader.append("uniform vec4 uni_Color;\n");

    if (mUserShader.length() > 1) {
        appendUserConstants();
        for (uint32_t ct=0; ct < mTextureCount; ct++) {
            char buf[256];
            sprintf(buf, "uniform sampler2D uni_Tex%i;\n", ct);
            mShader.append(buf);
        }
        appendUserConstants();
        mShader.append(mUserShader);
    } else {
        uint32_t mask = mTextureEnableMask;
@@ -275,11 +262,20 @@ void ProgramFragment::createShader()

void ProgramFragment::init(Context *rsc)
{
    mUniformCount = 0;
    //if (!mVaryingColor) {
        mConstantColorUniformIndex = mUniformCount;
        mUniformNames[mUniformCount++].setTo("uni_Color");
    //}

    if (mUserShader.size() > 0) {
        for (uint32_t ct=0; ct < mConstantCount; ct++) {
            initAddUserElement(mConstantTypes[ct]->getElement(), mUniformNames, &mUniformCount, "UNI_");
        }
    }
    mTextureUniformIndexStart = mUniformCount;
    mUniformNames[mUniformCount++].setTo("uni_Tex0");
    mUniformNames[mUniformCount++].setTo("uni_Tex1");

    createShader();
}
+1 −0
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@ protected:

    float mConstantColor[4];
    int32_t mConstantColorUniformIndex;
    int32_t mTextureUniformIndexStart;
};

class ProgramFragmentState