TngDisplayContext.h revision eb726af21649d79ed720bdf329e0849270995c45
16a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu/* 26a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu * Copyright © 2012 Intel Corporation 36a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu * All rights reserved. 46a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu * 56a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu * Permission is hereby granted, free of charge, to any person obtaining a 66a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu * copy of this software and associated documentation files (the "Software"), 76a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu * to deal in the Software without restriction, including without limitation 86a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu * the rights to use, copy, modify, merge, publish, distribute, sublicense, 96a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu * and/or sell copies of the Software, and to permit persons to whom the 106a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu * Software is furnished to do so, subject to the following conditions: 116a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu * 126a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu * The above copyright notice and this permission notice (including the next 136a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu * paragraph) shall be included in all copies or substantial portions of the 146a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu * Software. 156a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu * 166a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 176a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 186a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 196a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 206a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 216a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 226a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu * IN THE SOFTWARE. 236a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu * 246a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu * Authors: 256a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu * Jackie Li <yaodong.li@intel.com> 266a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu * 276a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu */ 284b834ced8031d624fc8bd042275cb0612c7b9f63Andy Qiu#ifndef TNG_DISPLAY_CONTEXT_H 294b834ced8031d624fc8bd042275cb0612c7b9f63Andy Qiu#define TNG_DISPLAY_CONTEXT_H 306a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu 314b834ced8031d624fc8bd042275cb0612c7b9f63Andy Qiu#include <IDisplayContext.h> 326a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu#include <hal_public.h> 336a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu 346a6081a46a83da606cf21548879b37695adc7e1fAndy Qiunamespace android { 356a6081a46a83da606cf21548879b37695adc7e1fAndy Qiunamespace intel { 366a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu 374b834ced8031d624fc8bd042275cb0612c7b9f63Andy Qiuclass TngDisplayContext : public IDisplayContext { 386a6081a46a83da606cf21548879b37695adc7e1fAndy Qiupublic: 394b834ced8031d624fc8bd042275cb0612c7b9f63Andy Qiu TngDisplayContext(); 40eb726af21649d79ed720bdf329e0849270995c45Andy Qiu virtual ~TngDisplayContext(); 416a6081a46a83da606cf21548879b37695adc7e1fAndy Qiupublic: 424b834ced8031d624fc8bd042275cb0612c7b9f63Andy Qiu bool initialize(); 43e2ad4c047651d4442f6a0e002290016d45e9201afu jin void deinitialize(); 44e2ad4c047651d4442f6a0e002290016d45e9201afu jin bool commitBegin(size_t numDisplays, hwc_display_contents_1_t **displays); 454b834ced8031d624fc8bd042275cb0612c7b9f63Andy Qiu bool commitContents(hwc_display_contents_1_t *display, HwcLayerList* layerList); 46e2ad4c047651d4442f6a0e002290016d45e9201afu jin bool commitEnd(size_t numDisplays, hwc_display_contents_1_t **displays); 474b834ced8031d624fc8bd042275cb0612c7b9f63Andy Qiu bool compositionComplete(); 484b834ced8031d624fc8bd042275cb0612c7b9f63Andy Qiu 494b834ced8031d624fc8bd042275cb0612c7b9f63Andy Qiuprivate: 504b834ced8031d624fc8bd042275cb0612c7b9f63Andy Qiu enum { 514b834ced8031d624fc8bd042275cb0612c7b9f63Andy Qiu MAXIMUM_LAYER_NUMBER = 20, 524b834ced8031d624fc8bd042275cb0612c7b9f63Andy Qiu }; 53998f109c19fc9d5af0e4611739e0d635da484d93Jackie Li IMG_display_device_public_t *mIMGDisplayDevice; 544b834ced8031d624fc8bd042275cb0612c7b9f63Andy Qiu IMG_hwc_layer_t mImgLayers[MAXIMUM_LAYER_NUMBER]; 554b834ced8031d624fc8bd042275cb0612c7b9f63Andy Qiu bool mInitialized; 564b834ced8031d624fc8bd042275cb0612c7b9f63Andy Qiu int mCount; 576a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu}; 586a6081a46a83da606cf21548879b37695adc7e1fAndy Qiu 594b834ced8031d624fc8bd042275cb0612c7b9f63Andy Qiu} // namespace intel 604b834ced8031d624fc8bd042275cb0612c7b9f63Andy Qiu} // namespace android 614b834ced8031d624fc8bd042275cb0612c7b9f63Andy Qiu 624b834ced8031d624fc8bd042275cb0612c7b9f63Andy Qiu#endif /* TNG_DISPLAY_CONTEXT_H */ 63