Add size param to rsForEach
bug 5074640 Change-Id: I395bd8b295beacc979681ccdd3451d9d6cc3d672
This commit is contained in:
@@ -365,24 +365,49 @@ static const Allocation * SC_GetAllocation(const void *ptr) {
|
||||
return rsrGetAllocation(rsc, sc, ptr);
|
||||
}
|
||||
|
||||
static void SC_ForEach(Script *target,
|
||||
Allocation *in,
|
||||
Allocation *out,
|
||||
const void *usr,
|
||||
const RsScriptCall *call) {
|
||||
static void SC_ForEach_SAA(Script *target,
|
||||
Allocation *in,
|
||||
Allocation *out) {
|
||||
GET_TLS();
|
||||
rsrForEach(rsc, sc, target, in, out, NULL, 0, NULL);
|
||||
}
|
||||
|
||||
static void SC_ForEach_SAAU(Script *target,
|
||||
Allocation *in,
|
||||
Allocation *out,
|
||||
const void *usr) {
|
||||
GET_TLS();
|
||||
rsrForEach(rsc, sc, target, in, out, usr, 0, NULL);
|
||||
}
|
||||
|
||||
static void SC_ForEach2(Script *target,
|
||||
Allocation *in,
|
||||
Allocation *out,
|
||||
const void *usr,
|
||||
const RsScriptCall *call) {
|
||||
static void SC_ForEach_SAAUS(Script *target,
|
||||
Allocation *in,
|
||||
Allocation *out,
|
||||
const void *usr,
|
||||
const RsScriptCall *call) {
|
||||
GET_TLS();
|
||||
rsrForEach(rsc, sc, target, in, out, usr, 0, call);
|
||||
}
|
||||
|
||||
static void SC_ForEach_SAAUL(Script *target,
|
||||
Allocation *in,
|
||||
Allocation *out,
|
||||
const void *usr,
|
||||
uint32_t usrLen) {
|
||||
GET_TLS();
|
||||
rsrForEach(rsc, sc, target, in, out, usr, usrLen, NULL);
|
||||
}
|
||||
|
||||
static void SC_ForEach_SAAULS(Script *target,
|
||||
Allocation *in,
|
||||
Allocation *out,
|
||||
const void *usr,
|
||||
uint32_t usrLen,
|
||||
const RsScriptCall *call) {
|
||||
GET_TLS();
|
||||
rsrForEach(rsc, sc, target, in, out, usr, usrLen, call);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
@@ -648,8 +673,11 @@ static RsdSymbolTable gSyms[] = {
|
||||
{ "_Z19rsgClearDepthTargetv", (void *)&SC_ClearFrameBufferObjectDepthTarget, false },
|
||||
{ "_Z24rsgClearAllRenderTargetsv", (void *)&SC_ClearFrameBufferObjectTargets, false },
|
||||
|
||||
{ "_Z9rsForEach9rs_script13rs_allocationS0_PKv", (void *)&SC_ForEach, false },
|
||||
{ "_Z9rsForEach9rs_script13rs_allocationS0_PKvj", (void *)&SC_ForEach2, false },
|
||||
{ "_Z9rsForEach9rs_script13rs_allocationS0_", (void *)&SC_ForEach_SAA, false },
|
||||
{ "_Z9rsForEach9rs_script13rs_allocationS0_PKv", (void *)&SC_ForEach_SAAU, false },
|
||||
{ "_Z9rsForEach9rs_script13rs_allocationS0_PKvPK16rs_script_call_t", (void *)&SC_ForEach_SAAUS, false },
|
||||
{ "_Z9rsForEach9rs_script13rs_allocationS0_PKvj", (void *)&SC_ForEach_SAAUL, false },
|
||||
{ "_Z9rsForEach9rs_script13rs_allocationS0_PKvjPK16rs_script_call_t", (void *)&SC_ForEach_SAAULS, false },
|
||||
|
||||
// time
|
||||
{ "_Z6rsTimePi", (void *)&SC_Time, true },
|
||||
|
||||
@@ -249,15 +249,28 @@ typedef struct rs_script_call {
|
||||
uint32_t arrayEnd;
|
||||
} rs_script_call_t;
|
||||
|
||||
#if 1//(RS_VERSION >= 14)
|
||||
extern void __attribute__((overloadable))
|
||||
rsForEach(rs_script script, rs_allocation input,
|
||||
rs_allocation output, const void * usrData);
|
||||
rsForEach(rs_script script, rs_allocation input, rs_allocation output);
|
||||
|
||||
extern void __attribute__((overloadable))
|
||||
rsForEach(rs_script script, rs_allocation input, rs_allocation output,
|
||||
const void * usrData, size_t usrDataLen);
|
||||
|
||||
extern void __attribute__((overloadable))
|
||||
rsForEach(rs_script script, rs_allocation input, rs_allocation output,
|
||||
const void * usrData, size_t usrDataLen, const rs_script_call_t *);
|
||||
#else
|
||||
extern void __attribute__((overloadable))
|
||||
rsForEach(rs_script script, rs_allocation input,
|
||||
rs_allocation output, const void * usrData,
|
||||
const rs_script_call_t *);
|
||||
#endif
|
||||
|
||||
// Move me once dependant changes are in.
|
||||
extern void __attribute__((overloadable))
|
||||
rsForEach(rs_script script, rs_allocation input,
|
||||
rs_allocation output, const void * usrData);
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -19,6 +19,9 @@ typedef uint16_t ushort;
|
||||
typedef uint32_t uint;
|
||||
typedef uint64_t ulong;
|
||||
|
||||
typedef uint32_t size_t;
|
||||
typedef int32_t ssize_t;
|
||||
|
||||
typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_element;
|
||||
typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_type;
|
||||
typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_allocation;
|
||||
@@ -88,6 +91,8 @@ typedef float4 rs_quaternion;
|
||||
|
||||
#define RS_PACKED __attribute__((packed, aligned(4)))
|
||||
|
||||
#define NULL ((const void *)0)
|
||||
|
||||
typedef enum {
|
||||
RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_X = 0,
|
||||
RS_ALLOCATION_CUBEMAP_FACE_NEGATIVE_X = 1,
|
||||
|
||||
@@ -84,10 +84,10 @@ void filter() {
|
||||
fs.radius = radius;
|
||||
|
||||
fs.ain = rsGetAllocation(ScratchPixel1);
|
||||
rsForEach(hBlurScript, fs.ain, rsGetAllocation(ScratchPixel2), &fs);
|
||||
rsForEach(hBlurScript, fs.ain, rsGetAllocation(ScratchPixel2), &fs, sizeof(fs));
|
||||
|
||||
fs.ain = rsGetAllocation(ScratchPixel2);
|
||||
rsForEach(vBlurScript, fs.ain, rsGetAllocation(OutPixel), &fs);
|
||||
rsForEach(vBlurScript, fs.ain, rsGetAllocation(OutPixel), &fs, sizeof(fs));
|
||||
rsSendToClientBlocking(CMD_FINISHED);
|
||||
}
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ int root(void) {
|
||||
robot2Ptr->transforms[1].w += 2.5f;
|
||||
robot2Ptr->isDirty = 1;
|
||||
|
||||
rsForEach(gTransformRS, gRootNode->children, gRootNode->children, 0);
|
||||
rsForEach(gTransformRS, gRootNode->children, gRootNode->children, NULL, 0);
|
||||
|
||||
rsgClearColor(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
rsgClearDepth(1.0f);
|
||||
|
||||
@@ -91,6 +91,6 @@ void root(const void *v_in, void *v_out, const void *usrData, uint32_t x, uint32
|
||||
|
||||
//rsDebug("Transform calling self with child ", (int)data->children.p);
|
||||
if (data->children.p) {
|
||||
rsForEach(transformScript, data->children, data->children, (void*)&toChild);
|
||||
rsForEach(transformScript, data->children, data->children, (void*)&toChild, sizeof(toChild));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -280,7 +280,7 @@ static void displayFontSamples(int fillNum) {
|
||||
testData.renderSurfaceW = gRenderSurfaceW;
|
||||
testData.renderSurfaceH = gRenderSurfaceH;
|
||||
testData.user = fillNum;
|
||||
rsForEach(gFontScript, gDummyAlloc, gDummyAlloc, &testData);
|
||||
rsForEach(gFontScript, gDummyAlloc, gDummyAlloc, &testData, sizeof(testData));
|
||||
}
|
||||
|
||||
static void bindProgramVertexOrtho() {
|
||||
@@ -520,7 +520,7 @@ static void displaySimpleGeoSamples(bool useTexture, int numMeshes) {
|
||||
testData.user = 0;
|
||||
testData.user1 = useTexture ? 1 : 0;
|
||||
testData.user2 = numMeshes;
|
||||
rsForEach(gTorusScript, gDummyAlloc, gDummyAlloc, &testData);
|
||||
rsForEach(gTorusScript, gDummyAlloc, gDummyAlloc, &testData, sizeof(testData));
|
||||
}
|
||||
|
||||
static void displayCustomShaderSamples(int numMeshes) {
|
||||
@@ -530,7 +530,7 @@ static void displayCustomShaderSamples(int numMeshes) {
|
||||
testData.dt = gDt;
|
||||
testData.user = 1;
|
||||
testData.user1 = numMeshes;
|
||||
rsForEach(gTorusScript, gDummyAlloc, gDummyAlloc, &testData);
|
||||
rsForEach(gTorusScript, gDummyAlloc, gDummyAlloc, &testData, sizeof(testData));
|
||||
}
|
||||
|
||||
static void displayPixelLightSamples(int numMeshes, bool heavyVertex) {
|
||||
@@ -541,7 +541,7 @@ static void displayPixelLightSamples(int numMeshes, bool heavyVertex) {
|
||||
testData.user = 2;
|
||||
testData.user1 = numMeshes;
|
||||
testData.user2 = heavyVertex ? 1 : 0;
|
||||
rsForEach(gTorusScript, gDummyAlloc, gDummyAlloc, &testData);
|
||||
rsForEach(gTorusScript, gDummyAlloc, gDummyAlloc, &testData, sizeof(testData));
|
||||
}
|
||||
|
||||
static void displayMultitextureSample(bool blend, int quadCount) {
|
||||
|
||||
Reference in New Issue
Block a user