diff options
Diffstat (limited to 'graphics/java/android/renderscript/ProgramVertex.java')
-rw-r--r-- | graphics/java/android/renderscript/ProgramVertex.java | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/graphics/java/android/renderscript/ProgramVertex.java b/graphics/java/android/renderscript/ProgramVertex.java index ba97d5b..e284984 100644 --- a/graphics/java/android/renderscript/ProgramVertex.java +++ b/graphics/java/android/renderscript/ProgramVertex.java @@ -46,6 +46,7 @@ public class ProgramVertex extends BaseObj { Light[] mLights; int mLightCount; boolean mTextureMatrixEnable; + String mShader; public Builder(RenderScript rs, Element in, Element out) { @@ -60,6 +61,10 @@ public class ProgramVertex extends BaseObj { mTextureMatrixEnable = enable; } + public void setShader(String s) { + mShader = s; + } + public void addLight(Light l) throws IllegalStateException { if(mLightCount >= MAX_LIGHT) { throw new IllegalArgumentException("Max light count exceeded."); @@ -80,10 +85,14 @@ public class ProgramVertex extends BaseObj { outID = b.mOut.mID; } rs.nProgramVertexBegin(inID, outID); - for(int ct=0; ct < b.mLightCount; ct++) { - rs.nProgramVertexAddLight(b.mLights[ct].mID); + if (b.mShader != null) { + rs.nProgramVertexSetShader(b.mShader); + } else { + for(int ct=0; ct < b.mLightCount; ct++) { + rs.nProgramVertexAddLight(b.mLights[ct].mID); + } + rs.nProgramVertexSetTextureMatrixEnable(b.mTextureMatrixEnable); } - rs.nProgramVertexSetTextureMatrixEnable(b.mTextureMatrixEnable); int id = rs.nProgramVertexCreate(); return new ProgramVertex(id, rs); } |