am cbcd9335
: Merge "Basic 101 level compute example for RS." into honeycomb
* commit 'cbcd93352b9fff3ada4a01c3094b24e5fafde97f': Basic 101 level compute example for RS.
This commit is contained in:
31
libs/rs/java/HelloCompute/Android.mk
Normal file
31
libs/rs/java/HelloCompute/Android.mk
Normal file
@ -0,0 +1,31 @@
|
||||
#
|
||||
# Copyright (C) 2011 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.
|
||||
#
|
||||
|
||||
ifneq ($(TARGET_SIMULATOR),true)
|
||||
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
|
||||
LOCAL_SRC_FILES := $(call all-java-files-under, src) \
|
||||
$(call all-renderscript-files-under, src)
|
||||
|
||||
LOCAL_PACKAGE_NAME := HelloCompute
|
||||
|
||||
include $(BUILD_PACKAGE)
|
||||
|
||||
endif
|
30
libs/rs/java/HelloCompute/AndroidManifest.xml
Normal file
30
libs/rs/java/HelloCompute/AndroidManifest.xml
Normal file
@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2011 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.
|
||||
-->
|
||||
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.android.example.hellocompute">
|
||||
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-sdk android:minSdkVersion="11" />
|
||||
<application android:label="HelloCompute">
|
||||
<activity android:name="HelloCompute">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
</application>
|
||||
</manifest>
|
BIN
libs/rs/java/HelloCompute/res/drawable/data.jpg
Normal file
BIN
libs/rs/java/HelloCompute/res/drawable/data.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 75 KiB |
31
libs/rs/java/HelloCompute/res/layout/main.xml
Normal file
31
libs/rs/java/HelloCompute/res/layout/main.xml
Normal file
@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2011 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.
|
||||
-->
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/displayin"
|
||||
android:layout_width="320dip"
|
||||
android:layout_height="266dip" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/displayout"
|
||||
android:layout_width="320dip"
|
||||
android:layout_height="266dip" />
|
||||
|
||||
</LinearLayout>
|
@ -0,0 +1,77 @@
|
||||
/*
|
||||
* Copyright (C) 2011 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.
|
||||
*/
|
||||
|
||||
package com.android.example.hellocompute;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.os.Bundle;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.graphics.Bitmap;
|
||||
import android.renderscript.RenderScript;
|
||||
import android.renderscript.Allocation;
|
||||
import android.widget.ImageView;
|
||||
|
||||
public class HelloCompute extends Activity {
|
||||
private Bitmap mBitmapIn;
|
||||
private Bitmap mBitmapOut;
|
||||
|
||||
private RenderScript mRS;
|
||||
private Allocation mInAllocation;
|
||||
private Allocation mOutAllocation;
|
||||
private ScriptC_mono mScript;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.main);
|
||||
|
||||
mBitmapIn = loadBitmap(R.drawable.data);
|
||||
mBitmapOut = Bitmap.createBitmap(mBitmapIn.getWidth(), mBitmapIn.getHeight(),
|
||||
mBitmapIn.getConfig());
|
||||
|
||||
ImageView in = (ImageView) findViewById(R.id.displayin);
|
||||
in.setImageBitmap(mBitmapIn);
|
||||
|
||||
ImageView out = (ImageView) findViewById(R.id.displayout);
|
||||
out.setImageBitmap(mBitmapOut);
|
||||
|
||||
createScript();
|
||||
}
|
||||
|
||||
|
||||
private void createScript() {
|
||||
mRS = RenderScript.create(this);
|
||||
|
||||
mInAllocation = Allocation.createFromBitmap(mRS, mBitmapIn,
|
||||
Allocation.MipmapControl.MIPMAP_NONE,
|
||||
Allocation.USAGE_SCRIPT);
|
||||
mOutAllocation = Allocation.createTyped(mRS, mInAllocation.getType());
|
||||
|
||||
mScript = new ScriptC_mono(mRS, getResources(), R.raw.mono);
|
||||
|
||||
mScript.set_gIn(mInAllocation);
|
||||
mScript.set_gOut(mOutAllocation);
|
||||
mScript.set_gScript(mScript);
|
||||
mScript.invoke_filter();
|
||||
mOutAllocation.copyTo(mBitmapOut);
|
||||
}
|
||||
|
||||
private Bitmap loadBitmap(int resource) {
|
||||
final BitmapFactory.Options options = new BitmapFactory.Options();
|
||||
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
|
||||
return BitmapFactory.decodeResource(getResources(), resource, options);
|
||||
}
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright (C) 2011 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.
|
||||
*/
|
||||
|
||||
#pragma version(1)
|
||||
#pragma rs java_package_name(com.android.example.hellocompute)
|
||||
|
||||
rs_allocation gIn;
|
||||
rs_allocation gOut;
|
||||
rs_script gScript;
|
||||
|
||||
const static float3 gMonoMult = {0.299f, 0.587f, 0.114f};
|
||||
|
||||
void root(const uchar4 *v_in, uchar4 *v_out, const void *usrData, uint32_t x, uint32_t y) {
|
||||
float4 f4 = rsUnpackColor8888(*v_in);
|
||||
|
||||
float3 mono = dot(f4.rgb, gMonoMult);
|
||||
*v_out = rsPackColorTo8888(mono);
|
||||
}
|
||||
|
||||
void filter() {
|
||||
rsForEach(gScript, gIn, gOut, 0);
|
||||
}
|
||||
|
Reference in New Issue
Block a user