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