1cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines/*
2cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines * Copyright (C) 2011 The Android Open Source Project
3cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines *
4cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines * Licensed under the Apache License, Version 2.0 (the "License");
5cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines * you may not use this file except in compliance with the License.
6cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines * You may obtain a copy of the License at
7cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines *
8cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines *      http://www.apache.org/licenses/LICENSE-2.0
9cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines *
10cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines * Unless required by applicable law or agreed to in writing, software
11cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines * distributed under the License is distributed on an "AS IS" BASIS,
12cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines * See the License for the specific language governing permissions and
14cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines * limitations under the License.
15cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines */
16cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines
17cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hinespackage com.android.rs.test;
18cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines
19cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hinesimport android.content.Context;
20cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hinesimport android.content.res.Resources;
21cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hinesimport android.renderscript.*;
22cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines
23cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hinespublic class UT_refcount extends UnitTest {
24cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines    private Resources mRes;
25cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines
26cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines    protected UT_refcount(RSTestCore rstc, Resources res, Context ctx) {
27cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines        super(rstc, "Refcount", ctx);
28cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines        mRes = res;
29cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines    }
30cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines
31cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines    private void initializeGlobals(RenderScript RS, ScriptC_refcount s) {
32cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines        Type.Builder typeBuilder = new Type.Builder(RS, Element.I32(RS));
33cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines        int X = 500;
34cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines        int Y = 700;
35cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines        typeBuilder.setX(X).setY(Y);
36cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines        Allocation A = Allocation.createTyped(RS, typeBuilder.create());
37cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines        s.set_globalA(A);
38cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines    }
39cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines
40cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines    public void run() {
41cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines        RenderScript pRS = RenderScript.create(mCtx);
42cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines        pRS.setMessageHandler(mRsMessage);
4358b2b2412864891686bf0e2c9940ad2b58808822Stephen Hines        ScriptC_refcount s = new ScriptC_refcount(pRS);
44cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines        initializeGlobals(pRS, s);
45cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines        s.invoke_refcount_test();
46cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines        pRS.finish();
47cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines        waitForMessage();
48cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines        pRS.destroy();
49cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines    }
50cb60fdca9bb89e2042ecfcebf6093fbf88fd0ff0Stephen Hines}
51