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

Commit 0835d42b authored by Jason Sams's avatar Jason Sams
Browse files

Seperate Light and Sampler from RenderScript.java

parent 22534176
Loading
Loading
Loading
Loading
+87 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2008 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.renderscript;


import java.io.IOException;
import java.io.InputStream;

import android.content.res.Resources;
import android.os.Bundle;
import android.util.Config;
import android.util.Log;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;

/**
 * @hide
 *
 **/
public class Light extends BaseObj {
    Light(int id, RenderScript rs) {
        super(rs);
        mID = id;
    }

    public void destroy() {
        mRS.nLightDestroy(mID);
        mID = 0;
    }

    public void setColor(float r, float g, float b) {
        mRS.nLightSetColor(mID, r, g, b);
    }

    public void setPosition(float x, float y, float z) {
        mRS.nLightSetPosition(mID, x, y, z);
    }

    public static class Builder {
        RenderScript mRS;
        boolean mIsMono;
        boolean mIsLocal;

        public Builder(RenderScript rs) {
            mRS = rs;
            mIsMono = false;
            mIsLocal = false;
        }

        public void lightSetIsMono(boolean isMono) {
            mIsMono = isMono;
        }

        public void lightSetIsLocal(boolean isLocal) {
            mIsLocal = isLocal;
        }

        static synchronized Light internalCreate(RenderScript rs, Builder b) {
            rs.nSamplerBegin();
            rs.nLightSetIsMono(b.mIsMono);
            rs.nLightSetIsLocal(b.mIsLocal);
            int id = rs.nLightCreate();
            return new Light(id, rs);
        }

        public Light create() {
            return internalCreate(mRS, this);
        }
    }

}
+1 −1
Original line number Diff line number Diff line
@@ -52,7 +52,7 @@ public class ProgramFragment extends BaseObj {
        mRS.nProgramFragmentBindTexture(mID, slot, va.mID);
    }

    public void bindSampler(RenderScript.Sampler vs, int slot) {
    public void bindSampler(Sampler vs, int slot) {
        mRS.nProgramFragmentBindSampler(mID, slot, vs.mID);
    }

+0 −103
Original line number Diff line number Diff line
@@ -201,35 +201,6 @@ public class RenderScript {
        }
    }

    //////////////////////////////////////////////////////////////////////////////////
    // Element


    public enum SamplerParam {
        FILTER_MIN (0),
        FILTER_MAG (1),
        WRAP_MODE_S (2),
        WRAP_MODE_T (3),
        WRAP_MODE_R (4);

        int mID;
        SamplerParam(int id) {
            mID = id;
        }
    }

    public enum SamplerValue {
        NEAREST (0),
        LINEAR (1),
        LINEAR_MIP_LINEAR (2),
        WRAP (3),
        CLAMP (4);

        int mID;
        SamplerValue(int id) {
            mID = id;
        }
    }

    //////////////////////////////////////////////////////////////////////////////////
    // Triangle Mesh
@@ -329,80 +300,6 @@ public class RenderScript {
    }


    //////////////////////////////////////////////////////////////////////////////////
    // ProgramFragmentStore

    //////////////////////////////////////////////////////////////////////////////////
    // ProgramFragment

    //////////////////////////////////////////////////////////////////////////////////
    // Sampler

    public class Sampler extends BaseObj {
        Sampler(int id) {
            super(RenderScript.this);
            mID = id;
        }

        public void destroy() {
            nSamplerDestroy(mID);
            mID = 0;
        }
    }

    public void samplerBegin() {
        nSamplerBegin();
    }

    public void samplerSet(SamplerParam p, SamplerValue v) {
        nSamplerSet(p.mID, v.mID);
    }

    public Sampler samplerCreate() {
        int id = nSamplerCreate();
        return new Sampler(id);
    }

    //////////////////////////////////////////////////////////////////////////////////
    // Light

    public class Light extends BaseObj {
        Light(int id) {
            super(RenderScript.this);
            mID = id;
        }

        public void destroy() {
            nLightDestroy(mID);
            mID = 0;
        }

        public void setColor(float r, float g, float b) {
            nLightSetColor(mID, r, g, b);
        }

        public void setPosition(float x, float y, float z) {
            nLightSetPosition(mID, x, y, z);
        }
    }

    public void lightBegin() {
        nLightBegin();
    }

    public void lightSetIsMono(boolean isMono) {
        nLightSetIsMono(isMono);
    }

    public void lightSetIsLocal(boolean isLocal) {
        nLightSetIsLocal(isLocal);
    }

    public Light lightCreate() {
        int id = nLightCreate();
        return new Light(id);
    }

    //////////////////////////////////////////////////////////////////////////////////
    // File

+113 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2008 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.renderscript;


import java.io.IOException;
import java.io.InputStream;

import android.content.res.Resources;
import android.os.Bundle;
import android.util.Config;
import android.util.Log;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;

/**
 * @hide
 *
 **/
public class Sampler extends BaseObj {
    public enum Value {
        NEAREST (0),
        LINEAR (1),
        LINEAR_MIP_LINEAR (2),
        WRAP (3),
        CLAMP (4);

        int mID;
        Value(int id) {
            mID = id;
        }
    }

    Sampler(int id, RenderScript rs) {
        super(rs);
        mID = id;
    }

    public void destroy() {
        mRS.nSamplerDestroy(mID);
        mID = 0;
    }

    public static class Builder {
        RenderScript mRS;
        Value mMin;
        Value mMag;
        Value mWrapS;
        Value mWrapT;
        Value mWrapR;

        public Builder(RenderScript rs) {
            mRS = rs;
            mMin = Value.NEAREST;
            mMag = Value.NEAREST;
            mWrapS = Value.WRAP;
            mWrapT = Value.WRAP;
            mWrapR = Value.WRAP;
        }

        public void setMin(Value v) {
            mMin = v;
        }

        public void setMag(Value v) {
            mMag = v;
        }

        public void setWrapS(Value v) {
            mWrapS = v;
        }

        public void setWrapT(Value v) {
            mWrapT = v;
        }

        public void setWrapR(Value v) {
            mWrapR = v;
        }

        static synchronized Sampler internalCreate(RenderScript rs, Builder b) {
            rs.nSamplerBegin();
            rs.nSamplerSet(0, b.mMin.mID);
            rs.nSamplerSet(1, b.mMag.mID);
            rs.nSamplerSet(2, b.mWrapS.mID);
            rs.nSamplerSet(3, b.mWrapT.mID);
            rs.nSamplerSet(4, b.mWrapR.mID);
            int id = rs.nSamplerCreate();
            return new Sampler(id, rs);
        }

        public Sampler create() {
            return internalCreate(mRS, this);
        }
    }

}
+1 −12
Original line number Diff line number Diff line
@@ -5,15 +5,6 @@
#pragma stateFragment(PFBackground)
#pragma stateFragmentStore(PSBackground)

/*
typedef struct FilmScriptUserEnvRec {
    RsAllocation tex[13];
    int32_t triangleOffsets[64];
    float triangleOffsetsTex[64];
    int32_t triangleOffsetsCount;
} FilmScriptUserEnv;
*/

#define POS_TRANSLATE 0
#define POS_ROTATE 1
#define POS_FOCUS 2
@@ -39,9 +30,7 @@ int main(int index)
    matrixRotate(mat1, rot, 1.f, 0.f, 0.f);
    storeMatrix(3, 0, mat1);

    //materialDiffuse(con, 0.0f, 0.0f, 0.0f, 1.0f);
    //materialSpecular(con, 0.5f, 0.5f, 0.5f, 0.5f);
    //materialShininess(intToFloat(20));
    // Draw the lighting effect in the strip and fill the Z buffer.
    drawTriangleMesh(NAMED_mesh);


Loading