diff options
Diffstat (limited to 'libs/rs/rsg_ScriptJavaClass.cpp')
-rw-r--r-- | libs/rs/rsg_ScriptJavaClass.cpp | 38 |
1 files changed, 22 insertions, 16 deletions
diff --git a/libs/rs/rsg_ScriptJavaClass.cpp b/libs/rs/rsg_ScriptJavaClass.cpp index cee9f52ea1df..a38553f73379 100644 --- a/libs/rs/rsg_ScriptJavaClass.cpp +++ b/libs/rs/rsg_ScriptJavaClass.cpp @@ -7,8 +7,12 @@ struct Element; struct ElementField { + // An Element Field is a combination of an Element with a name assigned. + const char *name; Element *e; + + ElementField(const char *n, Element *_e) { name = n; e = _e; @@ -20,12 +24,21 @@ struct ElementField { }; struct Element { + // An Element can take one of two forms. + // 1: Basic. It contains a single basic type and vector size. + // 2: Complex. It contains a list of fields with names. Each field + // will in turn be another element. + ElementField *fields; - size_t fieldCount; + size_t fieldCount; // If field count is 0, the element is a Basic type. const char *name; bool generated; + // The basic data type from RenderScript.h RsDataType compType; + + // The vector size of the data type for float2, float3, .... + // Allowed sizes are 2,3,4,8,16 uint32_t compVectorSize; Element() { @@ -58,8 +71,7 @@ struct Element { }; -static void genHeader(FILE *f, const char *packageName) -{ +static void genHeader(FILE *f, const char *packageName) { fprintf(f, "package %s;\n", packageName); fprintf(f, "\n"); fprintf(f, "import android.renderscript.*;\n"); @@ -67,9 +79,8 @@ static void genHeader(FILE *f, const char *packageName) fprintf(f, "\n"); } -static const char * RSTypeToJava(RsDataType dt) -{ - switch(dt) { +static const char * RSTypeToJava(RsDataType dt) { + switch (dt) { //case RS_TYPE_FLOAT_16: return "float"; case RS_TYPE_FLOAT_32: return "float"; //case RS_TYPE_FLOAT_64: return "double"; @@ -99,9 +110,8 @@ static const char * RSTypeToJava(RsDataType dt) return NULL; } -static const char * RSTypeToString(RsDataType dt) -{ - switch(dt) { +static const char * RSTypeToString(RsDataType dt) { + switch (dt) { case RS_TYPE_FLOAT_16: return "F16"; case RS_TYPE_FLOAT_32: return "F32"; case RS_TYPE_FLOAT_64: return "F64"; @@ -131,8 +141,7 @@ static const char * RSTypeToString(RsDataType dt) return NULL; } -bool rsGenerateElementClass(const Element *e, const char *packageName, FILE *f) -{ +bool rsGenerateElementClass(const Element *e, const char *packageName, FILE *f) { genHeader(f, packageName); fprintf(f, "class Element_%s {\n", e->name); @@ -184,8 +193,7 @@ bool rsGenerateElementClass(const Element *e, const char *packageName, FILE *f) return true; } -bool rsGenerateElementClassFile(Element *e, const char *packageName) -{ +bool rsGenerateElementClassFile(Element *e, const char *packageName) { char buf[1024]; sprintf(buf, "Element_%s.java", e->name); printf("Creating file %s \n", buf); @@ -217,8 +225,7 @@ bool rsGenerateScriptClass(const ScriptC *script, const char *packageName, FILE -int main(int argc, const char *argv) -{ +int main(int argc, const char *argv) { Element *u8 = new Element(RS_TYPE_UNSIGNED_8, 1); Element *i32 = new Element(RS_TYPE_SIGNED_32, 1); Element *f32 = new Element(RS_TYPE_FLOAT_32, 1); @@ -249,6 +256,5 @@ int main(int argc, const char *argv) printf("1\n"); rsGenerateElementClassFile(e_Pixel, "android"); rsGenerateElementClassFile(e_Params, "android"); - } |