diff options
author | Alex Sakhartchouk <alexst@google.com> | 2010-07-12 15:50:32 -0700 |
---|---|---|
committer | Alex Sakhartchouk <alexst@google.com> | 2010-07-12 15:50:32 -0700 |
commit | 80a4c2cd34aedb4f1a2e5e7d1ac26a9aeebe41ae (patch) | |
tree | 1add64a0dee5bf0ac1c98b63bd3b43648ca7af50 /graphics/java/android/renderscript/ProgramRaster.java | |
parent | cefd8d9588230577356d24597acc04ce1e276582 (diff) |
Work on synchronizing a3d created files and java layer.
Adding culling to ProgramRaster
Change-Id: I58ccc82d37edc9539289d5eba44ea0e720874af5
Diffstat (limited to 'graphics/java/android/renderscript/ProgramRaster.java')
-rw-r--r-- | graphics/java/android/renderscript/ProgramRaster.java | 61 |
1 files changed, 39 insertions, 22 deletions
diff --git a/graphics/java/android/renderscript/ProgramRaster.java b/graphics/java/android/renderscript/ProgramRaster.java index d7c98aac04d5..c3ab4819a6da 100644 --- a/graphics/java/android/renderscript/ProgramRaster.java +++ b/graphics/java/android/renderscript/ProgramRaster.java @@ -26,12 +26,23 @@ import android.util.Log; * **/ public class ProgramRaster extends BaseObj { + + public enum CullMode { + BACK (0), + FRONT (1), + NONE (2); + + int mID; + CullMode(int id) { + mID = id; + } + } + boolean mPointSmooth; boolean mLineSmooth; boolean mPointSprite; float mLineWidth; - Element mIn; - Element mOut; + CullMode mCullMode; ProgramRaster(int id, RenderScript rs) { super(rs); @@ -41,6 +52,8 @@ public class ProgramRaster extends BaseObj { mPointSmooth = false; mLineSmooth = false; mPointSprite = false; + + mCullMode = CullMode.BACK; } public void setLineWidth(float w) { @@ -49,45 +62,48 @@ public class ProgramRaster extends BaseObj { mRS.nProgramRasterSetLineWidth(mID, w); } - void internalInit() { - int inID = 0; - int outID = 0; - if (mIn != null) { - inID = mIn.mID; - } - if (mOut != null) { - outID = mOut.mID; - } - mID = mRS.nProgramRasterCreate(inID, outID, mPointSmooth, mLineSmooth, mPointSprite); + public void setCullMode(CullMode m) { + mRS.validate(); + mCullMode = m; + mRS.nProgramRasterSetCullMode(mID, m.mID); } - public static class Builder { RenderScript mRS; - ProgramRaster mPR; + boolean mPointSprite; + boolean mPointSmooth; + boolean mLineSmooth; + // Legacy to not break app in other projects, will be removed in cleanup pass public Builder(RenderScript rs, Element in, Element out) { mRS = rs; - mPR = new ProgramRaster(0, rs); + mPointSmooth = false; + mLineSmooth = false; + mPointSprite = false; + } + + public Builder(RenderScript rs) { + mRS = rs; + mPointSmooth = false; + mLineSmooth = false; + mPointSprite = false; } public void setPointSpriteEnable(boolean enable) { - mPR.mPointSprite = enable; + mPointSprite = enable; } public void setPointSmoothEnable(boolean enable) { - mPR.mPointSmooth = enable; + mPointSmooth = enable; } public void setLineSmoothEnable(boolean enable) { - mPR.mLineSmooth = enable; + mLineSmooth = enable; } - static synchronized ProgramRaster internalCreate(RenderScript rs, Builder b) { - b.mPR.internalInit(); - ProgramRaster pr = b.mPR; - b.mPR = new ProgramRaster(0, b.mRS); + int id = rs.nProgramRasterCreate(b.mPointSmooth, b.mLineSmooth, b.mPointSprite); + ProgramRaster pr = new ProgramRaster(id, rs); return pr; } @@ -103,3 +119,4 @@ public class ProgramRaster extends BaseObj { + |