summaryrefslogtreecommitdiffstats
path: root/libs/rs/scriptc
diff options
context:
space:
mode:
authorJason Sams <rjsams@android.com>2010-08-16 12:41:48 -0700
committerJason Sams <rjsams@android.com>2010-08-16 12:41:48 -0700
commit02f62aa7d110b025b1867cb200891196f98b2628 (patch)
tree461280a32163624a6db6eee9b068b4e3eb87a18a /libs/rs/scriptc
parent93af2e48a7af71cee18781b64150abed7b057e2a (diff)
downloadframeworks_base-02f62aa7d110b025b1867cb200891196f98b2628.zip
frameworks_base-02f62aa7d110b025b1867cb200891196f98b2628.tar.gz
frameworks_base-02f62aa7d110b025b1867cb200891196f98b2628.tar.bz2
Support reference operations in RS scripts.
Change-Id: I9cb5f3cb71823ab24ca51bf0167a0f52cf0691f9
Diffstat (limited to 'libs/rs/scriptc')
-rw-r--r--libs/rs/scriptc/rs_math.rsh71
-rw-r--r--libs/rs/scriptc/rs_types.rsh23
2 files changed, 83 insertions, 11 deletions
diff --git a/libs/rs/scriptc/rs_math.rsh b/libs/rs/scriptc/rs_math.rsh
index bb4aafb..c842ef1 100644
--- a/libs/rs/scriptc/rs_math.rsh
+++ b/libs/rs/scriptc/rs_math.rsh
@@ -29,6 +29,77 @@ extern void __attribute__((overloadable))
#include "rs_cl.rsh"
#include "rs_core.rsh"
+extern void __attribute__((overloadable))
+ rsSetObject(rs_element *dst, rs_element src);
+extern void __attribute__((overloadable))
+ rsSetObject(rs_type *dst, rs_type src);
+extern void __attribute__((overloadable))
+ rsSetObject(rs_allocation *dst, rs_allocation src);
+extern void __attribute__((overloadable))
+ rsSetObject(rs_sampler *dst, rs_sampler src);
+extern void __attribute__((overloadable))
+ rsSetObject(rs_script *dst, rs_script src);
+extern void __attribute__((overloadable))
+ rsSetObject(rs_mesh *dst, rs_mesh src);
+extern void __attribute__((overloadable))
+ rsSetObject(rs_program_fragment *dst, rs_program_fragment src);
+extern void __attribute__((overloadable))
+ rsSetObject(rs_program_vertex *dst, rs_program_vertex src);
+extern void __attribute__((overloadable))
+ rsSetObject(rs_program_raster *dst, rs_program_raster src);
+extern void __attribute__((overloadable))
+ rsSetObject(rs_program_store *dst, rs_program_store src);
+extern void __attribute__((overloadable))
+ rsSetObject(rs_font *dst, rs_font src);
+
+extern void __attribute__((overloadable))
+ rsClearObject(rs_element *dst);
+extern void __attribute__((overloadable))
+ rsClearObject(rs_type *dst);
+extern void __attribute__((overloadable))
+ rsClearObject(rs_allocation *dst);
+extern void __attribute__((overloadable))
+ rsClearObject(rs_sampler *dst);
+extern void __attribute__((overloadable))
+ rsClearObject(rs_script *dst);
+extern void __attribute__((overloadable))
+ rsClearObject(rs_mesh *dst);
+extern void __attribute__((overloadable))
+ rsClearObject(rs_program_fragment *dst);
+extern void __attribute__((overloadable))
+ rsClearObject(rs_program_vertex *dst);
+extern void __attribute__((overloadable))
+ rsClearObject(rs_program_raster *dst);
+extern void __attribute__((overloadable))
+ rsClearObject(rs_program_store *dst);
+extern void __attribute__((overloadable))
+ rsClearObject(rs_font *dst);
+
+extern bool __attribute__((overloadable))
+ rsIsObject(rs_element);
+extern bool __attribute__((overloadable))
+ rsIsObject(rs_type);
+extern bool __attribute__((overloadable))
+ rsIsObject(rs_allocation);
+extern bool __attribute__((overloadable))
+ rsIsObject(rs_sampler);
+extern bool __attribute__((overloadable))
+ rsIsObject(rs_script);
+extern bool __attribute__((overloadable))
+ rsIsObject(rs_mesh);
+extern bool __attribute__((overloadable))
+ rsIsObject(rs_program_fragment);
+extern bool __attribute__((overloadable))
+ rsIsObject(rs_program_vertex);
+extern bool __attribute__((overloadable))
+ rsIsObject(rs_program_raster);
+extern bool __attribute__((overloadable))
+ rsIsObject(rs_program_store);
+extern bool __attribute__((overloadable))
+ rsIsObject(rs_font);
+
+
+
// Allocations
// Return the rs_allocation associated with a bound data
diff --git a/libs/rs/scriptc/rs_types.rsh b/libs/rs/scriptc/rs_types.rsh
index fd9ac16..dd42972 100644
--- a/libs/rs/scriptc/rs_types.rsh
+++ b/libs/rs/scriptc/rs_types.rsh
@@ -14,17 +14,18 @@ typedef uint16_t ushort;
typedef uint32_t uint;
typedef uint64_t ulong;
-typedef struct { int* p; } __attribute__((packed, aligned(4))) rs_element;
-typedef struct { int* p; } __attribute__((packed, aligned(4))) rs_type;
-typedef struct { int* p; } __attribute__((packed, aligned(4))) rs_allocation;
-typedef struct { int* p; } __attribute__((packed, aligned(4))) rs_sampler;
-typedef struct { int* p; } __attribute__((packed, aligned(4))) rs_script;
-typedef struct { int* p; } __attribute__((packed, aligned(4))) rs_mesh;
-typedef struct { int* p; } __attribute__((packed, aligned(4))) rs_program_fragment;
-typedef struct { int* p; } __attribute__((packed, aligned(4))) rs_program_vertex;
-typedef struct { int* p; } __attribute__((packed, aligned(4))) rs_program_raster;
-typedef struct { int* p; } __attribute__((packed, aligned(4))) rs_program_store;
-typedef struct { int* p; } __attribute__((packed, aligned(4))) rs_font;
+typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_element;
+typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_type;
+typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_allocation;
+typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_sampler;
+typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_script;
+typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_mesh;
+typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_program_fragment;
+typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_program_vertex;
+typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_program_raster;
+typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_program_store;
+typedef struct { const int* const p; } __attribute__((packed, aligned(4))) rs_font;
+
typedef float float2 __attribute__((ext_vector_type(2)));
typedef float float3 __attribute__((ext_vector_type(3)));