Home | History | Annotate | Download | only in Common
      1 // Copyright 2016 The SwiftShader Authors. All Rights Reserved.
      2 //
      3 // Licensed under the Apache License, Version 2.0 (the "License");
      4 // you may not use this file except in compliance with the License.
      5 // You may obtain a copy of the License at
      6 //
      7 //    http://www.apache.org/licenses/LICENSE-2.0
      8 //
      9 // Unless required by applicable law or agreed to in writing, software
     10 // distributed under the License is distributed on an "AS IS" BASIS,
     11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 // See the License for the specific language governing permissions and
     13 // limitations under the License.
     14 
     15 #ifndef GRALLOC_ANDROID
     16 #define GRALLOC_ANDROID
     17 
     18 #include <hardware/gralloc.h>
     19 
     20 #ifdef HAVE_GRALLOC1
     21 #include <hardware/gralloc1.h>
     22 #endif
     23 
     24 #include <unistd.h> // for close()
     25 
     26 class GrallocModule
     27 {
     28 public:
     29 	static GrallocModule *getInstance();
     30 	int lock(buffer_handle_t handle, int usage, int left, int top, int width, int height, void **vaddr);
     31 	int unlock(buffer_handle_t handle);
     32 
     33 private:
     34 	GrallocModule();
     35 	uint8_t m_major_version;
     36 	const gralloc_module_t *m_module;
     37 #ifdef HAVE_GRALLOC1
     38 	gralloc1_device_t *m_gralloc1_device = nullptr;
     39 	GRALLOC1_PFN_LOCK m_gralloc1_lock = nullptr;
     40 	GRALLOC1_PFN_UNLOCK m_gralloc1_unlock = nullptr;
     41 #endif
     42 };
     43 
     44 #endif  // GRALLOC_ANDROID
     45