summaryrefslogtreecommitdiff
path: root/libs/rs/rsScriptC_LibGL.cpp
diff options
context:
space:
mode:
authorAlex Sakhartchouk <alexst@google.com>2010-07-01 16:14:06 -0700
committerAlex Sakhartchouk <alexst@google.com>2010-07-01 16:14:12 -0700
commit164aaedf7f24827c3da84acc733325ae985930d6 (patch)
tree20e8d0a291b527ce31dc91dd3a32e32ab69a5ad8 /libs/rs/rsScriptC_LibGL.cpp
parent738639ccd0f12b06d17df3d3b3ee68f506311331 (diff)
Start of mesh API cleanup.
Switched all native code to go through Mesh class. Removed SimpleMesh Added java Mesh class Will need to port all existing code to use java Mesh, then remove java SimpleMesh. Change-Id: Idb9c03d0b06b4ef87db28dffcffa1881d39120e5
Diffstat (limited to 'libs/rs/rsScriptC_LibGL.cpp')
-rw-r--r--libs/rs/rsScriptC_LibGL.cpp48
1 files changed, 41 insertions, 7 deletions
diff --git a/libs/rs/rsScriptC_LibGL.cpp b/libs/rs/rsScriptC_LibGL.cpp
index dbd398e34c42..7185009b7a34 100644
--- a/libs/rs/rsScriptC_LibGL.cpp
+++ b/libs/rs/rsScriptC_LibGL.cpp
@@ -43,10 +43,10 @@ using namespace android::renderscript;
// IO routines
//////////////////////////////////////////////////////////////////////////////
-static void SC_updateSimpleMesh(RsSimpleMesh mesh)
+static void SC_updateSimpleMesh(RsMesh mesh)
{
GET_TLS();
- SimpleMesh *sm = static_cast<SimpleMesh *>(mesh);
+ Mesh *sm = static_cast<Mesh *>(mesh);
sm->uploadAll(rsc);
}
@@ -220,24 +220,54 @@ static void SC_drawRect(float x1, float y1,
x1, y1, z);
}
-static void SC_drawSimpleMesh(RsSimpleMesh vsm)
+static void SC_drawSimpleMesh(RsMesh vsm)
{
GET_TLS();
- SimpleMesh *sm = static_cast<SimpleMesh *>(vsm);
+ Mesh *sm = static_cast<Mesh *>(vsm);
+ if (!rsc->setupCheck()) {
+ return;
+ }
+ sm->renderPrimitive(rsc, 0);
+}
+
+static void SC_drawSimpleMeshRange(RsMesh vsm, uint32_t start, uint32_t len)
+{
+ GET_TLS();
+ Mesh *sm = static_cast<Mesh *>(vsm);
+ if (!rsc->setupCheck()) {
+ return;
+ }
+ sm->renderPrimitiveRange(rsc, 0, start, len);
+}
+
+static void SC_drawMesh(RsMesh vsm)
+{
+ GET_TLS();
+ Mesh *sm = static_cast<Mesh *>(vsm);
if (!rsc->setupCheck()) {
return;
}
sm->render(rsc);
}
-static void SC_drawSimpleMeshRange(RsSimpleMesh vsm, uint32_t start, uint32_t len)
+static void SC_drawMeshPrimitive(RsMesh vsm, uint32_t primIndex)
{
GET_TLS();
- SimpleMesh *sm = static_cast<SimpleMesh *>(vsm);
+ Mesh *sm = static_cast<Mesh *>(vsm);
if (!rsc->setupCheck()) {
return;
}
- sm->renderRange(rsc, start, len);
+ sm->renderPrimitive(rsc, primIndex);
+}
+
+static void SC_drawMeshPrimitiveRange(RsMesh vsm, uint32_t primIndex, uint32_t start, uint32_t len)
+{
+ GET_TLS();
+ Mesh *sm = static_cast<Mesh *>(vsm);
+ if (!rsc->setupCheck()) {
+ return;
+ }
+ sm->renderPrimitiveRange(rsc, primIndex, start, len);
}
@@ -375,6 +405,10 @@ static ScriptCState::SymbolTable_t gSyms[] = {
{ "_Z17rsgDrawSimpleMesh7rs_mesh", (void *)&SC_drawSimpleMesh },
{ "_Z17rsgDrawSimpleMesh7rs_meshii", (void *)&SC_drawSimpleMeshRange },
+ { "_Z11rsgDrawMesh7rs_mesh", (void *)&SC_drawMesh },
+ { "_Z11rsgDrawMesh7rs_meshi", (void *)&SC_drawMeshPrimitive },
+ { "_Z11rsgDrawMesh7rs_meshiii", (void *)&SC_drawMeshPrimitiveRange },
+
{ "rsgClearColor", (void *)&SC_ClearColor },
{ "rsgClearDepth", (void *)&SC_ClearDepth },