125caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiu/*
2cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika// Copyright (c) 2014 Intel Corporation 
3cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika//
4cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika// Licensed under the Apache License, Version 2.0 (the "License");
5cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika// you may not use this file except in compliance with the License.
6cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika// You may obtain a copy of the License at
7cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika//
8cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika//      http://www.apache.org/licenses/LICENSE-2.0
9cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika//
10cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika// Unless required by applicable law or agreed to in writing, software
11cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika// distributed under the License is distributed on an "AS IS" BASIS,
12cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika// See the License for the specific language governing permissions and
14cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika// limitations under the License.
15cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika*/
160594c42af26255fd8d3d7d39c0cb0e2da5b8841bThierry Strudel#include <common/utils/HwcTrace.h>
1725caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiu#include <GraphicBuffer.h>
1825caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiu
1925caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiunamespace android {
2025caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiunamespace intel {
2125caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiu
2225caf44022e04f4dc131e51b85b2fb8f966d57e7Andy QiuGraphicBuffer::GraphicBuffer(uint32_t handle)
23eb726af21649d79ed720bdf329e0849270995c45Andy Qiu    : DataBuffer(handle)
2425caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiu{
25eb726af21649d79ed720bdf329e0849270995c45Andy Qiu    initBuffer(handle);
26eb726af21649d79ed720bdf329e0849270995c45Andy Qiu}
27eb726af21649d79ed720bdf329e0849270995c45Andy Qiu
28eb726af21649d79ed720bdf329e0849270995c45Andy Qiuvoid GraphicBuffer::resetBuffer(uint32_t handle)
29eb726af21649d79ed720bdf329e0849270995c45Andy Qiu{
30eb726af21649d79ed720bdf329e0849270995c45Andy Qiu    DataBuffer::resetBuffer(handle);
31eb726af21649d79ed720bdf329e0849270995c45Andy Qiu    initBuffer(handle);
3225caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiu}
3325caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiu
3425caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiubool GraphicBuffer::isProtectedUsage(uint32_t usage)
3525caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiu{
3625caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiu    if (usage == USAGE_INVALID) {
3725caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiu        return false;
3825caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiu    }
3925caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiu
4025caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiu    return (usage & GRALLOC_USAGE_PROTECTED) != 0;
4125caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiu}
4225caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiu
4325caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiubool GraphicBuffer::isProtectedBuffer(GraphicBuffer *buffer)
4425caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiu{
4525caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiu    if (buffer == NULL) {
4625caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiu        return false;
4725caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiu    }
4825caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiu
4925caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiu    return isProtectedUsage(buffer->mUsage);
5025caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiu}
5125caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiu
529f379685f09ddd7c4d98b23121487e8ac4b4dd40Jackie Libool GraphicBuffer::isCompressionUsage(uint32_t usage)
539f379685f09ddd7c4d98b23121487e8ac4b4dd40Jackie Li{
549f379685f09ddd7c4d98b23121487e8ac4b4dd40Jackie Li    if (usage == USAGE_INVALID) {
559f379685f09ddd7c4d98b23121487e8ac4b4dd40Jackie Li        return false;
569f379685f09ddd7c4d98b23121487e8ac4b4dd40Jackie Li    }
579f379685f09ddd7c4d98b23121487e8ac4b4dd40Jackie Li
58dcfa3eed7da09f5f557a42c3e2b88bf4281358f8Thierry Strudel    return false;
599f379685f09ddd7c4d98b23121487e8ac4b4dd40Jackie Li}
609f379685f09ddd7c4d98b23121487e8ac4b4dd40Jackie Li
619f379685f09ddd7c4d98b23121487e8ac4b4dd40Jackie Libool GraphicBuffer::isCompressionBuffer(GraphicBuffer *buffer)
629f379685f09ddd7c4d98b23121487e8ac4b4dd40Jackie Li{
639f379685f09ddd7c4d98b23121487e8ac4b4dd40Jackie Li    if (buffer == NULL) {
649f379685f09ddd7c4d98b23121487e8ac4b4dd40Jackie Li        return false;
659f379685f09ddd7c4d98b23121487e8ac4b4dd40Jackie Li    }
669f379685f09ddd7c4d98b23121487e8ac4b4dd40Jackie Li
679f379685f09ddd7c4d98b23121487e8ac4b4dd40Jackie Li    return isCompressionUsage(buffer->mUsage);
689f379685f09ddd7c4d98b23121487e8ac4b4dd40Jackie Li}
699f379685f09ddd7c4d98b23121487e8ac4b4dd40Jackie Li
700594c42af26255fd8d3d7d39c0cb0e2da5b8841bThierry Strudelvoid GraphicBuffer::initBuffer(uint32_t /*handle*/)
71eb726af21649d79ed720bdf329e0849270995c45Andy Qiu{
72eb726af21649d79ed720bdf329e0849270995c45Andy Qiu    mUsage = USAGE_INVALID;
73eb726af21649d79ed720bdf329e0849270995c45Andy Qiu    mBpp = 0;
74eb726af21649d79ed720bdf329e0849270995c45Andy Qiu}
7525caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiu
7625caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiu}
7725caf44022e04f4dc131e51b85b2fb8f966d57e7Andy Qiu}
78