Loading graphics/java/android/renderscript/Program.java +34 −1 Original line number Diff line number Diff line Loading @@ -69,6 +69,7 @@ public class Program extends BaseObj { Element mOutputs[]; Type mConstants[]; TextureType mTextures[]; String mTextureNames[]; int mTextureCount; String mShader; Loading Loading @@ -110,6 +111,16 @@ public class Program extends BaseObj { return mTextures[slot]; } /** * @hide */ public String getTextureName(int slot) { if ((slot < 0) || (slot >= mTextureCount)) { throw new IllegalArgumentException("Slot ID out of range."); } return mTextureNames[slot]; } /** * Binds a constant buffer to be used as uniform inputs to the * program Loading Loading @@ -180,6 +191,7 @@ public class Program extends BaseObj { Type mConstants[]; Type mTextures[]; TextureType mTextureTypes[]; String mTextureNames[]; int mInputCount; int mOutputCount; int mConstantCount; Loading @@ -197,6 +209,7 @@ public class Program extends BaseObj { mConstantCount = 0; mTextureCount = 0; mTextureTypes = new TextureType[MAX_TEXTURE]; mTextureNames = new String[MAX_TEXTURE]; } /** Loading Loading @@ -300,10 +313,28 @@ public class Program extends BaseObj { * @return self */ public BaseProgramBuilder addTexture(TextureType texType) throws IllegalArgumentException { addTexture(texType, "Tex" + mTextureCount); return this; } /** * @hide * Adds a texture input to the Program * * @param texType describes that the texture to append it (2D, * Cubemap, etc.) * @param texName what the texture should be called in the * shader * @return self */ public BaseProgramBuilder addTexture(TextureType texType, String texName) throws IllegalArgumentException { if(mTextureCount >= MAX_TEXTURE) { throw new IllegalArgumentException("Max texture count exceeded."); } mTextureTypes[mTextureCount ++] = texType; mTextureTypes[mTextureCount] = texType; mTextureNames[mTextureCount] = texName; mTextureCount ++; return this; } Loading @@ -317,6 +348,8 @@ public class Program extends BaseObj { p.mTextureCount = mTextureCount; p.mTextures = new TextureType[mTextureCount]; System.arraycopy(mTextureTypes, 0, p.mTextures, 0, mTextureCount); p.mTextureNames = new String[mTextureCount]; System.arraycopy(mTextureNames, 0, p.mTextureNames, 0, mTextureCount); } } Loading graphics/java/android/renderscript/ProgramFragment.java +3 −1 Original line number Diff line number Diff line Loading @@ -59,6 +59,7 @@ public class ProgramFragment extends Program { public ProgramFragment create() { mRS.validate(); int[] tmp = new int[(mInputCount + mOutputCount + mConstantCount + mTextureCount) * 2]; String[] texNames = new String[mTextureCount]; int idx = 0; for (int i=0; i < mInputCount; i++) { Loading @@ -76,9 +77,10 @@ public class ProgramFragment extends Program { for (int i=0; i < mTextureCount; i++) { tmp[idx++] = ProgramParam.TEXTURE_TYPE.mID; tmp[idx++] = mTextureTypes[i].mID; texNames[i] = mTextureNames[i]; } int id = mRS.nProgramFragmentCreate(mShader, tmp); int id = mRS.nProgramFragmentCreate(mShader, texNames, tmp); ProgramFragment pf = new ProgramFragment(id, mRS); initProgram(pf); return pf; Loading graphics/java/android/renderscript/ProgramFragmentFixedFunction.java +3 −1 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ public class ProgramFragmentFixedFunction extends ProgramFragment { public ProgramFragmentFixedFunction create() { mRS.validate(); int[] tmp = new int[(mInputCount + mOutputCount + mConstantCount + mTextureCount) * 2]; String[] texNames = new String[mTextureCount]; int idx = 0; for (int i=0; i < mInputCount; i++) { Loading @@ -64,9 +65,10 @@ public class ProgramFragmentFixedFunction extends ProgramFragment { for (int i=0; i < mTextureCount; i++) { tmp[idx++] = ProgramParam.TEXTURE_TYPE.mID; tmp[idx++] = mTextureTypes[i].mID; texNames[i] = mTextureNames[i]; } int id = mRS.nProgramFragmentCreate(mShader, tmp); int id = mRS.nProgramFragmentCreate(mShader, texNames, tmp); ProgramFragmentFixedFunction pf = new ProgramFragmentFixedFunction(id, mRS); initProgram(pf); return pf; Loading graphics/java/android/renderscript/ProgramVertex.java +3 −1 Original line number Diff line number Diff line Loading @@ -116,6 +116,7 @@ public class ProgramVertex extends Program { public ProgramVertex create() { mRS.validate(); int[] tmp = new int[(mInputCount + mOutputCount + mConstantCount + mTextureCount) * 2]; String[] texNames = new String[mTextureCount]; int idx = 0; for (int i=0; i < mInputCount; i++) { Loading @@ -133,9 +134,10 @@ public class ProgramVertex extends Program { for (int i=0; i < mTextureCount; i++) { tmp[idx++] = ProgramParam.TEXTURE_TYPE.mID; tmp[idx++] = mTextureTypes[i].mID; texNames[i] = mTextureNames[i]; } int id = mRS.nProgramVertexCreate(mShader, tmp); int id = mRS.nProgramVertexCreate(mShader, texNames, tmp); ProgramVertex pv = new ProgramVertex(id, mRS); initProgram(pv); return pv; Loading graphics/java/android/renderscript/ProgramVertexFixedFunction.java +3 −1 Original line number Diff line number Diff line Loading @@ -70,6 +70,7 @@ public class ProgramVertexFixedFunction extends ProgramVertex { public ProgramVertexFixedFunction create() { mRS.validate(); int[] tmp = new int[(mInputCount + mOutputCount + mConstantCount + mTextureCount) * 2]; String[] texNames = new String[mTextureCount]; int idx = 0; for (int i=0; i < mInputCount; i++) { Loading @@ -87,9 +88,10 @@ public class ProgramVertexFixedFunction extends ProgramVertex { for (int i=0; i < mTextureCount; i++) { tmp[idx++] = ProgramParam.TEXTURE_TYPE.mID; tmp[idx++] = mTextureTypes[i].mID; texNames[i] = mTextureNames[i]; } int id = mRS.nProgramVertexCreate(mShader, tmp); int id = mRS.nProgramVertexCreate(mShader, texNames, tmp); ProgramVertexFixedFunction pv = new ProgramVertexFixedFunction(id, mRS); initProgram(pv); return pv; Loading Loading
graphics/java/android/renderscript/Program.java +34 −1 Original line number Diff line number Diff line Loading @@ -69,6 +69,7 @@ public class Program extends BaseObj { Element mOutputs[]; Type mConstants[]; TextureType mTextures[]; String mTextureNames[]; int mTextureCount; String mShader; Loading Loading @@ -110,6 +111,16 @@ public class Program extends BaseObj { return mTextures[slot]; } /** * @hide */ public String getTextureName(int slot) { if ((slot < 0) || (slot >= mTextureCount)) { throw new IllegalArgumentException("Slot ID out of range."); } return mTextureNames[slot]; } /** * Binds a constant buffer to be used as uniform inputs to the * program Loading Loading @@ -180,6 +191,7 @@ public class Program extends BaseObj { Type mConstants[]; Type mTextures[]; TextureType mTextureTypes[]; String mTextureNames[]; int mInputCount; int mOutputCount; int mConstantCount; Loading @@ -197,6 +209,7 @@ public class Program extends BaseObj { mConstantCount = 0; mTextureCount = 0; mTextureTypes = new TextureType[MAX_TEXTURE]; mTextureNames = new String[MAX_TEXTURE]; } /** Loading Loading @@ -300,10 +313,28 @@ public class Program extends BaseObj { * @return self */ public BaseProgramBuilder addTexture(TextureType texType) throws IllegalArgumentException { addTexture(texType, "Tex" + mTextureCount); return this; } /** * @hide * Adds a texture input to the Program * * @param texType describes that the texture to append it (2D, * Cubemap, etc.) * @param texName what the texture should be called in the * shader * @return self */ public BaseProgramBuilder addTexture(TextureType texType, String texName) throws IllegalArgumentException { if(mTextureCount >= MAX_TEXTURE) { throw new IllegalArgumentException("Max texture count exceeded."); } mTextureTypes[mTextureCount ++] = texType; mTextureTypes[mTextureCount] = texType; mTextureNames[mTextureCount] = texName; mTextureCount ++; return this; } Loading @@ -317,6 +348,8 @@ public class Program extends BaseObj { p.mTextureCount = mTextureCount; p.mTextures = new TextureType[mTextureCount]; System.arraycopy(mTextureTypes, 0, p.mTextures, 0, mTextureCount); p.mTextureNames = new String[mTextureCount]; System.arraycopy(mTextureNames, 0, p.mTextureNames, 0, mTextureCount); } } Loading
graphics/java/android/renderscript/ProgramFragment.java +3 −1 Original line number Diff line number Diff line Loading @@ -59,6 +59,7 @@ public class ProgramFragment extends Program { public ProgramFragment create() { mRS.validate(); int[] tmp = new int[(mInputCount + mOutputCount + mConstantCount + mTextureCount) * 2]; String[] texNames = new String[mTextureCount]; int idx = 0; for (int i=0; i < mInputCount; i++) { Loading @@ -76,9 +77,10 @@ public class ProgramFragment extends Program { for (int i=0; i < mTextureCount; i++) { tmp[idx++] = ProgramParam.TEXTURE_TYPE.mID; tmp[idx++] = mTextureTypes[i].mID; texNames[i] = mTextureNames[i]; } int id = mRS.nProgramFragmentCreate(mShader, tmp); int id = mRS.nProgramFragmentCreate(mShader, texNames, tmp); ProgramFragment pf = new ProgramFragment(id, mRS); initProgram(pf); return pf; Loading
graphics/java/android/renderscript/ProgramFragmentFixedFunction.java +3 −1 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ public class ProgramFragmentFixedFunction extends ProgramFragment { public ProgramFragmentFixedFunction create() { mRS.validate(); int[] tmp = new int[(mInputCount + mOutputCount + mConstantCount + mTextureCount) * 2]; String[] texNames = new String[mTextureCount]; int idx = 0; for (int i=0; i < mInputCount; i++) { Loading @@ -64,9 +65,10 @@ public class ProgramFragmentFixedFunction extends ProgramFragment { for (int i=0; i < mTextureCount; i++) { tmp[idx++] = ProgramParam.TEXTURE_TYPE.mID; tmp[idx++] = mTextureTypes[i].mID; texNames[i] = mTextureNames[i]; } int id = mRS.nProgramFragmentCreate(mShader, tmp); int id = mRS.nProgramFragmentCreate(mShader, texNames, tmp); ProgramFragmentFixedFunction pf = new ProgramFragmentFixedFunction(id, mRS); initProgram(pf); return pf; Loading
graphics/java/android/renderscript/ProgramVertex.java +3 −1 Original line number Diff line number Diff line Loading @@ -116,6 +116,7 @@ public class ProgramVertex extends Program { public ProgramVertex create() { mRS.validate(); int[] tmp = new int[(mInputCount + mOutputCount + mConstantCount + mTextureCount) * 2]; String[] texNames = new String[mTextureCount]; int idx = 0; for (int i=0; i < mInputCount; i++) { Loading @@ -133,9 +134,10 @@ public class ProgramVertex extends Program { for (int i=0; i < mTextureCount; i++) { tmp[idx++] = ProgramParam.TEXTURE_TYPE.mID; tmp[idx++] = mTextureTypes[i].mID; texNames[i] = mTextureNames[i]; } int id = mRS.nProgramVertexCreate(mShader, tmp); int id = mRS.nProgramVertexCreate(mShader, texNames, tmp); ProgramVertex pv = new ProgramVertex(id, mRS); initProgram(pv); return pv; Loading
graphics/java/android/renderscript/ProgramVertexFixedFunction.java +3 −1 Original line number Diff line number Diff line Loading @@ -70,6 +70,7 @@ public class ProgramVertexFixedFunction extends ProgramVertex { public ProgramVertexFixedFunction create() { mRS.validate(); int[] tmp = new int[(mInputCount + mOutputCount + mConstantCount + mTextureCount) * 2]; String[] texNames = new String[mTextureCount]; int idx = 0; for (int i=0; i < mInputCount; i++) { Loading @@ -87,9 +88,10 @@ public class ProgramVertexFixedFunction extends ProgramVertex { for (int i=0; i < mTextureCount; i++) { tmp[idx++] = ProgramParam.TEXTURE_TYPE.mID; tmp[idx++] = mTextureTypes[i].mID; texNames[i] = mTextureNames[i]; } int id = mRS.nProgramVertexCreate(mShader, tmp); int id = mRS.nProgramVertexCreate(mShader, texNames, tmp); ProgramVertexFixedFunction pv = new ProgramVertexFixedFunction(id, mRS); initProgram(pv); return pv; Loading