summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--graphics/java/android/renderscript/Allocation.java19
-rw-r--r--graphics/java/android/renderscript/Mesh.java28
-rw-r--r--libs/rs/rsScriptC_LibGL.cpp22
-rw-r--r--libs/rs/scriptc/rs_graphics.rsh7
4 files changed, 20 insertions, 56 deletions
diff --git a/graphics/java/android/renderscript/Allocation.java b/graphics/java/android/renderscript/Allocation.java
index 3ff483d..0dbc204 100644
--- a/graphics/java/android/renderscript/Allocation.java
+++ b/graphics/java/android/renderscript/Allocation.java
@@ -102,12 +102,6 @@ public class Allocation extends BaseObj {
mRS.nAllocationSyncAll(getID(), srcLocation);
}
- public void uploadToBufferObject() {
- mRS.validate();
- mRS.nAllocationUploadToBufferObject(getID());
- }
-
-
public void copyFrom(BaseObj[] d) {
mRS.validate();
if (d.length != mType.getCount()) {
@@ -516,19 +510,6 @@ public class Allocation extends BaseObj {
USAGE_GRAPHICS_TEXTURE);
}
-/*
- static public Allocation createFromBitmapResource(RenderScript rs,
- Resources res,
- int id,
- Element dstFmt,
- boolean genMips) {
- MipmapControl mc = MipmapControl.MIPMAP_NONE;
- if (genMips) {
- mc = MipmapControl.MIPMAP_ON_SYNC_TO_TEXTURE;
- }
- return createFromBitmapResource(rs, res, id, mc, USAGE_GRAPHICS_TEXTURE);
- }
-*/
static public Allocation createFromString(RenderScript rs,
String str,
int usage) {
diff --git a/graphics/java/android/renderscript/Mesh.java b/graphics/java/android/renderscript/Mesh.java
index b103af4..950a91a 100644
--- a/graphics/java/android/renderscript/Mesh.java
+++ b/graphics/java/android/renderscript/Mesh.java
@@ -93,20 +93,23 @@ public class Mesh extends BaseObj {
public static class Builder {
RenderScript mRS;
+ int mUsage;
class Entry {
Type t;
Element e;
int size;
Primitive prim;
+ int usage;
}
int mVertexTypeCount;
Entry[] mVertexTypes;
Vector mIndexTypes;
- public Builder(RenderScript rs) {
+ public Builder(RenderScript rs, int usage) {
mRS = rs;
+ mUsage = usage;
mVertexTypeCount = 0;
mVertexTypes = new Entry[16];
mIndexTypes = new Vector();
@@ -190,10 +193,10 @@ public class Mesh extends BaseObj {
Allocation alloc = null;
Entry entry = (Entry)b.mIndexTypes.elementAt(ct);
if (entry.t != null) {
- alloc = Allocation.createTyped(rs, entry.t);
+ alloc = Allocation.createTyped(rs, entry.t, b.mUsage);
}
else if(entry.e != null) {
- alloc = Allocation.createSized(rs, entry.e, entry.size);
+ alloc = Allocation.createSized(rs, entry.e, entry.size, b.mUsage);
}
int allocID = (alloc == null) ? 0 : alloc.getID();
rs.nMeshBindIndex(id, allocID, entry.prim.mID, ct);
@@ -205,9 +208,9 @@ public class Mesh extends BaseObj {
Allocation alloc = null;
Entry entry = b.mVertexTypes[ct];
if (entry.t != null) {
- alloc = Allocation.createTyped(rs, entry.t);
+ alloc = Allocation.createTyped(rs, entry.t, b.mUsage);
} else if(entry.e != null) {
- alloc = Allocation.createSized(rs, entry.e, entry.size);
+ alloc = Allocation.createSized(rs, entry.e, entry.size, b.mUsage);
}
rs.nMeshBindVertex(id, alloc.getID(), ct);
newMesh.mVertexBuffers[ct] = alloc;
@@ -460,7 +463,12 @@ public class Mesh extends BaseObj {
}
mElement = b.create();
- Builder smb = new Builder(mRS);
+ int usage = Allocation.USAGE_SCRIPT;
+ if (uploadToBufferObject) {
+ usage |= Allocation.USAGE_GRAPHICS_VERTEX;
+ }
+
+ Builder smb = new Builder(mRS, usage);
smb.addVertexType(mElement, mVtxCount / floatCount);
smb.addIndexType(Element.U16(mRS), mIndexCount, Primitive.TRIANGLE);
@@ -468,11 +476,15 @@ public class Mesh extends BaseObj {
sm.getVertexAllocation(0).copyFrom(mVtxData);
if(uploadToBufferObject) {
- sm.getVertexAllocation(0).uploadToBufferObject();
+ if (uploadToBufferObject) {
+ sm.getVertexAllocation(0).syncAll(Allocation.USAGE_SCRIPT);
+ }
}
sm.getIndexAllocation(0).copyFrom(mIndexData);
- sm.getIndexAllocation(0).uploadToBufferObject();
+ if (uploadToBufferObject) {
+ sm.getIndexAllocation(0).syncAll(Allocation.USAGE_SCRIPT);
+ }
return sm;
}
diff --git a/libs/rs/rsScriptC_LibGL.cpp b/libs/rs/rsScriptC_LibGL.cpp
index fb5980a..48a0969 100644
--- a/libs/rs/rsScriptC_LibGL.cpp
+++ b/libs/rs/rsScriptC_LibGL.cpp
@@ -287,24 +287,6 @@ static void SC_allocationSyncAll2(RsAllocation va, RsAllocationUsageType source)
static_cast<Allocation *>(va)->syncAll(rsc, source);
}
-static void SC_uploadToTexture2(RsAllocation va, uint32_t baseMipLevel) {
- CHECK_OBJ(va);
- GET_TLS();
- rsi_AllocationUploadToTexture(rsc, va, false, baseMipLevel);
-}
-
-static void SC_uploadToTexture(RsAllocation va) {
- CHECK_OBJ(va);
- GET_TLS();
- rsi_AllocationUploadToTexture(rsc, va, false, 0);
-}
-
-static void SC_uploadToBufferObject(RsAllocation va) {
- CHECK_OBJ(va);
- GET_TLS();
- rsi_AllocationUploadToBufferObject(rsc, va);
-}
-
static void SC_ClearColor(float r, float g, float b, float a) {
GET_TLS();
rsc->setupProgramStore();
@@ -439,10 +421,6 @@ static ScriptCState::SymbolTable_t gSyms[] = {
{ "_Z20rsgAllocationSyncAll13rs_allocation", (void *)&SC_allocationSyncAll, false },
- { "_Z18rsgUploadToTexture13rs_allocationj", (void *)&SC_uploadToTexture2, false },
- { "_Z18rsgUploadToTexture13rs_allocation", (void *)&SC_uploadToTexture, false },
- { "_Z23rsgUploadToBufferObject13rs_allocation", (void *)&SC_uploadToBufferObject, false },
-
{ "_Z11rsgDrawRectfffff", (void *)&SC_drawRect, false },
{ "_Z11rsgDrawQuadffffffffffff", (void *)&SC_drawQuad, false },
{ "_Z20rsgDrawQuadTexCoordsffffffffffffffffffff", (void *)&SC_drawQuadTexCoords, false },
diff --git a/libs/rs/scriptc/rs_graphics.rsh b/libs/rs/scriptc/rs_graphics.rsh
index 3e708aa..3868f24 100644
--- a/libs/rs/scriptc/rs_graphics.rsh
+++ b/libs/rs/scriptc/rs_graphics.rsh
@@ -38,13 +38,6 @@ extern void __attribute__((overloadable))
rsgAllocationSyncAll(rs_allocation);
extern void __attribute__((overloadable))
- rsgUploadToTexture(rs_allocation);
-extern void __attribute__((overloadable))
- rsgUploadToTexture(rs_allocation, uint mipLevel);
-extern void __attribute__((overloadable))
- rsgUploadToBufferObject(rs_allocation);
-
-extern void __attribute__((overloadable))
rsgDrawRect(float x1, float y1, float x2, float y2, float z);
extern void __attribute__((overloadable))
rsgDrawQuad(float x1, float y1, float z1,