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

Commit feede2ae authored by Alex Sakhartchouk's avatar Alex Sakhartchouk
Browse files

fixing bugs 3053960, 3044804, 3044798

shader cleanup and removing unnecessary state setup.

Change-Id: Ibddf2ad3a26bb983fc43bdeb58b1cec6224920b4
parent e0ad63bf
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -241,6 +241,10 @@ bool Context::setupCheck()
    return true;
}

void Context::setupProgramStore() {
    mFragmentStore->setupGL2(this, &mStateFragmentStore);
}

static bool getProp(const char *str)
{
    char buf[PROPERTY_VALUE_MAX];
+1 −0
Original line number Diff line number Diff line
@@ -118,6 +118,7 @@ public:
    Font * getFont() {return mFont.get();}

    bool setupCheck();
    void setupProgramStore();
    bool checkDriver() const {return mEGL.mSurface != 0;}

    void pause();
+8 −0
Original line number Diff line number Diff line
@@ -115,6 +115,14 @@ Program::Program(Context *rsc, const char * shaderText, uint32_t shaderLength,

Program::~Program()
{
    if(mRSC->props.mLogShaders) {
        LOGV("Program::~Program with shader id %u", mShaderID);
    }

    if(mShaderID) {
        glDeleteShader(mShaderID);
    }

    for (uint32_t ct=0; ct < MAX_UNIFORMS; ct++) {
        bindAllocation(NULL, NULL, ct);
    }
+3 −0
Original line number Diff line number Diff line
@@ -49,6 +49,9 @@ ProgramFragment::ProgramFragment(Context *rsc, const char * shaderText,

ProgramFragment::~ProgramFragment()
{
    if(mShaderID) {
        mRSC->mShaderCache.cleanupFragment(mShaderID);
    }
}

void ProgramFragment::setConstantColor(Context *rsc, float r, float g, float b, float a)
+3 −9
Original line number Diff line number Diff line
@@ -45,15 +45,9 @@ ProgramVertex::ProgramVertex(Context *rsc, const char * shaderText,

ProgramVertex::~ProgramVertex()
{
    if(mShaderID) {
        mRSC->mShaderCache.cleanupVertex(mShaderID);
    }

static void logMatrix(const char *txt, const float *f)
{
    LOGV("Matrix %s, %p", txt, f);
    LOGV("%6.4f, %6.4f, %6.4f, %6.4f", f[0], f[4], f[8], f[12]);
    LOGV("%6.4f, %6.4f, %6.4f, %6.4f", f[1], f[5], f[9], f[13]);
    LOGV("%6.4f, %6.4f, %6.4f, %6.4f", f[2], f[6], f[10], f[14]);
    LOGV("%6.4f, %6.4f, %6.4f, %6.4f", f[3], f[7], f[11], f[15]);
}

void ProgramVertex::loadShader(Context *rsc) {
Loading