1*61046927SAndroid Build Coastguard Worker /* 2*61046927SAndroid Build Coastguard Worker * Copyright 2023 Google LLC 3*61046927SAndroid Build Coastguard Worker * SPDX-License-Identifier: MIT 4*61046927SAndroid Build Coastguard Worker */ 5*61046927SAndroid Build Coastguard Worker 6*61046927SAndroid Build Coastguard Worker #pragma once 7*61046927SAndroid Build Coastguard Worker 8*61046927SAndroid Build Coastguard Worker #include <EGL/egl.h> 9*61046927SAndroid Build Coastguard Worker #include <EGL/eglext.h> 10*61046927SAndroid Build Coastguard Worker 11*61046927SAndroid Build Coastguard Worker #include "gfxstream/guest/ANativeWindow.h" 12*61046927SAndroid Build Coastguard Worker 13*61046927SAndroid Build Coastguard Worker namespace gfxstream { 14*61046927SAndroid Build Coastguard Worker 15*61046927SAndroid Build Coastguard Worker class ANativeWindowHelperAndroid : public ANativeWindowHelper { 16*61046927SAndroid Build Coastguard Worker public: 17*61046927SAndroid Build Coastguard Worker ANativeWindowHelperAndroid() = default; 18*61046927SAndroid Build Coastguard Worker 19*61046927SAndroid Build Coastguard Worker bool isValid(EGLNativeWindowType window); 20*61046927SAndroid Build Coastguard Worker bool isValid(EGLClientBuffer buffer); 21*61046927SAndroid Build Coastguard Worker 22*61046927SAndroid Build Coastguard Worker void acquire(EGLNativeWindowType window); 23*61046927SAndroid Build Coastguard Worker void release(EGLNativeWindowType window); 24*61046927SAndroid Build Coastguard Worker 25*61046927SAndroid Build Coastguard Worker void acquire(EGLClientBuffer buffer); 26*61046927SAndroid Build Coastguard Worker void release(EGLClientBuffer buffer); 27*61046927SAndroid Build Coastguard Worker 28*61046927SAndroid Build Coastguard Worker int getConsumerUsage(EGLNativeWindowType window, int* usage); 29*61046927SAndroid Build Coastguard Worker void setUsage(EGLNativeWindowType window, int usage); 30*61046927SAndroid Build Coastguard Worker 31*61046927SAndroid Build Coastguard Worker int getWidth(EGLNativeWindowType window); 32*61046927SAndroid Build Coastguard Worker int getHeight(EGLNativeWindowType window); 33*61046927SAndroid Build Coastguard Worker 34*61046927SAndroid Build Coastguard Worker int getWidth(EGLClientBuffer buffer); 35*61046927SAndroid Build Coastguard Worker int getHeight(EGLClientBuffer buffer); 36*61046927SAndroid Build Coastguard Worker 37*61046927SAndroid Build Coastguard Worker int getFormat(EGLClientBuffer buffer, Gralloc* helper); 38*61046927SAndroid Build Coastguard Worker 39*61046927SAndroid Build Coastguard Worker void setSwapInterval(EGLNativeWindowType window, int interval); 40*61046927SAndroid Build Coastguard Worker 41*61046927SAndroid Build Coastguard Worker int queueBuffer(EGLNativeWindowType window, EGLClientBuffer buffer, int fence); 42*61046927SAndroid Build Coastguard Worker int dequeueBuffer(EGLNativeWindowType window, EGLClientBuffer* buffer, int* fence); 43*61046927SAndroid Build Coastguard Worker int cancelBuffer(EGLNativeWindowType window, EGLClientBuffer buffer); 44*61046927SAndroid Build Coastguard Worker 45*61046927SAndroid Build Coastguard Worker int getHostHandle(EGLClientBuffer buffer, Gralloc* helper); 46*61046927SAndroid Build Coastguard Worker }; 47*61046927SAndroid Build Coastguard Worker 48*61046927SAndroid Build Coastguard Worker } // namespace gfxstream 49