Merge "Remove unused fields in ProgramRaster"
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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 },
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user