From 164aaedf7f24827c3da84acc733325ae985930d6 Mon Sep 17 00:00:00 2001 From: Alex Sakhartchouk Date: Thu, 1 Jul 2010 16:14:06 -0700 Subject: 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 --- libs/rs/rsScriptC_LibGL.cpp | 48 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 7 deletions(-) (limited to 'libs/rs/rsScriptC_LibGL.cpp') diff --git a/libs/rs/rsScriptC_LibGL.cpp b/libs/rs/rsScriptC_LibGL.cpp index dbd398e..7185009 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(mesh); + Mesh *sm = static_cast(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(vsm); + Mesh *sm = static_cast(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(vsm); + if (!rsc->setupCheck()) { + return; + } + sm->renderPrimitiveRange(rsc, 0, start, len); +} + +static void SC_drawMesh(RsMesh vsm) +{ + GET_TLS(); + Mesh *sm = static_cast(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(vsm); + Mesh *sm = static_cast(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(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 }, -- cgit v1.1