1 /*
2  * Copyright (C) 2020 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.server.wm.traces.common
18 
19 class Buffer(width: Int, height: Int, val stride: Int, val format: Int) : Size(width, height) {
prettyPrintnull20     override fun prettyPrint(): String = prettyPrint(this)
21 
22     override fun equals(other: Any?): Boolean =
23         other is Buffer &&
24         other.height == height &&
25         other.width == width &&
26         other.stride == stride &&
27         other.format == format
28 
29     override fun hashCode(): Int {
30         var result = height
31         result = 31 * result + width
32         result = 31 * result + stride
33         result = 31 * result + format
34         return result
35     }
36 
toStringnull37     override fun toString(): String = prettyPrint()
38 
39     companion object {
40         val EMPTY: Buffer = Buffer(0, 0, 0, 0)
41 
42         fun prettyPrint(buffer: Buffer): String = "w:${buffer.width}, h:${buffer.height}, " +
43             "stride:${buffer.stride}, format:${buffer.format}"
44     }
45 }
46