// Copyright (C) 2014 BogDan Vatra // Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only package org.qtproject.qt.android; import android.annotation.SuppressLint; import android.content.Context; import android.graphics.PixelFormat; import android.view.Surface; import android.view.SurfaceHolder; import android.view.SurfaceView; @SuppressLint("ViewConstructor") class QtSurface extends SurfaceView implements SurfaceHolder.Callback { private QtSurfaceInterface m_surfaceCallback; public QtSurface(Context context, QtSurfaceInterface surfaceCallback, boolean onTop, int imageDepth) { super(context); setFocusable(false); setFocusableInTouchMode(false); setZOrderMediaOverlay(onTop); m_surfaceCallback = surfaceCallback; getHolder().addCallback(this); if (imageDepth == 16) getHolder().setFormat(PixelFormat.RGB_565); else getHolder().setFormat(PixelFormat.RGBA_8888); } @Override public void surfaceCreated(SurfaceHolder holder) { } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { if (width < 1 || height < 1) return; if (m_surfaceCallback != null) m_surfaceCallback.onSurfaceChanged(holder.getSurface()); } @Override public void surfaceDestroyed(SurfaceHolder holder) { if (m_surfaceCallback != null) m_surfaceCallback.onSurfaceChanged(null); } }