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

Commit 253e8e34 authored by Android (Google) Code Review's avatar Android (Google) Code Review
Browse files

Merge change 4533

* changes:
  Implement default programs and implement defaults and parents for imports.
parents 31708d46 9c54bdbf
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
// Fountain test script

#pragma version(1)
#pragma stateVertex(orthoWindow)
#pragma stateRaster(flat)
#pragma stateVertex(default)
#pragma stateFragment(PgmFragBackground)
#pragma stateFragmentStore(MyBlend)
#pragma stateFragmentStore(parent)


int main(void* con, int ft, int launchID) {
+0 −11
Original line number Diff line number Diff line
@@ -58,10 +58,8 @@ public class FountainRS {
    private RenderScript.ProgramFragmentStore mPFS;
    private RenderScript.ProgramFragment mPF;
    private RenderScript.ProgramFragment mPF2;
    private RenderScript.ProgramVertex mPV;
    private RenderScript.Allocation mTexture;
    private RenderScript.Sampler mSampler;
    private ProgramVertexAlloc mPVA;

    private Bitmap mBackground;

@@ -110,15 +108,6 @@ public class FountainRS {
        mPF2.bindSampler(mSampler, 0);
        mPF2.setName("PgmFragBackground");

        mRS.programVertexBegin(null, null);
        mPV = mRS.programVertexCreate();
        mPVA = new ProgramVertexAlloc(mRS);
        mPV.bindAllocation(0, mPVA.mAlloc);
        mPVA.setupOrthoWindow(320, 480);
        mRS.contextBindProgramVertex(mPV);




        mParams[0] = 0;
        mParams[1] = partCount;
+26 −6
Original line number Diff line number Diff line
@@ -119,6 +119,14 @@ void * Context::threadProc(void *vrsc)
     rsc->mServerReturns.init(128);

     rsc->initEGL();

     rsc->mStateVertex.init(rsc, rsc->mWidth, rsc->mHeight);
     rsc->setVertex(NULL);
     rsc->mStateFragment.init(rsc, rsc->mWidth, rsc->mHeight);
     rsc->setFragment(NULL);
     rsc->mStateFragmentStore.init(rsc, rsc->mWidth, rsc->mHeight);
     rsc->setFragmentStore(NULL);

     rsc->mRunning = true;
     bool mDraw = true;
     while (!rsc->mExit) {
@@ -212,20 +220,32 @@ void Context::setRootScript(Script *s)

void Context::setFragmentStore(ProgramFragmentStore *pfs)
{
    if (pfs == NULL) {
        mFragmentStore.set(mStateFragmentStore.mDefault);
    } else {
        mFragmentStore.set(pfs);
    pfs->setupGL();
    }
    mFragmentStore->setupGL();
}

void Context::setFragment(ProgramFragment *pf)
{
    if (pf == NULL) {
        mFragment.set(mStateFragment.mDefault);
    } else {
        mFragment.set(pf);
    pf->setupGL();
    }
    mFragment->setupGL();
}

void Context::setVertex(ProgramVertex *pv)
{
    if (pv == NULL) {
        mVertex.set(mStateVertex.mDefault);
    } else {
        mVertex.set(pv);
    pv->setupGL();
    }
    mVertex->setupGL();
}

void Context::assignName(ObjectBase *obj, const char *name, uint32_t len)
+11 −4
Original line number Diff line number Diff line
@@ -81,6 +81,17 @@ public:
    ObjectBase * lookupName(const char *name) const;
    void appendNameDefines(String8 *str) const;


    ProgramFragment * getDefaultProgramFragment() const {
        return mStateFragment.mDefault.get();
    }
    ProgramVertex * getDefaultProgramVertex() const {
        return mStateVertex.mDefault.get();
    }
    ProgramFragmentStore * getDefaultProgramFragmentStore() const {
        return mStateFragmentStore.mDefault.get();
    }

protected:
    Device *mDev;

@@ -107,10 +118,6 @@ protected:
    ObjectBaseRef<ProgramVertex> mVertex;
    ObjectBaseRef<ProgramFragmentStore> mFragmentStore;

    ProgramFragment * mDefaultFragment;
    ProgramVertex * mDefaultVertex;
    ProgramFragmentStore * mDefaultFragmentStore;

private:
    Context();

+22 −0
Original line number Diff line number Diff line
@@ -136,4 +136,26 @@ void Matrix::loadMultiply(const Matrix *lhs, const Matrix *rhs)
    }
}

void Matrix::loadOrtho(float l, float r, float b, float t, float n, float f) {
    loadIdentity();
    m[0] = 2 / (r - l);
    m[5] = 2 / (t - b);
    m[10]= -2 / (f - n);
    m[12]= -(r + l) / (r - l);
    m[13]= -(t + b) / (t - b);
    m[14]= -(f + n) / (f - n);
}

void Matrix::loadFrustum(float l, float r, float b, float t, float n, float f) {
    loadIdentity();
    m[0] = 2 * n / (r - l);
    m[5] = 2 * n / (t - b);
    m[8] = (r + l) / (r - l);
    m[9] = (t + b) / (t - b);
    m[10]= -(f + n) / (f - n);
    m[11]= -1;
    m[14]= -2*f*n / (f - n);
    m[15]= 0;
}

Loading