Permalink
Browse files

docs: fixing bug 5942573

Change-Id: I2479dc8916f98a8bf7dbec95dc29cbd871c51be5
  • Loading branch information...
1 parent 0912540 commit 91caf5ada395f4516ed04f6442f0c36529f3bcb4 @robertly robertly committed with superatmel Feb 22, 2012
@@ -142,7 +142,7 @@ href="{@docRoot}resources/samples/RenderScript/MiscSamples/index.html">Misc Samp
<p class="note"><strong>Note:</strong> The Renderscript runtime makes its best effort to
refresh the frame at the specified rate. For example, if you are creating a live wallpaper
- and set the return value to 20, the Renderscript runtime renders the wallpaper at 20fps if it has just
+ and set the return value to 20, the Renderscript runtime renders the wallpaper at 50fps if it has just
enough or more resources to do so. It renders as fast as it can if not enough resources
are available.</p>
@@ -570,7 +570,7 @@ point if this is your first time using Renderscript.</p>
vertex 0, 1, and 2 (the vertices are drawn counter-clockwise).</p>
<pre>
int float2VtxSize = 2;
-Mesh.TriangleMeshBuilder triangle = new Mesh.TriangleMeshBuilder(renderscriptGL,
+Mesh.TriangleMeshBuilder triangles = new Mesh.TriangleMeshBuilder(renderscriptGL,
float2VtxSize, Mesh.TriangleMeshBuilder.COLOR);
triangles.addVertex(300.f, 300.f);
triangles.addVertex(150.f, 450.f);
@@ -231,7 +231,8 @@ would block until the value was returned.</p>
<p>
If you want the Renderscript code to send a value back to the Android framework, use the
-<code>rsSendToClient()</code> function.
+<a href="{@docRoot}reference/renderscript/rs__core_8rsh.html"><code>rsSendToClient()</code></a>
+function.
</p>
<h3 id="var">Variables</h3>
@@ -256,6 +257,7 @@ public long get_unsignedInteger(){
}
</pre>
+<<<<<<< HEAD
<h3 id="pointer">Pointers</h3>
<p>Pointers are reflected into the script class itself, located in
<code>project_root/gen/package/name/ScriptC_renderscript_filename</code>. You
@@ -346,6 +348,8 @@ that is allocated in the Android VM to the Renderscript runtime (you cannot allo
memory in your <code>.rs</code> file). For more information, see <a href="#memory">Working
with Allocated Memory</a>.
</p>
+=======
+>>>>>>> docs: fixing bug 5942573
<h3 id="struct">Structs</h3>
<p>Structs are reflected into their own classes, located in
@@ -354,7 +358,8 @@ with Allocated Memory</a>.
specified number of <code>struct</code>s. For example, if you declare the following struct:</p>
<pre>
typedef struct Point {
-float2 point;
+ float2 position;
+ float size;
} Point_t;
</pre>
@@ -521,7 +526,8 @@ in memory. Each <code>struct</code>'s class defines the following methods and co
</pre>
<p>If you modify the memory in one memory space and want to push the updates to the rest of
- the memory spaces, call <code>rsgAllocationSyncAll()</code> in your Renderscript code to
+ the memory spaces, call <a href="{@docRoot}reference/renderscript/rs__graphics_8rsh.html">
+ <code>rsgAllocationSyncAll()</code></a> in your Renderscript code to
synchronize the memory.</p>
</li>
@@ -554,6 +560,56 @@ Renderscript runtime. When you call a set accessor method on a member, there is
properties that are not yet synchronized.</li>
</ul>
+ <h3 id="pointer">Pointers</h3>
+ <p>Pointers are reflected into the script class itself, located in
+<code>project_root/gen/package/name/ScriptC_renderscript_filename</code>. You
+can declare pointers to a <code>struct</code> or any of the supported Renderscript types, but a
+<code>struct</code> cannot contain pointers or nested arrays. For example, if you declare the
+following pointers to a <code>struct</code> and <code>int32_t</code></p>
+
+<pre>
+typedef struct Point {
+ float2 position;
+ float size;
+} Point_t;
+
+Point_t *touchPoints;
+int32_t *intPointer;
+</pre>
+ <p>then the following code is generated in:</p>
+
+<pre>
+private ScriptField_Point mExportVar_touchPoints;
+public void bind_touchPoints(ScriptField_Point v) {
+ mExportVar_touchPoints = v;
+ if (v == null) bindAllocation(null, mExportVarIdx_touchPoints);
+ else bindAllocation(v.getAllocation(), mExportVarIdx_touchPoints);
+}
+
+public ScriptField_Point get_touchPoints() {
+ return mExportVar_touchPoints;
+}
+
+private Allocation mExportVar_intPointer;
+public void bind_intPointer(Allocation v) {
+ mExportVar_intPointer = v;
+ if (v == null) bindAllocation(null, mExportVarIdx_intPointer);
+ else bindAllocation(v, mExportVarIdx_intPointer);
+}
+
+public Allocation get_intPointer() {
+ return mExportVar_intPointer;
+}
+ </pre>
+
+<p>A <code>get</code> method and a special method named <code>bind_<em>pointer_name</em></code>
+(instead of a <code>set()</code> method) is generated. This method allows you to bind the memory
+that is allocated in the Android VM to the Renderscript runtime (you cannot allocate
+memory in your <code>.rs</code> file). For more information, see <a href="#memory">Working
+with Allocated Memory</a>.
+</p>
+
+
<h2 id="mem-allocation">Memory Allocation APIs</h2>
<p>Applications that use Renderscript still run in the Android VM. The actual Renderscript code, however, runs natively and
@@ -736,7 +792,8 @@ communicated back to the Android framework layer for efficiency purposes. The la
that is set from the Android framework is always returned during a call to a <code>get</code>
method. However, when Android framework code modifies a variable, that change can be communicated to
the Renderscript runtime automatically or synchronized at a later time. If you need to send data
-from the Renderscript runtime to the Android framework layer, you can use the <code>rsSendToClient()</code> function
+from the Renderscript runtime to the Android framework layer, you can use the
+<a href="{@docRoot}reference/renderscript/rs__core_8rsh.html"><code>rsSendToClient()</code></a> function
to overcome this limitation.
</p>
<p>When working with dynamically allocated memory, any changes at the Renderscript runtime layer are propagated
@@ -631,7 +631,7 @@ public TriangleMeshBuilder addVertex(float x, float y, float z) {
}
/**
- * Sets the texture coordinate for the last added vertex
+ * Sets the texture coordinate for the vertices that are added after this method call.
*
* @param s texture coordinate s
* @param t texture coordinate t
@@ -648,7 +648,7 @@ public TriangleMeshBuilder setTexture(float s, float t) {
}
/**
- * Sets the normal vector for the last added vertex
+ * Sets the normal vector for the vertices that are added after this method call.
*
* @param x normal vector x
* @param y normal vector y
@@ -667,7 +667,7 @@ public TriangleMeshBuilder setNormal(float x, float y, float z) {
}
/**
- * Sets the color for the last added vertex
+ * Sets the color for the vertices that are added after this method call.
*
* @param r red component
* @param g green component

0 comments on commit 91caf5a

Please sign in to comment.