summaryrefslogtreecommitdiff
path: root/libs/rs/rsg_ScriptJavaClass.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/rs/rsg_ScriptJavaClass.cpp')
-rw-r--r--libs/rs/rsg_ScriptJavaClass.cpp38
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");
-
}