<?xml version="1.0" encoding="UTF-8"?>
<!--
 Copyright 2013 The Android Open Source Project

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<sample>
    <name>RenderScriptIntrinsic</name>
    <group>RenderScript</group>
    <package>com.example.android.renderscriptintrinsic</package>

    <minSdk>14</minSdk>

    <defaultConfig>
        renderscriptTargetApi 24
        renderscriptSupportModeEnabled true
    </defaultConfig>

    <strings>
        <intro>
            <![CDATA[
RenderScriptIntrinsic sample that demonstrates how to use RenderScript intrinsics.
Creates several RenderScript intrinsics and shows a filtering result with various parameters.
Also shows how to extends RadioButton with StateListDrawable.
            ]]>
        </intro>
    </strings>

    <template src="base"/>

    <metadata>
        <status>PUBLISHED</status>
        <categories>RenderScript</categories>
        <technologies>Android</technologies>
        <languages>Java</languages>
        <solutions>Mobile</solutions>
        <level>EXPERT</level>
        <icon>screenshots/icon-web.png</icon>
        <screenshots>
            <img>screenshots/main.png</img>
        </screenshots>
        <api_refs>
            <android>android.renderscript.RenderScript</android>
            <android>android.renderscript.ScriptIntrinsicBlur</android>
            <android>android.renderscript.ScriptIntrinsicConvolve5x5</android>
            <android>android.renderscript.ScriptIntrinsicColorMatrix</android>
        </api_refs>

        <description>
<![CDATA[
RenderScriptIntrinsic sample that demonstrates how to use RenderScript intrinsics.
Creates several RenderScript intrinsics and shows a filtering result with various parameters.
Also shows how to extends RedioButton with StateListDrawable.
]]>
        </description>

        <intro>
            <![CDATA[
[RenderScript][1] is a framework for running computationally intensive tasks at high performance on
Android. RenderScript is primarily oriented for use with data-parallel computation, although serial
computationally intensive workloads can benefit as well.

RenderScript **intrinsics** are built-in functions that perform well-defined operations often seen
in image processing. Intrinsics provide extremely high-performance implementations of standard
functions with a minimal amount of code.

This sample shows how to access and use the blur, convolve, and matrix intrinsics:

```java
mScriptBlur = ScriptIntrinsicBlur.create(mRS, Element.U8_4(mRS));
mScriptConvolve = ScriptIntrinsicConvolve5x5.create(mRS,
        Element.U8_4(mRS));
mScriptMatrix = ScriptIntrinsicColorMatrix.create(mRS,
        Element.U8_4(mRS));
```

RenderScript intrinsics will usually be the fastest possible way for a developer to perform these
operations. The Android team works closely with our partners to ensure that the intrinsics perform
as fast as possible on their architectures — often far beyond anything that can be achieved in a
general-purpose language.

[1]: http://developer.android.com/guide/topics/renderscript/compute.html
]]>
        </intro>
    </metadata>
</sample>
