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