@@ -292,75 +292,136 @@ void Shutdown(Context *rsc) {
292292}
293293
294294static void rsdForEach17 (const void *vRoot,
295- const android::renderscript::RsForEachStubParamStruct *p) {
295+ const android::renderscript::RsForEachStubParamStruct *p,
296+ uint32_t x1, uint32_t x2,
297+ uint32_t instep, uint32_t outstep) {
296298 typedef void (*fe)(const void *, uint32_t );
297299 (*(fe*)vRoot)(p->in , p->y );
298300}
299301
300302static void rsdForEach18 (const void *vRoot,
301- const android::renderscript::RsForEachStubParamStruct *p) {
303+ const android::renderscript::RsForEachStubParamStruct *p,
304+ uint32_t x1, uint32_t x2,
305+ uint32_t instep, uint32_t outstep) {
302306 typedef void (*fe)(void *, uint32_t );
303307 (*(fe*)vRoot)(p->out , p->y );
304308}
305309
306310static void rsdForEach19 (const void *vRoot,
307- const android::renderscript::RsForEachStubParamStruct *p) {
311+ const android::renderscript::RsForEachStubParamStruct *p,
312+ uint32_t x1, uint32_t x2,
313+ uint32_t instep, uint32_t outstep) {
308314 typedef void (*fe)(const void *, void *, uint32_t );
309315 (*(fe*)vRoot)(p->in , p->out , p->y );
310316}
311317
312318static void rsdForEach21 (const void *vRoot,
313- const android::renderscript::RsForEachStubParamStruct *p) {
319+ const android::renderscript::RsForEachStubParamStruct *p,
320+ uint32_t x1, uint32_t x2,
321+ uint32_t instep, uint32_t outstep) {
314322 typedef void (*fe)(const void *, const void *, uint32_t );
315323 (*(fe*)vRoot)(p->in , p->usr , p->y );
316324}
317325
318326static void rsdForEach22 (const void *vRoot,
319- const android::renderscript::RsForEachStubParamStruct *p) {
327+ const android::renderscript::RsForEachStubParamStruct *p,
328+ uint32_t x1, uint32_t x2,
329+ uint32_t instep, uint32_t outstep) {
320330 typedef void (*fe)(void *, const void *, uint32_t );
321331 (*(fe*)vRoot)(p->out , p->usr , p->y );
322332}
323333
324334static void rsdForEach23 (const void *vRoot,
325- const android::renderscript::RsForEachStubParamStruct *p) {
335+ const android::renderscript::RsForEachStubParamStruct *p,
336+ uint32_t x1, uint32_t x2,
337+ uint32_t instep, uint32_t outstep) {
326338 typedef void (*fe)(const void *, void *, const void *, uint32_t );
327339 (*(fe*)vRoot)(p->in , p->out , p->usr , p->y );
328340}
329341
330342static void rsdForEach25 (const void *vRoot,
331- const android::renderscript::RsForEachStubParamStruct *p) {
343+ const android::renderscript::RsForEachStubParamStruct *p,
344+ uint32_t x1, uint32_t x2,
345+ uint32_t instep, uint32_t outstep) {
332346 typedef void (*fe)(const void *, uint32_t , uint32_t );
333- (*(fe*)vRoot)(p->in , p->x , p->y );
347+ const uint8_t *pin = (const uint8_t *)p->in ;
348+ uint32_t y = p->y ;
349+ for (uint32_t x = x1; x < x2; x++) {
350+ (*(fe*)vRoot)(pin, x, y);
351+ pin += instep;
352+ }
334353}
335354
336355static void rsdForEach26 (const void *vRoot,
337- const android::renderscript::RsForEachStubParamStruct *p) {
356+ const android::renderscript::RsForEachStubParamStruct *p,
357+ uint32_t x1, uint32_t x2,
358+ uint32_t instep, uint32_t outstep) {
338359 typedef void (*fe)(void *, uint32_t , uint32_t );
339- (*(fe*)vRoot)(p->out , p->x , p->y );
360+ uint8_t *pout = (uint8_t *)p->out ;
361+ uint32_t y = p->y ;
362+ for (uint32_t x = x1; x < x2; x++) {
363+ (*(fe*)vRoot)(pout, x, y);
364+ pout += outstep;
365+ }
340366}
341367
342368static void rsdForEach27 (const void *vRoot,
343- const android::renderscript::RsForEachStubParamStruct *p) {
369+ const android::renderscript::RsForEachStubParamStruct *p,
370+ uint32_t x1, uint32_t x2,
371+ uint32_t instep, uint32_t outstep) {
344372 typedef void (*fe)(const void *, void *, uint32_t , uint32_t );
345- (*(fe*)vRoot)(p->in , p->out , p->x , p->y );
373+ uint8_t *pout = (uint8_t *)p->out ;
374+ const uint8_t *pin = (const uint8_t *)p->in ;
375+ uint32_t y = p->y ;
376+ for (uint32_t x = x1; x < x2; x++) {
377+ (*(fe*)vRoot)(pin, pout, x, y);
378+ pin += instep;
379+ pout += outstep;
380+ }
346381}
347382
348383static void rsdForEach29 (const void *vRoot,
349- const android::renderscript::RsForEachStubParamStruct *p) {
384+ const android::renderscript::RsForEachStubParamStruct *p,
385+ uint32_t x1, uint32_t x2,
386+ uint32_t instep, uint32_t outstep) {
350387 typedef void (*fe)(const void *, const void *, uint32_t , uint32_t );
351- (*(fe*)vRoot)(p->in , p->usr , p->x , p->y );
388+ const uint8_t *pin = (const uint8_t *)p->in ;
389+ const void *usr = p->usr ;
390+ const uint32_t y = p->y ;
391+ for (uint32_t x = x1; x < x2; x++) {
392+ (*(fe*)vRoot)(pin, usr, x, y);
393+ pin += instep;
394+ }
352395}
353396
354397static void rsdForEach30 (const void *vRoot,
355- const android::renderscript::RsForEachStubParamStruct *p) {
398+ const android::renderscript::RsForEachStubParamStruct *p,
399+ uint32_t x1, uint32_t x2,
400+ uint32_t instep, uint32_t outstep) {
356401 typedef void (*fe)(void *, const void *, uint32_t , uint32_t );
357- (*(fe*)vRoot)(p->out , p->usr , p->x , p->y );
402+ uint8_t *pout = (uint8_t *)p->out ;
403+ const void *usr = p->usr ;
404+ const uint32_t y = p->y ;
405+ for (uint32_t x = x1; x < x2; x++) {
406+ (*(fe*)vRoot)(pout, usr, x, y);
407+ pout += outstep;
408+ }
358409}
359410
360411static void rsdForEach31 (const void *vRoot,
361- const android::renderscript::RsForEachStubParamStruct *p) {
412+ const android::renderscript::RsForEachStubParamStruct *p,
413+ uint32_t x1, uint32_t x2,
414+ uint32_t instep, uint32_t outstep) {
362415 typedef void (*fe)(const void *, void *, const void *, uint32_t , uint32_t );
363- (*(fe*)vRoot)(p->in , p->out , p->usr , p->x , p->y );
416+ uint8_t *pout = (uint8_t *)p->out ;
417+ const uint8_t *pin = (const uint8_t *)p->in ;
418+ const void *usr = p->usr ;
419+ const uint32_t y = p->y ;
420+ for (uint32_t x = x1; x < x2; x++) {
421+ (*(fe*)vRoot)(pin, pout, usr, x, y);
422+ pin += instep;
423+ pout += outstep;
424+ }
364425}
365426
366427
0 commit comments