compute.cpp revision 9eb7f4b90120ebe4be74343856e86b46495f72df
1221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 2221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams#include "RenderScript.h" 3221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 4f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams#include "ScriptC_mono.h" 5f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams 669cccdf0659a193d6a75420ec745421fb5c436e6Jason Samsusing namespace android; 79eb7f4b90120ebe4be74343856e86b46495f72dfTim Murrayusing namespace RSC; 869cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams 9221a4b17cda03916a0599628fcbb5f48605a0e5aJason Samsint main(int argc, char** argv) 10221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams{ 11221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 128d8fb3eb4a66809872579b9bf679523e96fa302dTim Murray sp<RS> rs = new RS(); 138d8fb3eb4a66809872579b9bf679523e96fa302dTim Murray printf("New RS %p\n", rs.get()); 14221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 158d8fb3eb4a66809872579b9bf679523e96fa302dTim Murray bool r = rs->init(); 16221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams printf("Init returned %i\n", r); 17221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 1869cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams sp<const Element> e = Element::RGBA_8888(rs); 1969cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams printf("Element %p\n", e.get()); 20221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 21221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams Type::Builder tb(rs, e); 22221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams tb.setX(128); 23221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams tb.setY(128); 2469cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams sp<const Type> t = tb.create(); 2569cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams printf("Type %p\n", t.get()); 26221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 27221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 2869cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams sp<Allocation> a1 = Allocation::createSized(rs, e, 1000); 2969cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams printf("Allocation %p\n", a1.get()); 30221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 3169cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams sp<Allocation> ain = Allocation::createTyped(rs, t); 3269cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams sp<Allocation> aout = Allocation::createTyped(rs, t); 3369cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams printf("Allocation %p %p\n", ain.get(), aout.get()); 34f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams 3569cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams sp<ScriptC_mono> sc = new ScriptC_mono(rs, NULL, 0); 36f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams printf("new script\n"); 37f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams 38f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams uint32_t *buf = new uint32_t[t->getCount()]; 39f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams for (uint32_t ct=0; ct < t->getCount(); ct++) { 40f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams buf[ct] = ct | (ct << 16); 41f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams } 42a4cbc2b0cf0f6fbdb21e84a3e17585eda1885e3eTim Murray ain->copy1DRangeFrom(0, t->getCount(), buf, t->getCount()*4); 43f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams 44f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams sc->forEach_root(ain, aout); 45f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams printf("for each done\n"); 46221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 47221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams printf("Deleting stuff\n"); 4869cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams sc.clear(); 4969cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams t.clear(); 5069cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams a1.clear(); 5169cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams e.clear(); 5216b95120323dd6e977dea43c29da5897ac40ec83Tim Murray ain.clear(); 5316b95120323dd6e977dea43c29da5897ac40ec83Tim Murray aout.clear(); 548d8fb3eb4a66809872579b9bf679523e96fa302dTim Murray // delete rs; 55221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams printf("Delete OK\n"); 56221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams} 57