19a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis/* 29a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis * Copyright (C) 2011 The Android Open Source Project 39a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis * 49a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis * Licensed under the Apache License, Version 2.0 (the "License"); 59a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis * you may not use this file except in compliance with the License. 69a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis * You may obtain a copy of the License at 79a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis * 89a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis * http://www.apache.org/licenses/LICENSE-2.0 99a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis * 109a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis * Unless required by applicable law or agreed to in writing, software 119a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis * distributed under the License is distributed on an "AS IS" BASIS, 129a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis * See the License for the specific language governing permissions and 149a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis * limitations under the License. 159a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis */ 169a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis 1790ac799241f077a7b7e6c1875fd933864c8dd2a7Mathias Agopian#ifndef ANDROID_GUI_IGRAPHIC_BUFFER_ALLOC_H 1890ac799241f077a7b7e6c1875fd933864c8dd2a7Mathias Agopian#define ANDROID_GUI_IGRAPHIC_BUFFER_ALLOC_H 199a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis 209a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis#include <stdint.h> 219a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis#include <sys/types.h> 229a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis 239a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis#include <binder/IInterface.h> 2490ac799241f077a7b7e6c1875fd933864c8dd2a7Mathias Agopian#include <ui/PixelFormat.h> 2590ac799241f077a7b7e6c1875fd933864c8dd2a7Mathias Agopian#include <utils/RefBase.h> 269a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis 279a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennisnamespace android { 289a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis// ---------------------------------------------------------------------------- 299a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis 30a67932fe6864ac346e7f78b86df11cf6c5344137Mathias Agopianclass GraphicBuffer; 31a67932fe6864ac346e7f78b86df11cf6c5344137Mathias Agopian 329a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennisclass IGraphicBufferAlloc : public IInterface 339a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis{ 349a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennispublic: 359a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis DECLARE_META_INTERFACE(GraphicBufferAlloc); 369a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis 374cb18881b55b82a24873ccd8e298bc2d5a9c17e5Mathias Agopian /* Create a new GraphicBuffer for the client to use. 389a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis */ 399a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis virtual sp<GraphicBuffer> createGraphicBuffer(uint32_t w, uint32_t h, 40d9e8c64c3dce1612eb948a5c16ba4ff62202b423Mathias Agopian PixelFormat format, uint32_t usage, status_t* error) = 0; 419a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis}; 429a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis 439a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis// ---------------------------------------------------------------------------- 449a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis 459a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennisclass BnGraphicBufferAlloc : public BnInterface<IGraphicBufferAlloc> 469a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis{ 479a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennispublic: 489a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis virtual status_t onTransact( uint32_t code, 499a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis const Parcel& data, 509a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis Parcel* reply, 519a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis uint32_t flags = 0); 529a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis}; 539a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis 549a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis// ---------------------------------------------------------------------------- 559a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis 569a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis}; // namespace android 579a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis 5890ac799241f077a7b7e6c1875fd933864c8dd2a7Mathias Agopian#endif // ANDROID_GUI_IGRAPHIC_BUFFER_ALLOC_H 59