1 /* 2 * Copyright (c) 2016, 2019 The Linux Foundation. All rights reserved. 3 * Not a Contribution. 4 * 5 * Copyright 2015 The Android Open Source Project 6 * 7 * Licensed under the Apache License, Version 2.0 (the "License"); 8 * you may not use this file except in compliance with the License. 9 * You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, software 14 * distributed under the License is distributed on an "AS IS" BASIS, 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 * See the License for the specific language governing permissions and 17 * limitations under the License. 18 */ 19 20 #ifndef __EGLIMAGE_BUFFER_H__ 21 #define __EGLIMAGE_BUFFER_H__ 22 23 #include <cutils/native_handle.h> 24 #include <gralloc_priv.h> 25 #include <ui/GraphicBuffer.h> 26 #include "engine.h" 27 28 class EGLImageBuffer { 29 // android::sp<android::GraphicBuffer> graphicBuffer; 30 void *eglImageID; 31 int width; 32 int height; 33 uint textureID; 34 uint renderbufferID; 35 uint framebufferID; 36 37 public: 38 int getWidth(); 39 int getHeight(); 40 EGLImageBuffer(android::sp<android::GraphicBuffer>); 41 unsigned int getTexture(int target); 42 unsigned int getFramebuffer(); 43 void bindAsTexture(int target); 44 void bindAsFramebuffer(); 45 ~EGLImageBuffer(); 46 static EGLImageBuffer *from(const private_handle_t *src); 47 static void clear(); 48 }; 49 50 #endif //__EGLIMAGE_BUFFER_H_ 51