diff options
Diffstat (limited to 'docs/html')
-rw-r--r-- | docs/html/about/versions/nougat/android-7.0-samples.jd | 2 | ||||
-rw-r--r-- | docs/html/guide/topics/renderscript/reference/rs_allocation_create.jd | 1060 | ||||
-rw-r--r-- | docs/html/guide/topics/renderscript/reference/rs_for_each.jd | 137 | ||||
-rw-r--r-- | docs/html/samples/new/index.jd | 130 | ||||
-rw-r--r-- | docs/html/training/location/geofencing.jd | 43 | ||||
-rw-r--r-- | docs/html/training/tv/tif/tvinput.jd | 312 |
6 files changed, 1509 insertions, 175 deletions
diff --git a/docs/html/about/versions/nougat/android-7.0-samples.jd b/docs/html/about/versions/nougat/android-7.0-samples.jd index e283a7a22f83..ff63beff1dd9 100644 --- a/docs/html/about/versions/nougat/android-7.0-samples.jd +++ b/docs/html/about/versions/nougat/android-7.0-samples.jd @@ -6,7 +6,7 @@ page.image=images/cards/card-n-samples_2x.png <p> Use the code samples below to learn about Android 7.0 capabilities and APIs. To - download the samples in Android Studio, select the <b>File > Import + download the samples in Android Studio, select the <b>File > New > Import Samples</b> menu option. </p> diff --git a/docs/html/guide/topics/renderscript/reference/rs_allocation_create.jd b/docs/html/guide/topics/renderscript/reference/rs_allocation_create.jd new file mode 100644 index 000000000000..2defca3d32d5 --- /dev/null +++ b/docs/html/guide/topics/renderscript/reference/rs_allocation_create.jd @@ -0,0 +1,1060 @@ +page.title=RenderScript Allocation Creation Functions + +@jd:body + +<div class='renderscript'> +<h2>Overview</h2> +<p> The functions below are used to create allocations from within a script. +These functions can be called directly or indirectly from an invokable +function. It is an error if any control flow can result in calling these functions +from a RenderScript kernel function. +</p> +<h2>Summary</h2> +<table class='jd-sumtable'><tbody> + <tr><th colspan='2'>Functions</th></tr> + <tr class='alt-color api apilevel-1'> + <td class='jd-linkcol'> + <a href='rs_allocation_create.html#android_rs:rsCreateAllocation'>rsCreateAllocation</a> + </td> + <td class='jd-descrcol' width='100%'> + Creates an <a href={@docRoot}guide/topics/renderscript/reference/rs_object_types.html#android_rs:rs_allocation>rs_allocation</a> object of given <a href={@docRoot}guide/topics/renderscript/reference/rs_object_types.html#android_rs:rs_type>rs_type</a> + </td> + </tr> + <tr class='alt-color api apilevel-1'> + <td class='jd-linkcol'> + <a href='rs_allocation_create.html#android_rs:rsCreateElement'>rsCreateElement</a> + </td> + <td class='jd-descrcol' width='100%'> + Creates an <a href={@docRoot}guide/topics/renderscript/reference/rs_object_types.html#android_rs:rs_element>rs_element</a> object of the specified data type + </td> + </tr> + <tr class='alt-color api apilevel-1'> + <td class='jd-linkcol'> + <a href='rs_allocation_create.html#android_rs:rsCreatePixelElement'>rsCreatePixelElement</a> + </td> + <td class='jd-descrcol' width='100%'> + Creates an <a href={@docRoot}guide/topics/renderscript/reference/rs_object_types.html#android_rs:rs_element>rs_element</a> object of the specified data type and data kind + </td> + </tr> + <tr class='alt-color api apilevel-1'> + <td class='jd-linkcol'> + <a href='rs_allocation_create.html#android_rs:rsCreateType'>rsCreateType</a> + </td> + <td class='jd-descrcol' width='100%'> + Creates an <a href={@docRoot}guide/topics/renderscript/reference/rs_object_types.html#android_rs:rs_type>rs_type</a> object with the specified <a href={@docRoot}guide/topics/renderscript/reference/rs_object_types.html#android_rs:rs_element>rs_element</a> and shape attributes + </td> + </tr> + <tr class='alt-color api apilevel-1'> + <td class='jd-linkcol'> + <a href='rs_allocation_create.html#android_rs:rsCreateVectorElement'>rsCreateVectorElement</a> + </td> + <td class='jd-descrcol' width='100%'> + Creates an <a href={@docRoot}guide/topics/renderscript/reference/rs_object_types.html#android_rs:rs_element>rs_element</a> object of the specified data type and vector width + </td> + </tr> +</tbody></table> +<h2>Functions</h2> +<a name='android_rs:rsCreateAllocation'></a> +<div class='jd-details'> + <h4 class='jd-details-title'> + <span class='sympad'>rsCreateAllocation</span> + <span class='normal'>: Creates an <a href={@docRoot}guide/topics/renderscript/reference/rs_object_types.html#android_rs:rs_allocation>rs_allocation</a> object of given <a href={@docRoot}guide/topics/renderscript/reference/rs_object_types.html#android_rs:rs_type>rs_type</a></span> + </h4> + <div class='jd-details-descr'> + <table class='jd-tagtable'><tbody> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation(<a href='rs_object_types.html#android_rs:rs_type'>rs_type</a> type); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation(<a href='rs_object_types.html#android_rs:rs_type'>rs_type</a> type, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> usage); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_char(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_char(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_char(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_char2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_char2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_char2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_char3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_char3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_char3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_char4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_char4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_char4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_double(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_double(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_double(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_double2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_double2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_double2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_double3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_double3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_double3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_double4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_double4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_double4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_float(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_float(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_float(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_float2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_float2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_float2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_float3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_float3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_float3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_float4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_float4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_float4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_half(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_half(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_half(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_half2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_half2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_half2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_half3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_half3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_half3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_half4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_half4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_half4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_int(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_int(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_int(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_int2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_int2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_int2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_int3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_int3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_int3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_int4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_int4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_int4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_long(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_long(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_long(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_long2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_long2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_long2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_long3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_long3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_long3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_long4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_long4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_long4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_short(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_short(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_short(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_short2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_short2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_short2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_short3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_short3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_short3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_short4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_short4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_short4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_uchar(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_uchar(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_uchar(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_uchar2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_uchar2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_uchar2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_uchar3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_uchar3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_uchar3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_uchar4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_uchar4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_uchar4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_uint(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_uint(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_uint(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_uint2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_uint2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_uint2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_uint3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_uint3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_uint3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_uint4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_uint4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_uint4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_ulong(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_ulong(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_ulong(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_ulong2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_ulong2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_ulong2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_ulong3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_ulong3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_ulong3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_ulong4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_ulong4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_ulong4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_ushort(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_ushort(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_ushort(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_ushort2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_ushort2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_ushort2(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_ushort3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_ushort3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_ushort3(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_ushort4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_ushort4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> rsCreateAllocation_ushort4(<a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + </tbody></table> + </div> + <div class='jd-tagdata'> <h5 class='jd-tagtitle'>Parameters</h5> + <table class='jd-tagtable'><tbody> + <tr><th>type</th><td>Type of the allocation</td></tr> + <tr><th>usage</th><td>How the allocation should be used. A valid value is either of the following or their combination:<br>RS_ALLOCATION_USAGE_GRAPHICS_TEXTURE,<br>RS_ALLOCATION_USAGE_SCRIPT.</td></tr> + <tr><th>mipmap</th><td>A boolean flag indicating if the allocation is mipmapped and has multiple levels of detail (LoD).</td></tr> + <tr><th>dimX</th><td>Size on dimension x. Must be non zero.</td></tr> + <tr><th>dimY</th><td>Size on dimension y. 0 for single-dimension allocations.</td></tr> + <tr><th>dimZ</th><td>Size on dimension z. 0 for single-dimension and two-dimension allocations.</td></tr> + </tbody></table> + </div> + <div class='jd-tagdata jd-tagdescr'> +<p> Creates an rs_allocation object of the given rs_type and for the specified usages. +</p> + +<p> RS_ALLOCATION_USAGE_SCRIPT and RS_ALLOCATION_USAGE_GRAPHICS_TEXTURE are the + only supported usage flags for Allocations created from within a RenderScript + script. +</p> + +<p> You can also use rsCreateAllocation_<type><width> wrapper functions to directly + create allocations of scalar and vector numerical types without creating + intermediate rs_element or rs_type objects. +</p> + +<p> For example, rsCreateAllocation_int4() returns an Allocation of int4 data type of + specified dimensions. +</p> + </div> +</div> + +<a name='android_rs:rsCreateElement'></a> +<div class='jd-details'> + <h4 class='jd-details-title'> + <span class='sympad'>rsCreateElement</span> + <span class='normal'>: Creates an <a href={@docRoot}guide/topics/renderscript/reference/rs_object_types.html#android_rs:rs_element>rs_element</a> object of the specified data type</span> + </h4> + <div class='jd-details-descr'> + <table class='jd-tagtable'><tbody> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_element'>rs_element</a> rsCreateElement(<a href='rs_object_types.html#android_rs:rs_data_type'>rs_data_type</a> data_type); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + </tbody></table> + </div> + <div class='jd-tagdata'> <h5 class='jd-tagtitle'>Parameters</h5> + <table class='jd-tagtable'><tbody> + <tr><th>data_type</th><td>Data type of the Element</td></tr> + </tbody></table> + </div> + <div class='jd-tagdata jd-tagdescr'> +<p> Creates an rs_element object of the specified data type. The data kind of + the element will be set to RS_KIND_USER and vector width will be set to 1, + indicating non-vector. +</p> + </div> +</div> + +<a name='android_rs:rsCreatePixelElement'></a> +<div class='jd-details'> + <h4 class='jd-details-title'> + <span class='sympad'>rsCreatePixelElement</span> + <span class='normal'>: Creates an <a href={@docRoot}guide/topics/renderscript/reference/rs_object_types.html#android_rs:rs_element>rs_element</a> object of the specified data type and data kind</span> + </h4> + <div class='jd-details-descr'> + <table class='jd-tagtable'><tbody> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_element'>rs_element</a> rsCreatePixelElement(<a href='rs_object_types.html#android_rs:rs_data_type'>rs_data_type</a> data_type, <a href='rs_object_types.html#android_rs:rs_data_kind'>rs_data_kind</a> data_kind); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + </tbody></table> + </div> + <div class='jd-tagdata'> <h5 class='jd-tagtitle'>Parameters</h5> + <table class='jd-tagtable'><tbody> + <tr><th>data_type</th><td>Data type of the Element</td></tr> + <tr><th>data_kind</th><td>Data kind of the Element</td></tr> + </tbody></table> + </div> + <div class='jd-tagdata jd-tagdescr'> +<p> Creates an rs_element object of the specified data type and data kind. The + vector width of the rs_element object will be set to 1, indicating non-vector. +</p> + </div> +</div> + +<a name='android_rs:rsCreateType'></a> +<div class='jd-details'> + <h4 class='jd-details-title'> + <span class='sympad'>rsCreateType</span> + <span class='normal'>: Creates an <a href={@docRoot}guide/topics/renderscript/reference/rs_object_types.html#android_rs:rs_type>rs_type</a> object with the specified <a href={@docRoot}guide/topics/renderscript/reference/rs_object_types.html#android_rs:rs_element>rs_element</a> and shape attributes</span> + </h4> + <div class='jd-details-descr'> + <table class='jd-tagtable'><tbody> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_type'>rs_type</a> rsCreateType(<a href='rs_object_types.html#android_rs:rs_element'>rs_element</a> element, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_type'>rs_type</a> rsCreateType(<a href='rs_object_types.html#android_rs:rs_element'>rs_element</a> element, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_type'>rs_type</a> rsCreateType(<a href='rs_object_types.html#android_rs:rs_element'>rs_element</a> element, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_type'>rs_type</a> rsCreateType(<a href='rs_object_types.html#android_rs:rs_element'>rs_element</a> element, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimX, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimY, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> dimZ, bool mipmaps, bool faces, <a href='rs_object_types.html#android_rs:rs_yuv_format'>rs_yuv_format</a> yuv_format); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + </tbody></table> + </div> + <div class='jd-tagdata'> <h5 class='jd-tagtitle'>Parameters</h5> + <table class='jd-tagtable'><tbody> + <tr><th>element</th><td>An <a href={@docRoot}guide/topics/renderscript/reference/rs_object_types.html#android_rs:rs_element>rs_element</a> object that specifies the cell data type of an allocation.</td></tr> + <tr><th>dimX</th><td>Size on dimension x. Must be non zero.</td></tr> + <tr><th>dimY</th><td>Size on dimension y. 0 for single-dimension allocations.</td></tr> + <tr><th>dimZ</th><td>Size on dimension z. 0 for single-dimension and two-dimension allocations.</td></tr> + <tr><th>mipmaps</th><td>A boolean flag indicating if the allocation is mipmapped and has multiple levels of detail (LoD).</td></tr> + <tr><th>faces</th><td>A boolean flag indicating if the allocation is a cubemap that has cube faces.</td></tr> + <tr><th>yuv_format</th><td>Tye YUV layout.</td></tr> + </tbody></table> + </div> + <div class='jd-tagdata jd-tagdescr'> +<p> Creates an rs_type object with the specified element and shape attributes. +</p> + +<p> dimX specifies the size of the X dimension. +</p> + +<p> dimY, if present and non-zero, indicates that the Y dimension is present and + indicates its size. +</p> + +<p> dimZ, if present and non-zero, indicates that the Z dimension is present and + indicates its size. +</p> + +<p> mipmaps indicates the presence of level of detail (LOD). +</p> + +<p> faces indicates the presence of cubemap faces. +</p> + +<p> yuv_format indicates the associated YUV format (or RS_YUV_NONE). +</p> + </div> +</div> + +<a name='android_rs:rsCreateVectorElement'></a> +<div class='jd-details'> + <h4 class='jd-details-title'> + <span class='sympad'>rsCreateVectorElement</span> + <span class='normal'>: Creates an <a href={@docRoot}guide/topics/renderscript/reference/rs_object_types.html#android_rs:rs_element>rs_element</a> object of the specified data type and vector width</span> + </h4> + <div class='jd-details-descr'> + <table class='jd-tagtable'><tbody> + <tr> + <td><a href='rs_object_types.html#android_rs:rs_element'>rs_element</a> rsCreateVectorElement(<a href='rs_object_types.html#android_rs:rs_data_type'>rs_data_type</a> data_type, <a href='rs_value_types.html#android_rs:uint32_t'>uint32_t</a> vector_width); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + </tbody></table> + </div> + <div class='jd-tagdata'> <h5 class='jd-tagtitle'>Parameters</h5> + <table class='jd-tagtable'><tbody> + <tr><th>data_type</th><td>Data type of the Element</td></tr> + <tr><th>vector_width</th><td>Vector width</td></tr> + </tbody></table> + </div> + <div class='jd-tagdata jd-tagdescr'> +<p> Creates an rs_element object of the specified data type and vector width. + Value of vector_width must be 2, 3 or 4. The data kind of the rs_element object will + be set to RS_KIND_USER. +</p> + </div> +</div> + +</div> diff --git a/docs/html/guide/topics/renderscript/reference/rs_for_each.jd b/docs/html/guide/topics/renderscript/reference/rs_for_each.jd index 9ba56149f142..8b19ba6e7542 100644 --- a/docs/html/guide/topics/renderscript/reference/rs_for_each.jd +++ b/docs/html/guide/topics/renderscript/reference/rs_for_each.jd @@ -1,10 +1,10 @@ -page.title=RenderScript Kernel Invocation Functions and Types +page.title=RenderScript Kernel Launch Functions and Types @jd:body <div class='renderscript'> <h2>Overview</h2> -<p> The <a href='rs_for_each.html#android_rs:rsForEach'>rsForEach</a>() function can be used to invoke the root kernel of a script. +<p> The <a href='rs_for_each.html#android_rs:rsForEach'>rsForEach</a>() and <a href='rs_for_each.html#android_rs:rsForEachWithOptions'>rsForEachWithOptions</a>() functions are used to launch foreach kernels. </p> <p> The other functions are used to get the characteristics of the invocation of @@ -24,6 +24,14 @@ a <a href='rs_for_each.html#android_rs:rs_kernel_context'>rs_kernel_context</a> </tr> <tr class='alt-color api apilevel-1'> <td class='jd-linkcol'> + <a href='rs_for_each.html#android_rs:rs_kernel'>rs_kernel</a> + </td> + <td class='jd-descrcol' width='100%'> + Handle to a kernel function + </td> + </tr> + <tr class='alt-color api apilevel-1'> + <td class='jd-linkcol'> <a href='rs_for_each.html#android_rs:rs_kernel_context'>rs_kernel_context</a> </td> <td class='jd-descrcol' width='100%'> @@ -46,7 +54,15 @@ a <a href='rs_for_each.html#android_rs:rs_kernel_context'>rs_kernel_context</a> <a href='rs_for_each.html#android_rs:rsForEach'>rsForEach</a> </td> <td class='jd-descrcol' width='100%'> - Invoke the root kernel of a script + Launches a kernel + </td> + </tr> + <tr class='alt-color api apilevel-1'> + <td class='jd-linkcol'> + <a href='rs_for_each.html#android_rs:rsForEachWithOptions'>rsForEachWithOptions</a> + </td> + <td class='jd-descrcol' width='100%'> + Launches a kernel with options </td> </tr> <tr class='alt-color api apilevel-1'> @@ -198,6 +214,21 @@ locality when the processing is distributed over multiple cores. </div> </div> +<a name='android_rs:rs_kernel'></a> +<div class='jd-details'> + <h4 class='jd-details-title'> + <span class='sympad'>rs_kernel</span> + <span class='normal'>: Handle to a kernel function</span> + </h4> + <div class='jd-details-descr'> +<p>A typedef of: void* Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> +</p> +<p> An opaque type for a function that is defined with the kernel attribute. A value + of this type can be used in a <a href='rs_for_each.html#android_rs:rsForEach'>rsForEach</a> call to launch a kernel. +</p> + </div> +</div> + <a name='android_rs:rs_kernel_context'></a> <div class='jd-details'> <h4 class='jd-details-title'> @@ -249,7 +280,7 @@ versions, it will also be used to provide hint on how to best iterate over the cells. </p> -<p> The Start fields are inclusive and the End fields are exclusive. E.g. to iterate +<p> The Start fields are inclusive and the End fields are exclusive. For example, to iterate over cells 4, 5, 6, and 7 in the X dimension, set xStart to 4 and xEnd to 8. </p> </div> @@ -260,14 +291,20 @@ over cells 4, 5, 6, and 7 in the X dimension, set xStart to 4 and xEnd to 8. <div class='jd-details'> <h4 class='jd-details-title'> <span class='sympad'>rsForEach</span> - <span class='normal'>: Invoke the root kernel of a script</span> + <span class='normal'>: Launches a kernel</span> </h4> <div class='jd-details-descr'> <table class='jd-tagtable'><tbody> <tr> + <td>void rsForEach(<a href='rs_for_each.html#android_rs:rs_kernel'>rs_kernel</a> kernel, ... ...); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + <tr> <td>void rsForEach(<a href='rs_object_types.html#android_rs:rs_script'>rs_script</a> script, <a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> input, <a href='rs_object_types.html#android_rs:rs_allocation'>rs_allocation</a> output); </td> - <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 14</a> + <td> <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 14 - 23</a> </td> </tr> <tr> @@ -300,35 +337,89 @@ over cells 4, 5, 6, and 7 in the X dimension, set xStart to 4 and xEnd to 8. <table class='jd-tagtable'><tbody> <tr><th>script</th><td>Script to call.</td></tr> <tr><th>input</th><td>Allocation to source data from.</td></tr> - <tr><th>output</th><td>Allocation to write date into.</td></tr> + <tr><th>output</th><td>Allocation to write data into.</td></tr> <tr><th>usrData</th><td>User defined data to pass to the script. May be NULL.</td></tr> <tr><th>sc</th><td>Extra control information used to select a sub-region of the allocation to be processed or suggest a walking strategy. May be NULL.</td></tr> <tr><th>usrDataLen</th><td>Size of the userData structure. This will be used to perform a shallow copy of the data if necessary.</td></tr> + <tr><th>kernel</th><td>Function designator of the kernel function to call, which must be defined with the kernel attribute.</td></tr> + <tr><th>...</th><td>Input and output allocations</td></tr> </tbody></table> </div> <div class='jd-tagdata jd-tagdescr'> -<p> Invoke the kernel named "root" of the specified script. Like other kernels, this root() -function will be invoked repeatedly over the cells of the specificed allocation, filling -the output allocation with the results. +<p> Runs the kernel over zero or more input allocations. They are passed after the +<a href='rs_for_each.html#android_rs:rs_kernel'>rs_kernel</a> argument. If the specified kernel returns a value, an output allocation +must be specified as the last argument. All input allocations, +and the output allocation if it exists, must have the same dimensions. </p> -<p> When rsForEach is called, the root script is launched immediately. rsForEach returns -only when the script has completed and the output allocation is ready to use. +<p> This is a synchronous function. A call to this function only returns after all +the work has completed. If the kernel +function returns any value, the call waits until all results have been written +to the output allocation. </p> -<p> The rs_script argument is typically initialized using a global variable set from Java. +<p> Up to API level 23, the kernel is implicitly specified as the kernel named +"root" in the specified script, and only a single input allocation can be used. +Starting in API level 24, an arbitrary kernel function can be used, +as specified by the kernel argument. +The kernel must be defined in the current script. In addition, more than one +input can be used. </p> -<p> The kernel can be invoked with just an input allocation or just an output allocation. -This can be done by defining an rs_allocation variable and not initializing it. E.g.<code><br/> -rs_script gCustomScript;<br/> -void specializedProcessing(rs_allocation in) {<br/> - rs_allocation ignoredOut;<br/> - rsForEach(gCustomScript, in, ignoredOut);<br/> -}<br/></code> +<p> For example,<code><br/> +float __attribute__((kernel)) square(float a) {<br/> + return a * a;<br/> +}<br/> +<br/> +void compute(rs_allocation ain, rs_allocation aout) {<br/> + rsForEach(square, ain, aout);<br/> +}<br/> +<br/></code> +</p> + </div> +</div> + +<a name='android_rs:rsForEachWithOptions'></a> +<div class='jd-details'> + <h4 class='jd-details-title'> + <span class='sympad'>rsForEachWithOptions</span> + <span class='normal'>: Launches a kernel with options</span> + </h4> + <div class='jd-details-descr'> + <table class='jd-tagtable'><tbody> + <tr> + <td>void rsForEachWithOptions(<a href='rs_for_each.html#android_rs:rs_kernel'>rs_kernel</a> kernel, <a href='rs_for_each.html#android_rs:rs_script_call_t'>rs_script_call_t</a>* options, ... ...); +</td> + <td> Added in <a href='http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels'>API level 24</a> + </td> + </tr> + </tbody></table> + </div> + <div class='jd-tagdata'> <h5 class='jd-tagtitle'>Parameters</h5> + <table class='jd-tagtable'><tbody> + <tr><th>kernel</th><td>Function designator to a function that is defined with the kernel attribute.</td></tr> + <tr><th>options</th><td>Launch options</td></tr> + <tr><th>...</th><td>Input and output allocations</td></tr> + </tbody></table> + </div> + <div class='jd-tagdata jd-tagdescr'> +<p> Launches kernel in a way similar to <a href='rs_for_each.html#android_rs:rsForEach'>rsForEach</a>. However, instead of processing +all cells in the input, this function only processes cells in the subspace of +the index space specified in options. With the index space explicitly specified +by options, no input or output allocation is required for a kernel launch using +this API. If allocations are passed in, they must match the number of arguments +and return value expected by the kernel function. The output allocation is +present if and only if the kernel has a non-void return value. </p> -<p> If both input and output allocations are specified, they must have the same dimensions. +<p> For example,<code><br/> + rs_script_call_t opts = {0};<br/> + opts.xStart = 0;<br/> + opts.xEnd = dimX;<br/> + opts.yStart = 0;<br/> + opts.yEnd = dimY / 2;<br/> + rsForEachWithOptions(foo, &opts, out, out);<br/> +</code> </p> </div> </div> @@ -359,7 +450,7 @@ over and rarely used indices, like the Array0 index. </p> <p> You can access the kernel context by adding a special parameter named "context" of -type rs_kernel_context to your kernel function. E.g.<br/> +type rs_kernel_context to your kernel function. For example,<br/> <code>short RS_KERNEL myKernel(short value, uint32_t x, rs_kernel_context context) {<br/> // The current index in the common x, y, z dimensions are accessed by<br/> // adding these variables as arguments. For the more rarely used indices<br/> @@ -644,7 +735,7 @@ over and rarely used indices, like the Array0 index. </p> <p> You can access it by adding a special parameter named "context" of -type rs_kernel_context to your kernel function. E.g.<br/> +type rs_kernel_context to your kernel function. For example,<br/> <code>int4 RS_KERNEL myKernel(int4 value, rs_kernel_context context) {<br/> uint32_t size = rsGetDimX(context); //...<br/></code> </p> diff --git a/docs/html/samples/new/index.jd b/docs/html/samples/new/index.jd index a7ffa8c45fe8..4d6262edb501 100644 --- a/docs/html/samples/new/index.jd +++ b/docs/html/samples/new/index.jd @@ -5,7 +5,7 @@ page.image=images/cards/samples-new_2x.png <p>The following code samples were recently published. You can download them in the Android SDK Manager under the <b>Samples for SDK</b> -component for Android 6.0 (API 23).</p> +component for Android 7.1 (API 25).</p> <p class="note"> <strong>Note:</strong> The downloadable projects are designed @@ -14,115 +14,67 @@ component for Android 6.0 (API 23).</p> <!-- NOTE TO EDITORS: add most recent samples first --> -<h3 id="ActiveNotification"> - <a href="{@docRoot}samples/ActiveNotifications/index.html">Active - Notification</a> -</h3> -<p> - This sample demonstrates how to use the {@link - android.app.NotificationManager} to tell you how many notifications your app - is currently showing. -</p> - -<h3 id="AutomaticBackup"> - <a href="{@docRoot}samples/AutoBackupForApps/index.html">Auto Backup for - Apps</a> -</h3> - -<p> - Android 6.0 (API level 23) introduces automatic backup for app settings. This - sample demonstrates how to add filtering rules to an app to manage settings - backup. -</p> +<h3 id="app-shortcuts">App shortcuts sample</h3> -<h3 id="Camera2Raw"> - <a href="{@docRoot}samples/Camera2Raw/index.html">Camera 2 Raw</a> -</h3> +<!-- TBA +<img src="sample-img.png" style="float: left; padding-right: 0.5em" + width="xxx"/> +--> <p> - This sample demonstrates how to use the - <a href="{@docRoot}reference/android/hardware/camera2/package-summary.html"> - <code>Camera2</code></a> API to capture RAW camera buffers and save them as - DNG files. -</p> - -<h3 id="ConfirmCredential"> - <a href="{@docRoot}samples/ConfirmCredential/index.html">Confirm - Credential</a> -</h3> - -<p> - This sample demonstrates how to use device credentials as an authentication method in your app. + This sample demonstrates how to use the <a href= + "/preview/app-shortcuts.html">app shortcuts API</a> introduced in Android 7.1 + (API level 25). This API allows an application to define a set of intents + which are displayed when a user long-presses on the app's launcher icon. + Examples are given for registering links both statically in XML, as well as + dynamically at runtime. </p> -<h3 id="DeviceOwner"> - <a href="{@docRoot}samples/DeviceOwner/index.html">Device Owner</a> -</h3> - <p> - This sample demonstrates how to use the device owner features to manage and - configure a device. + <a href="/samples/AppShortcuts/index.html">App shortcuts sample</a> </p> -<h3 id="DirectShare"> - <a href="{@docRoot}samples/DirectShare/index.html">Direct Share</a> -</h3> - -<p> - This sample demonstrates how to provide the - <a href="{@docRoot}about/versions/marshmallow/android-6.0.html#direct-share">Direct - Share</a> feature. The app shows some options directly in the list of share - intent candidates. -</p> +<h3 id="img-kbd-app">Image keyboard app sample</h3> -<h3 id="FingerprintDialog"> - <a href="{@docRoot}samples/FingerprintDialog/index.html">Fingerprint - Dialog</a> -</h3> +<!-- TBA +<img src="sample-img.png" style="float: left; padding-right: 0.5em" + width="xxx"/> +--> <p> - This sample demonstrates how to recognize registered fingerprints to - authenticate your app's user. + This sample demonstrates how to implement the <a href= + "/reference/android/view/inputmethod/InputConnection.html#commitContent(android.view.inputmethod.InputContentInfo,%20int,%20android.os.Bundle)"> + Commit Content API</a>, using the <a href= + "/topic/libraries/support-library/index.html">Android Support Library</a>. + This API provides a universal way for IMEs to send images and other rich + content directly to a text editor in an app, allowing users to compose + content using custom emojis, stickers, or other rich content provided by + other applications. </p> -<h3 id="MidiScope"> - <a href="{@docRoot}samples/MidiScope/index.html">MidiScope</a> -</h3> - <p> - This sample demonstrates how to use the <a href= - "{@docRoot}reference/android/media/midi/package-summary.html">MIDI API</a> to - receive and process MIDI signals coming from an attached input device. + <a href="/samples/CommitContentSampleApp/index.html">Image keyboard app sample</a> </p> -<h3 id="MidiSynth"> - <a href="{@docRoot}samples/MidiSynth/index.html">MidiSynth</a> -</h3> +<h3 id="img-kbd-ime">Image keyboard IME sample</h3> -<p> - This sample demonstrates how to use the <a href= - "{@docRoot}reference/android/media/midi/package-summary.html">MIDI API</a> to - receive and play MIDI messages coming from an attached input device. -</p> - -<h3 id="NfcProvisioning"> - <a href="{@docRoot}samples/NfcProvisioning/index.html">NFC Provisioning</a> -</h3> +<!-- TBA +<img src="sample-img.png" style="float: left; padding-right: 0.5em" + width="xxx"/> +--> <p> - This sample demonstrates how to use NFC to provision other devices with a - specific device owner. + This sample demonstrates how to write a <a href= + "/preview/image-keyboard.html">custom image keyboard</a> using the <a href= + "/reference/android/view/inputmethod/InputConnection.html#commitContent(android.view.inputmethod.InputContentInfo,%20int,%20android.os.Bundle)"> + Commit Content API</a> and the <a href= + "/topic/libraries/support-library/index.html">Android Support Library</a>. + This keyboard will be displayed inside compatible apps (also using the Commit + Content API), allowing users to insert emojis, stickers, or other rich + content into text editors. </p> -<h3 id="RuntimePermissions"> - <a href= - "{@docRoot}samples/RuntimePermissions/index.html">RuntimePermissions</a> -</h3> - <p> - This sample shows runtime permissions available in Android 6.0 (API level 23) - and higher. Display the log on screen to follow the execution. If executed on - an Android 6.0 device, the app displays an additional option to access - contacts using an 6.0-only optional permission. + <a href="/samples/CommitContentSampleIME/index.html">Image keyboard IME sample</a> </p> diff --git a/docs/html/training/location/geofencing.jd b/docs/html/training/location/geofencing.jd index ce6ad55ad889..046e99e9bed1 100644 --- a/docs/html/training/location/geofencing.jd +++ b/docs/html/training/location/geofencing.jd @@ -332,22 +332,39 @@ LocationServices.GeofencingApi.removeGeofences( <p>This section outlines recommendations for using geofencing with the location APIs for Android.</p> -<h3>Reduce power consumption</h3> +<h3> + Reduce power consumption +</h3> -<p>You can use the following techniques to optimize power consumption in your apps that use geofencing:</p> +<p> + You can use the following techniques to optimize power consumption in your + apps that use geofencing: +</p> <ul> -<li><p>Set the <a href="{@docRoot}android/reference/com/google/android/gms/location/Geofence.Builder.html#setNotificationResponsiveness(int)"> -notification responsiveness</a> to a higher value. Doing so improves power consumption by -increasing the latency of geofence alerts. For example, if you set a responsiveness value of five -minutes your app only checks for an entrance or exit alert once every five minutes. -Setting lower values does not necessarily mean that users will be notified within that time period -(for example, if you set a value of 5 seconds it may take a bit longer than that to receive the -alert).</p></li> -<li><p>Use a larger geofence radius for locations where a user spends a significant amount of time, -such as home or work. While a larger radius doesn't directly reduce power consumption, it reduces -the frequency at which the app checks for entrance or exit, effectively lowering overall power -consumption.</p></li> + <li> + <p> + Set the <a href= + "https://developers.google.com/android/reference/com/google/android/gms/location/Geofence.Builder.html#setNotificationResponsiveness(int)"> + notification responsiveness</a> to a higher value. Doing so improves + power consumption by increasing the latency of geofence alerts. For + example, if you set a responsiveness value of five minutes your app only + checks for an entrance or exit alert once every five minutes. Setting + lower values does not necessarily mean that users will be notified + within that time period (for example, if you set a value of 5 seconds it + may take a bit longer than that to receive the alert). + </p> + </li> + + <li> + <p> + Use a larger geofence radius for locations where a user spends a + significant amount of time, such as home or work. While a larger radius + doesn't directly reduce power consumption, it reduces the frequency at + which the app checks for entrance or exit, effectively lowering overall + power consumption. + </p> + </li> </ul> <h3>Choose the optimal radius for your geofence</h3> diff --git a/docs/html/training/tv/tif/tvinput.jd b/docs/html/training/tv/tif/tvinput.jd index 1a53398e6e4c..2153ef866860 100644 --- a/docs/html/training/tv/tif/tvinput.jd +++ b/docs/html/training/tv/tif/tvinput.jd @@ -10,9 +10,8 @@ trainingnavtop=true <div id="tb"> <h2>This lesson teaches you to</h2> <ol> - <li><a href="#manifest">Declare Your TV Input Service in the Manifest</a></li> - <li><a href="#tvinput">Define Your TV Input Service</a></li> - <li><a href="#setup">Define Your Setup Activity</a></li> + <li><a href="#TIFCompanion">Create a TV Input Service Using the TIF Companion Library</a></li> + <li><a href="#NoTIFCompanion">Create a TV Input Service Using the TIF Framework</a></li> </ol> <h2>You should also read</h2> <ul> @@ -30,14 +29,253 @@ trainingnavtop=true </div> <p>A TV input service represents a media stream source, and lets you present your media content in a -linear, broadcast TV fashion as channels and programs. With the TV input service, you can provide +linear, broadcast TV fashion as channels and programs. With a TV input service, you can provide parental controls, program guide information, and content ratings. The TV input service works -with the Android system TV app, developed for the device and immutable by third-party apps, which -ultimately controls and presents content on the TV. See +with the Android system TV app. This app ultimately controls and presents channel content +on the TV. The system TV app is developed specifically for the device and immutable +by third-party apps. For more information about the TV Input Framework (TIF) +architecture and its components, see <a class="external-link" href="http://source.android.com/devices/tv/index.html"> -TV Input Framework</a> for more information about the framework architecture and its components.</p> +TV Input Framework</a>.</p> -<p>To develop a TV input service, you implement the following components:</p> +<h2 id="TIFCompanion">Create a TV Input Service Using the TIF Companion Library</h2> + +<p> +The TIF Companion Library is a framework that provides extensible +implementations of common TV input service features. Use the TIF Companion +Library to quickly and easily create your own TV input service that follows +best practices for Android TV. +</p> + +<h3 id="build">Update your build.gradle file</h3> + +<p> +To get started using the TIF Companion Library, add the following line to your +app's <code>build.gradle</code> file: +</p> + +<pre> +compile 'com.google.android.media.tv.companionlibrary:1.0.0' +</pre> + +<p>The TIF Companion Library is not currently part of the Android +framework. It is distributed as part of the <a class="external-link" +href="https://github.com/googlesamples/androidtv-sample-inputs"> +TV Input Service sample app</a>, and not with the Android SDK. +</p> + +<h3 id="manifest">Declare your TV input service in the manifest</h3> + +<p>Your app must provide a {@link android.media.tv.TvInputService}-compatible +service that the system uses to access your app. The TIF +Companion Library provides the <code>BaseTvInputService</code> class, which +provides a default implementation of {@link android.media.tv.TvInputService} +that you can customize. Create a subclass of <code>BaseTvInputService</code>, +and declare the subclass in your manifest as a service.</p> + +<p>Within the manifest declaration, specify the +{@link android.Manifest.permission#BIND_TV_INPUT} permission to allow the +service to connect the TV input to the system. A system service +performs the binding and has the +{@link android.Manifest.permission#BIND_TV_INPUT} permission. +The system TV app sends requests to TV input services +via the {@link android.media.tv.TvInputManager} interface.</p> + +<p>In your service declaration, include an intent filter that specifies +{@link android.media.tv.TvInputService} as the action to perform with the +intent. Also declare the service metadata as a separate XML resource. The +service declaration, intent filter, and service metadata declaration are shown +in the following example:</p> + +<pre> +<service android:name=".rich.RichTvInputService" + android:label="@string/rich_input_label" + android:permission="android.permission.BIND_TV_INPUT"> + <!-- Required filter used by the system to launch our account service. --> + <intent-filter> + <action android:name="android.media.tv.TvInputService" /> + </intent-filter> + <!-- An XML file which describes this input. This provides pointers to + the RichTvInputSetupActivity to the system/TV app. --> + <meta-data + android:name="android.media.tv.input" + android:resource="@xml/richtvinputservice" /> +</service> +</pre> + +<p>Define the service metadata in a separate XML file. The service +metadata XML file must include a setup interface that describes the TV input's +initial configuration and channel scan. The metadata file should also contain a +flag stating whether or not users are able to record content. For more +information on how to support recording content in your app, see +<a href="{@docRoot}preview/features/tv-recording-api.html">TV Recording</a>. +</p> + +<p>The service metadata file is located in the XML resources directory +for your app and must match the name of the resource you declared in the +manifest. Using the manifest entries from the previous example, you would +create the XML file at <code>res/xml/richtvinputservice.xml</code>, with the +following contents:</p> + +<pre> +<?xml version="1.0" encoding="utf-8"?> +<tv-input xmlns:android="http://schemas.android.com/apk/res/android" + android:canRecord="true" + android:setupActivity="com.example.android.sampletvinput.rich.RichTvInputSetupActivity" /> +</pre> + +<h3 id="setup">Define channels and create your setup activity</h3> + +<p>Your TV input service must define at least one channel that users +access via the system TV app. You should register your channels +in the system database, and provide a setup activity that the system +invokes when it cannot find a channel for your app.</p> + +<p>First, enable your app to read from and write to the system Electronic +Programming Guide (EPG), whose data includes channels and programs available +to the user. To enable your app to perform these actions, and sync with the +EPG after device restart, add the following elements to your app manifest:</p> + +<pre> +<uses-permission android:name="com.android.providers.tv.permission.READ_EPG_DATA" /> +<uses-permission android:name="com.android.providers.tv.permission.WRITE_EPG_DATA" /> +<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED "/> +</pre> + +<p>Add the following element to ensure that your app shows up in the +Google Play Store as an app that provides content channels in Android TV:</p> + +<pre> +<uses-feature + android:name="android.software.live_tv" + android:required="true" /> +</pre> + +<p>Next, create a class which extends the <code>EpgSyncJobService</code> +class. This abstract class makes it easy to create a job service that +creates and updates channels in the system database.</p> + +<p>In your subclass, create and return your full list of channels in +<code>getChannels()</code>. If your channels come from an XMLTV file, +use the <code>XmlTvParser</code> class. Otherwise generate +channels programmatically using the <code>Channel.Builder</code> class. +</p> + +<p>For each channel, the system calls <code>getProgramsForChannel()</code> +when it needs a list of programs that can be viewed within a given time window +on the channel. Return a list of <code>Program</code> objects for the +channel. Use the <code>XmlTvParser</code> class to obtain programs from an +XMLTV file, or generate them programmatically using the +<code>Program.Builder</code> class.</p> + +<p>For each <code>Program</code> object, use an +<code>InternalProviderData</code> object to set program information such as the +program's video type. If you only have a limited number of programs that you +want the channel to repeat in a loop, use the +<code>InternalProviderData.setRepeatable()</code> method with a value of +<code>true</code> when setting information about your program.</p> + +<p>After you've implemented the job service, add it to your app manifest:</p> + +<pre> +<service + android:name=".sync.SampleJobService" + android:permission="android.permission.BIND_JOB_SERVICE" + android:exported="true" /> +</pre> + +<p>Finally, create a setup activity. Your setup activity should provide a way +to sync channel and program data. One way to do this is for the user to do it +via the UI in the activity. You might also have the app do it automatically +when the activity starts. When the setup activity needs to sync channel and +program info, the app should start the job service:</p> + +<pre> +String inputId = getActivity().getIntent().getStringExtra(TvInputInfo.EXTRA_INPUT_ID); +EpgSyncJobService.cancelAllSyncRequests(getActivity()); +EpgSyncJobService.requestImmediateSync(getActivity(), inputId, + new ComponentName(getActivity(), SampleJobService.class)); +</pre> + +<p>Use the <code>requestImmediateSync()</code> method to sync +the job service. The user must wait for the sync to finish, so you should +keep your request period relatively short.</p> + +<p>Use the <code>setUpPeriodicSync()</code> method to have the job service +periodically sync channel and program data in the background:</p> + +<pre> +EpgSyncJobService.setUpPeriodicSync(context, inputId, + new ComponentName(context, SampleJobService.class)); +</pre> + +<p>The TIF Companion Library provides an additional overloaded method of +<code>requestImmediateSync()</code> that lets you specify the duration of +channel data to sync in milliseconds. The default method syncs one hour's +worth of channel data. +</p> + +<p>The TIF Companion Library also provides an additional overloaded method of +<code>setUpPeriodicSync()</code> that lets you specify the duration of +channel data to sync, and how often the periodic sync should occur. The +default method syncs 48 hours of channel data every 12 hours. +</p> + +<p>For more details about channel data and the EPG, see +<a href="{@docRoot}training/tv/tif/channel.html"> Working with Channel Data</a>. +</p> + +<h3 id="playback">Handle tuning requests and media playback</h3> + +<p>When a user selects a specific channel, the system TV app uses a +<code>Session</code>, created by your app, to tune to the requested channel +and play content. The TIF Companion Library provides several +classes you can extend to handle channel and session calls from the system.</p> + +<p>Your <code>BaseTvInputService</code> subclass creates sessions which handle +tuning requests. Override the +<code>onCreateSession()</code> method, create a session extended from +the <code>BaseTvInputService.Session</code> class, and call +<code>super.sessionCreated()</code> with your new session. In the following +example, <code>onCreateSession()</code> returns a +<code>RichTvInputSessionImpl</code> object that extends +<code>BaseTvInputService.Session</code>:</p> + +<pre> +@Override +public final Session onCreateSession(String inputId) { + RichTvInputSessionImpl session = new RichTvInputSessionImpl(this, inputId); + session.setOverlayViewEnabled(true); + return super.sessionCreated(session); +} +</pre> + +<p>When the user uses the system TV app to start viewing one of your channels, +the system calls your session's <code>onPlayChannel()</code> method. Override +this method if you need to do any special channel initialization before the +program starts playing.</p> + +<p>The system then obtains the currently scheduled program and calls your +session's <code>onPlayProgram()</code> method, specifying the program +information and start time in milliseconds. Use the +<code>TvPlayer</code> interface to start playing the program.</p> + +<p>Your media player code should implement <code>TvPlayer</code> to handle +specific playback events. The <code>TvPlayer</code> class handles features +like time-shifting controls without adding complexity to your +<code>BaseTvInputService</code> implementation.</p> + +<p>In your session's <code>getTvPlayer()</code> method, return +your media player that implements <code>TvPlayer</code>. The +<a class="external-link" +href="https://github.com/googlesamples/androidtv-sample-inputs"> +TV Input Service sample app</a> implements a media player that uses +<a href="{@docRoot}guide/topics/media/exoplayer.html">ExoPlayer</a>.</p> + +<h2 id="NoTIFCompanion">Create a TV Input Service Using the TIF Framework</h2> + +<p>If your TV input service can't use the TIF Companion Library, you need +to implement the following components:</p> <ul> <li>{@link android.media.tv.TvInputService} provides long-running and background availability for @@ -56,43 +294,18 @@ TV Input Framework</a> for more information about the framework architecture and the interaction with TV inputs and apps</li> </ul> -<h2 id="manifest">Declare Your TV Input Service in the Manifest</h2> - -<p>Your app manifest must declare your {@link android.media.tv.TvInputService}. Within that -declaration, specify the {@link android.Manifest.permission#BIND_TV_INPUT} permission to allow the -service to connect the TV input to the system. A system service (<code>TvInputManagerService</code>) -performs the binding and has that permission. The system TV app sends requests to TV input services -via the {@link android.media.tv.TvInputManager} interface. The service declaration must also -include an intent filter that specifies the {@link android.media.tv.TvInputService} -as the action to perform with the intent. Also within the service declaration, declare the service -meta data in a separate XML resource. The service declaration, the intent filter and the service -meta data are described in the following example.</p> - -<pre> -<service android:name="com.example.sampletvinput.SampleTvInput" - android:label="@string/sample_tv_input_label" - android:permission="android.permission.BIND_TV_INPUT"> - <intent-filter> - <action android:name="android.media.tv.TvInputService" /> - </intent-filter> - <meta-data android:name="android.media.tv.input" - android:resource="@xml/sample_tv_input" /> -</service> -</pre> - -<p>Define the service meta data in separate XML file, as shown in the following example. The service -meta data must include a setup interface that describes the TV input's initial configuration and -channel scan. The service meta data file is located in the XML resources directory -for your application and must match the name of the resource in the manifest. Using the example -manifest entries above, you would create an XML file in the location -<code>res/xml/sample_tv_input.xml</code>, with the following contents:</p> +<p>You also need to do the following:</p> -<pre> -<tv-input xmlns:android="http://schemas.android.com/apk/res/android" - android:setupActivity="com.example.sampletvinput.SampleTvInputSetupActivity" /> -</pre> +<ol> +<li>Declare your TV input service in the manifest, as +described in <a href="#manifest">Declare your TV input service in the +manifest</a>.</li> +<li>Create the service metadata file.</li> +<li>Create and register your channel and program information.</li> +<li>Create your setup activity.</li> +</ol> -<h2 id="tvinput">Define Your TV Input Service</h2> +<h3 id="tvinput">Define your TV input service</h3> <div class="figure"> <img id="tvinputlife" src="{@docRoot}images/tv/tvinput-life.png" alt=""/> @@ -102,7 +315,7 @@ manifest entries above, you would create an XML file in the location <p>For your service, you extend the {@link android.media.tv.TvInputService} class. A {@link android.media.tv.TvInputService} implementation is a <a href="{@docRoot}guide/components/bound-services.html">bound service</a> where the system service -(<code>TvInputManagerService</code>) is the client that binds to it. The service life cycle methods +is the client that binds to it. The service life cycle methods you need to implement are illustrated in figure 1.</p> <p>The {@link android.app.Service#onCreate()} method initializes and starts the @@ -145,7 +358,8 @@ you may want to handle in your TV input service.</p> <p>The {@link android.media.tv.TvInputService} creates a {@link android.media.tv.TvInputService.Session} that implements {@link android.os.Handler.Callback} -to handle player state changes. With {@link android.media.tv.TvInputService.Session#onSetSurface(android.view.Surface) onSetSurface()}, +to handle player state changes. With +{@link android.media.tv.TvInputService.Session#onSetSurface(android.view.Surface) onSetSurface()}, the {@link android.media.tv.TvInputService.Session} sets the {@link android.view.Surface} with the video content. See <a href="{@docRoot}training/tv/tif/ui.html#surface">Integrate Player with Surface</a> for more information about working with {@link android.view.Surface} to render video.</p> @@ -153,16 +367,16 @@ for more information about working with {@link android.view.Surface} to render v <p>The {@link android.media.tv.TvInputService.Session} handles the {@link android.media.tv.TvInputService.Session#onTune(android.net.Uri) onTune()} event when the user selects a channel, and notifies the system TV app for changes in the content and -content meta data. These <code>notify()</code> methods are described in +content metadata. These <code>notify()</code> methods are described in <a href="{@docRoot}training/tv/tif/ui.html#control"> Control Content</a> and <a href="{@docRoot}training/tv/tif/ui.html#track">Handle Track Selection</a> further in this training.</p> -<h2 id="setup">Define Your Setup Activity</h2> +<h3 id="setup">Define your setup activity</h3> <p>The system TV app works with the setup activity you define for your TV input. The setup activity is required and must provide at least one channel record for the system database. The -system TV app will invoke the setup activity when it cannot find a channel for the TV input. +system TV app invokes the setup activity when it cannot find a channel for the TV input. <p>The setup activity describes to the system TV app the channels made available through the TV input, as demonstrated in the next lesson, <a href="{@docRoot}training/tv/tif/channel.html">Creating -and Updating Channel Data</a>.</p> +and Updating Channel Data</a>.</p>
\ No newline at end of file |