Merge "Remove unused fields in ProgramRaster"

This commit is contained in:
Jason Sams
2011-09-26 11:57:41 -07:00
committed by Android (Google) Code Review
6 changed files with 13 additions and 52 deletions

View File

@@ -84,14 +84,10 @@ public class ProgramRaster extends BaseObj {
public static class Builder { public static class Builder {
RenderScript mRS; RenderScript mRS;
boolean mPointSprite; boolean mPointSprite;
boolean mPointSmooth;
boolean mLineSmooth;
CullMode mCullMode; CullMode mCullMode;
public Builder(RenderScript rs) { public Builder(RenderScript rs) {
mRS = rs; mRS = rs;
mPointSmooth = false;
mLineSmooth = false;
mPointSprite = false; mPointSprite = false;
mCullMode = CullMode.BACK; mCullMode = CullMode.BACK;
} }
@@ -108,8 +104,7 @@ public class ProgramRaster extends BaseObj {
public ProgramRaster create() { public ProgramRaster create() {
mRS.validate(); mRS.validate();
int id = mRS.nProgramRasterCreate(mPointSmooth, mLineSmooth, mPointSprite, int id = mRS.nProgramRasterCreate(mPointSprite, mCullMode.mID);
1.f, mCullMode.mID);
return new ProgramRaster(id, mRS); return new ProgramRaster(id, mRS);
} }
} }

View File

@@ -522,13 +522,10 @@ public class RenderScript {
dstMode, depthFunc); dstMode, depthFunc);
} }
native int rsnProgramRasterCreate(int con, boolean pointSmooth, boolean lineSmooth, native int rsnProgramRasterCreate(int con, boolean pointSprite, int cullMode);
boolean pointSprite, float lineWidth, int cullMode); synchronized int nProgramRasterCreate(boolean pointSprite, int cullMode) {
synchronized int nProgramRasterCreate(boolean pointSmooth, boolean lineSmooth,
boolean pointSprite, float lineWidth, int cullMode) {
validate(); validate();
return rsnProgramRasterCreate(mContext, pointSmooth, lineSmooth, pointSprite, lineWidth, return rsnProgramRasterCreate(mContext, pointSprite, cullMode);
cullMode);
} }
native void rsnProgramBindConstants(int con, int pv, int slot, int mID); native void rsnProgramBindConstants(int con, int pv, int slot, int mID);

View File

@@ -1053,12 +1053,10 @@ nProgramVertexCreate(JNIEnv *_env, jobject _this, RsContext con, jstring shader,
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
static jint static jint
nProgramRasterCreate(JNIEnv *_env, jobject _this, RsContext con, jboolean pointSmooth, nProgramRasterCreate(JNIEnv *_env, jobject _this, RsContext con, jboolean pointSprite, jint cull)
jboolean lineSmooth, jboolean pointSprite, jfloat lineWidth, jint cull)
{ {
LOG_API("nProgramRasterCreate, con(%p), pointSmooth(%i), lineSmooth(%i), pointSprite(%i)", LOG_API("nProgramRasterCreate, con(%p), pointSprite(%i), cull(%i)", con, pointSprite, cull);
con, pointSmooth, lineSmooth, pointSprite); return (jint)rsProgramRasterCreate(con, pointSprite, (RsCullMode)cull);
return (jint)rsProgramRasterCreate(con, pointSmooth, lineSmooth, pointSprite, lineWidth, (RsCullMode)cull);
} }
@@ -1295,7 +1293,7 @@ static JNINativeMethod methods[] = {
{"rsnProgramBindSampler", "(IIII)V", (void*)nProgramBindSampler }, {"rsnProgramBindSampler", "(IIII)V", (void*)nProgramBindSampler },
{"rsnProgramFragmentCreate", "(ILjava/lang/String;[I)I", (void*)nProgramFragmentCreate }, {"rsnProgramFragmentCreate", "(ILjava/lang/String;[I)I", (void*)nProgramFragmentCreate },
{"rsnProgramRasterCreate", "(IZZZFI)I", (void*)nProgramRasterCreate }, {"rsnProgramRasterCreate", "(IZI)I", (void*)nProgramRasterCreate },
{"rsnProgramVertexCreate", "(ILjava/lang/String;[I)I", (void*)nProgramVertexCreate }, {"rsnProgramVertexCreate", "(ILjava/lang/String;[I)I", (void*)nProgramVertexCreate },
{"rsnContextBindRootScript", "(II)V", (void*)nContextBindRootScript }, {"rsnContextBindRootScript", "(II)V", (void*)nContextBindRootScript },

View File

@@ -329,10 +329,7 @@ ProgramStoreCreate {
ProgramRasterCreate { ProgramRasterCreate {
direct direct
param bool pointSmooth
param bool lineSmooth
param bool pointSprite param bool pointSprite
param float lineWidth
param RsCullMode cull param RsCullMode cull
ret RsProgramRaster ret RsProgramRaster
} }

View File

@@ -21,19 +21,12 @@ using namespace android;
using namespace android::renderscript; using namespace android::renderscript;
ProgramRaster::ProgramRaster(Context *rsc, bool pointSmooth, ProgramRaster::ProgramRaster(Context *rsc, bool pointSprite, RsCullMode cull)
bool lineSmooth, bool pointSprite,
float lineWidth, RsCullMode cull)
: ProgramBase(rsc) { : ProgramBase(rsc) {
memset(&mHal, 0, sizeof(mHal)); memset(&mHal, 0, sizeof(mHal));
mHal.state.pointSmooth = pointSmooth;
mHal.state.lineSmooth = lineSmooth;
mHal.state.pointSprite = pointSprite; mHal.state.pointSprite = pointSprite;
mHal.state.lineWidth = lineWidth;
mHal.state.cull = cull; mHal.state.cull = cull;
rsc->mHal.funcs.raster.init(rsc, this); rsc->mHal.funcs.raster.init(rsc, this);
} }
@@ -74,8 +67,7 @@ ProgramRasterState::~ProgramRasterState() {
} }
void ProgramRasterState::init(Context *rsc) { void ProgramRasterState::init(Context *rsc) {
mDefault.set(ProgramRaster::getProgramRaster(rsc, false, false, mDefault.set(ProgramRaster::getProgramRaster(rsc, false, RS_CULL_BACK).get());
false, 1.f, RS_CULL_BACK).get());
} }
void ProgramRasterState::deinit(Context *rsc) { void ProgramRasterState::deinit(Context *rsc) {
@@ -84,19 +76,13 @@ void ProgramRasterState::deinit(Context *rsc) {
} }
ObjectBaseRef<ProgramRaster> ProgramRaster::getProgramRaster(Context *rsc, ObjectBaseRef<ProgramRaster> ProgramRaster::getProgramRaster(Context *rsc,
bool pointSmooth,
bool lineSmooth,
bool pointSprite, bool pointSprite,
float lineWidth,
RsCullMode cull) { RsCullMode cull) {
ObjectBaseRef<ProgramRaster> returnRef; ObjectBaseRef<ProgramRaster> returnRef;
ObjectBase::asyncLock(); ObjectBase::asyncLock();
for (uint32_t ct = 0; ct < rsc->mStateRaster.mRasterPrograms.size(); ct++) { for (uint32_t ct = 0; ct < rsc->mStateRaster.mRasterPrograms.size(); ct++) {
ProgramRaster *existing = rsc->mStateRaster.mRasterPrograms[ct]; ProgramRaster *existing = rsc->mStateRaster.mRasterPrograms[ct];
if (existing->mHal.state.pointSmooth != pointSmooth) continue;
if (existing->mHal.state.lineSmooth != lineSmooth) continue;
if (existing->mHal.state.pointSprite != pointSprite) continue; if (existing->mHal.state.pointSprite != pointSprite) continue;
if (existing->mHal.state.lineWidth != lineWidth) continue;
if (existing->mHal.state.cull != cull) continue; if (existing->mHal.state.cull != cull) continue;
returnRef.set(existing); returnRef.set(existing);
ObjectBase::asyncUnlock(); ObjectBase::asyncUnlock();
@@ -104,8 +90,7 @@ ObjectBaseRef<ProgramRaster> ProgramRaster::getProgramRaster(Context *rsc,
} }
ObjectBase::asyncUnlock(); ObjectBase::asyncUnlock();
ProgramRaster *pr = new ProgramRaster(rsc, pointSmooth, ProgramRaster *pr = new ProgramRaster(rsc, pointSprite, cull);
lineSmooth, pointSprite, lineWidth, cull);
returnRef.set(pr); returnRef.set(pr);
ObjectBase::asyncLock(); ObjectBase::asyncLock();
@@ -118,10 +103,8 @@ ObjectBaseRef<ProgramRaster> ProgramRaster::getProgramRaster(Context *rsc,
namespace android { namespace android {
namespace renderscript { namespace renderscript {
RsProgramRaster rsi_ProgramRasterCreate(Context * rsc, bool pointSmooth, bool lineSmooth, RsProgramRaster rsi_ProgramRasterCreate(Context * rsc, bool pointSprite, RsCullMode cull) {
bool pointSprite, float lineWidth, RsCullMode cull) { ObjectBaseRef<ProgramRaster> pr = ProgramRaster::getProgramRaster(rsc, pointSprite, cull);
ObjectBaseRef<ProgramRaster> pr = ProgramRaster::getProgramRaster(rsc, pointSmooth, lineSmooth,
pointSprite, lineWidth, cull);
pr->incUserRef(); pr->incUserRef();
return pr.get(); return pr.get();
} }

View File

@@ -33,19 +33,13 @@ public:
static ProgramRaster *createFromStream(Context *rsc, IStream *stream); static ProgramRaster *createFromStream(Context *rsc, IStream *stream);
static ObjectBaseRef<ProgramRaster> getProgramRaster(Context *rsc, static ObjectBaseRef<ProgramRaster> getProgramRaster(Context *rsc,
bool pointSmooth,
bool lineSmooth,
bool pointSprite, bool pointSprite,
float lineWidth,
RsCullMode cull); RsCullMode cull);
struct Hal { struct Hal {
mutable void *drv; mutable void *drv;
struct State { struct State {
bool pointSmooth;
bool lineSmooth;
bool pointSprite; bool pointSprite;
float lineWidth;
RsCullMode cull; RsCullMode cull;
}; };
State state; State state;
@@ -58,10 +52,7 @@ protected:
private: private:
ProgramRaster(Context *rsc, ProgramRaster(Context *rsc,
bool pointSmooth,
bool lineSmooth,
bool pointSprite, bool pointSprite,
float lineWidth,
RsCullMode cull); RsCullMode cull);
}; };