Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8baf6faf authored by Angel Aguayo's avatar Angel Aguayo
Browse files

Integrated Pen and Stylus test application into the HwAccelerationTest

suite
Bug: b/202782306
Test: PenStylusActivity.kt

Change-Id: I3bffbeda11bbfe68c3aca3bfdeec9720a63e430d
parent 2868507a
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -25,7 +25,13 @@ package {

android_test {
    name: "HwAccelerationTest",
    srcs: ["**/*.java"],
    jni_libs: [
        "libhwaccelerationtest_jni",
    ],
    srcs: [
        "**/*.java",
        "**/*.kt",
    ],
    platform_apis: true,
    certificate: "platform",
}
+9 −0
Original line number Diff line number Diff line
@@ -436,6 +436,15 @@
            </intent-filter>
        </activity>

        <activity android:name=".PenStylusActivity"
                  android:label="Pen (BUGGED)/Draw"
                  android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="com.android.test.hwui.TEST"/>
            </intent-filter>
        </activity>

        <activity android:name="GLTextureViewActivity"
             android:label="TextureView/OpenGL"
             android:exported="true">
+44 −0
Original line number Diff line number Diff line
// Copyright (C) 2021 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 {
    default_applicable_licenses: ["Android-Apache-2.0"],
}

cc_test_library {

    name: "libhwaccelerationtest_jni",

    cflags: [
        "-Werror",
        "-Wno-error=deprecated-declarations",
    ],

    gtest: false,

    srcs: [
        "native-lib.cpp",
    ],

    shared_libs: [
        "libnativehelper",
        "libandroid",
        "liblog",
    ],

    stl: "c++_static",

    sdk_version: "current",

}
+62 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2021 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.
 */

#include <android/hardware_buffer.h>
#include <android/hardware_buffer_jni.h>
#include <android/native_window.h>
#include <android/native_window_jni.h>
#include <android/surface_control.h>
#include <jni.h>

struct MyWrapper {
    MyWrapper(ANativeWindow* parent) {
        surfaceControl = ASurfaceControl_createFromWindow(parent, "PenLayer");
    }

    ~MyWrapper() { ASurfaceControl_release(surfaceControl); }

    void setBuffer(AHardwareBuffer* buffer) {
        ASurfaceTransaction* transaction = ASurfaceTransaction_create();
        ASurfaceTransaction_setBuffer(transaction, surfaceControl, buffer);
        ASurfaceTransaction_setVisibility(transaction, surfaceControl,
                                          ASURFACE_TRANSACTION_VISIBILITY_SHOW);
        ASurfaceTransaction_apply(transaction);
        ASurfaceTransaction_delete(transaction);
    }

    ASurfaceControl* surfaceControl = nullptr;
};

extern "C" JNIEXPORT jlong JNICALL
Java_com_android_test_hwui_FrontBufferedLayer_nCreate(JNIEnv* env, jobject jSurface) {
    ANativeWindow* window = ANativeWindow_fromSurface(env, jSurface);
    MyWrapper* wrapper = new MyWrapper(window);
    ANativeWindow_release(window);
    return reinterpret_cast<jlong>(wrapper);
}

extern "C" JNIEXPORT void JNICALL
Java_com_android_test_hwui_FrontBufferedLayer_nDestroy(jlong ptr) {
    MyWrapper* wrapper = reinterpret_cast<MyWrapper*>(ptr);
    delete wrapper;
}

extern "C" JNIEXPORT void JNICALL Java_com_android_test_hwui_FrontBufferedLayer_nUpdateBuffer(
        JNIEnv* env, jlong ptr, jobject jbuffer) {
    MyWrapper* wrapper = reinterpret_cast<MyWrapper*>(ptr);
    AHardwareBuffer* buffer = AHardwareBuffer_fromHardwareBuffer(env, jbuffer);
    wrapper->setBuffer(buffer);
}
 No newline at end of file
+20 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2021 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.
-->
<com.android.test.hwui.FrontBufferedLayer
    xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
/>
 No newline at end of file
Loading