1221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 2221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams#include "RenderScript.h" 3221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams#include "Element.h" 4221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams#include "Type.h" 5221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams#include "Allocation.h" 6221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 7f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams#include "ScriptC_mono.h" 8f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams 969cccdf0659a193d6a75420ec745421fb5c436e6Jason Samsusing namespace android; 1069cccdf0659a193d6a75420ec745421fb5c436e6Jason Samsusing namespace renderscriptCpp; 1169cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams 12221a4b17cda03916a0599628fcbb5f48605a0e5aJason Samsint main(int argc, char** argv) 13221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams{ 14221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 15221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams RenderScript *rs = new RenderScript(); 16221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams printf("New RS %p\n", rs); 17221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 18221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams bool r = rs->init(16); 19221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams printf("Init returned %i\n", r); 20221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 2169cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams sp<const Element> e = Element::RGBA_8888(rs); 2269cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams printf("Element %p\n", e.get()); 23221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 24221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams Type::Builder tb(rs, e); 25221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams tb.setX(128); 26221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams tb.setY(128); 2769cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams sp<const Type> t = tb.create(); 2869cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams printf("Type %p\n", t.get()); 29221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 30221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 3169cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams sp<Allocation> a1 = Allocation::createSized(rs, e, 1000); 3269cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams printf("Allocation %p\n", a1.get()); 33221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 3469cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams sp<Allocation> ain = Allocation::createTyped(rs, t); 3569cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams sp<Allocation> aout = Allocation::createTyped(rs, t); 3669cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams printf("Allocation %p %p\n", ain.get(), aout.get()); 37f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams 3869cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams sp<ScriptC_mono> sc = new ScriptC_mono(rs, NULL, 0); 39f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams printf("new script\n"); 40f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams 41f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams uint32_t *buf = new uint32_t[t->getCount()]; 42f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams for (uint32_t ct=0; ct < t->getCount(); ct++) { 43f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams buf[ct] = ct | (ct << 16); 44f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams } 45f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams //ain->copy1DRangeFrom(0, 128*128, (int32_t *)buf, 128*128*4); 46f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams ain->copy1DRangeFromUnchecked(0, t->getCount(), buf, t->getCount()*4); 47f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams 48f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams 49f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams 50f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams sc->forEach_root(ain, aout); 51f1e6d229636c35ad311995853a9cab52c723bed7Jason Sams printf("for each done\n"); 52221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 53221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams 54221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams printf("Deleting stuff\n"); 5569cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams sc.clear(); 5669cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams t.clear(); 5769cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams a1.clear(); 5869cccdf0659a193d6a75420ec745421fb5c436e6Jason Sams e.clear(); 59221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams delete rs; 60221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams printf("Delete OK\n"); 61221a4b17cda03916a0599628fcbb5f48605a0e5aJason Sams} 62