You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
2.5 KiB
74 lines
2.5 KiB
/* |
|
* Copyright (C) 2008 The Android Open Source Project |
|
* Copyright (c) 2011-2014, The Linux Foundation. All rights reserved. |
|
* |
|
* 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. |
|
*/ |
|
|
|
#ifndef GRALLOC_GPU_H_ |
|
#define GRALLOC_GPU_H_ |
|
|
|
#include <errno.h> |
|
#include <pthread.h> |
|
#include <stdlib.h> |
|
#include <string.h> |
|
|
|
#include <cutils/log.h> |
|
|
|
#include "gralloc_priv.h" |
|
#include "fb_priv.h" |
|
|
|
namespace gralloc { |
|
class IAllocController; |
|
class gpu_context_t : public alloc_device_t { |
|
public: |
|
gpu_context_t(const private_module_t* module, |
|
IAllocController* alloc_ctrl); |
|
|
|
int gralloc_alloc_buffer(unsigned int size, int usage, |
|
buffer_handle_t* pHandle, |
|
int bufferType, int format, |
|
int width, int height); |
|
|
|
int free_impl(private_handle_t const* hnd); |
|
|
|
int alloc_impl(int w, int h, int format, int usage, |
|
buffer_handle_t* pHandle, int* pStride, |
|
unsigned int bufferSize = 0); |
|
|
|
static int gralloc_alloc(alloc_device_t* dev, int w, int h, |
|
int format, int usage, |
|
buffer_handle_t* pHandle, |
|
int* pStride); |
|
int gralloc_alloc_framebuffer_locked(int usage, |
|
buffer_handle_t* pHandle); |
|
|
|
int gralloc_alloc_framebuffer(int usage, |
|
buffer_handle_t* pHandle); |
|
|
|
static int gralloc_free(alloc_device_t* dev, buffer_handle_t handle); |
|
|
|
static int gralloc_alloc_size(alloc_device_t* dev, |
|
int w, int h, int format, |
|
int usage, buffer_handle_t* pHandle, |
|
int* pStride, int bufferSize); |
|
|
|
static int gralloc_close(struct hw_device_t *dev); |
|
|
|
private: |
|
IAllocController* mAllocCtrl; |
|
void getGrallocInformationFromFormat(int inputFormat, |
|
int *bufferType); |
|
}; |
|
} |
|
#endif // GRALLOC_GPU_H
|
|
|