1a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray/*
2a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray * Copyright (C) 2013 The Android Open Source Project
3a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray *
4a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray * Licensed under the Apache License, Version 2.0 (the "License");
5a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray * you may not use this file except in compliance with the License.
6a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray * You may obtain a copy of the License at
7a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray *
8a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray *      http://www.apache.org/licenses/LICENSE-2.0
9a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray *
10a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray * Unless required by applicable law or agreed to in writing, software
11a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray * distributed under the License is distributed on an "AS IS" BASIS,
12a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray * See the License for the specific language governing permissions and
14a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray * limitations under the License.
15a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray */
16a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray
17a89eef413da39b013f2e931c9f207ef2587eef01Tim Murraypackage com.example.android.rs.hellocomputendk;
18a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray
19a89eef413da39b013f2e931c9f207ef2587eef01Tim Murrayimport android.app.Activity;
20a89eef413da39b013f2e931c9f207ef2587eef01Tim Murrayimport android.os.Bundle;
21a89eef413da39b013f2e931c9f207ef2587eef01Tim Murrayimport android.graphics.BitmapFactory;
22a89eef413da39b013f2e931c9f207ef2587eef01Tim Murrayimport android.graphics.Bitmap;
23a89eef413da39b013f2e931c9f207ef2587eef01Tim Murrayimport android.widget.ImageView;
24a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray
25a89eef413da39b013f2e931c9f207ef2587eef01Tim Murraypublic class HelloComputeNDK extends Activity {
26a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray    private Bitmap mBitmapIn;
27a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray    private Bitmap mBitmapOut;
28a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray
29a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray    static {
30a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray        System.loadLibrary("hellocomputendk");
31a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray    }
32a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray
33db5de3870e9818879f1836687a10ce1cf586b38cTim Murray    native void nativeMono(String cacheDir, int X, int Y, Bitmap in, Bitmap out);
34a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray
35a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray    @Override
36a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray    protected void onCreate(Bundle savedInstanceState) {
37a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray        super.onCreate(savedInstanceState);
38a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray        setContentView(R.layout.main);
39a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray
40a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray        mBitmapIn = loadBitmap(R.drawable.data);
41a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray        mBitmapOut = Bitmap.createBitmap(mBitmapIn.getWidth(), mBitmapIn.getHeight(),
42a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray                                         mBitmapIn.getConfig());
43a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray
44a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray        ImageView in = (ImageView) findViewById(R.id.displayin);
45a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray        in.setImageBitmap(mBitmapIn);
46a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray
47a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray        ImageView out = (ImageView) findViewById(R.id.displayout);
48a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray        out.setImageBitmap(mBitmapOut);
49a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray
50db5de3870e9818879f1836687a10ce1cf586b38cTim Murray        nativeMono(this.getCacheDir().toString(),
51db5de3870e9818879f1836687a10ce1cf586b38cTim Murray                   mBitmapIn.getWidth(), mBitmapIn.getHeight(),
52db5de3870e9818879f1836687a10ce1cf586b38cTim Murray                   mBitmapIn, mBitmapOut);
53a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray
54a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray    }
55a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray
56a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray    private Bitmap loadBitmap(int resource) {
57a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray        final BitmapFactory.Options options = new BitmapFactory.Options();
58a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray        options.inPreferredConfig = Bitmap.Config.ARGB_8888;
59a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray        return BitmapFactory.decodeResource(getResources(), resource, options);
60a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray    }
61a89eef413da39b013f2e931c9f207ef2587eef01Tim Murray}
62