| OLD | NEW | 
|---|
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "base/logging.h" | 5 #include "base/logging.h" | 
| 6 #include "ui/gl/gl_surface_format.h" | 6 #include "ui/gl/gl_surface_format.h" | 
| 7 | 7 | 
| 8 namespace gl { | 8 namespace gl { | 
| 9 | 9 | 
| 10 GLSurfaceFormat::GLSurfaceFormat() { | 10 GLSurfaceFormat::GLSurfaceFormat() { | 
| 11 } | 11 } | 
| 12 | 12 | 
| 13 GLSurfaceFormat::GLSurfaceFormat(SurfacePixelLayout layout) { | 13 GLSurfaceFormat::GLSurfaceFormat(SurfacePixelLayout layout) { | 
| 14   is_default_ = false; |  | 
| 15   pixel_layout_ = layout; | 14   pixel_layout_ = layout; | 
| 16 } | 15 } | 
| 17 | 16 | 
| 18 GLSurfaceFormat::GLSurfaceFormat(const GLSurfaceFormat& other) = default; | 17 GLSurfaceFormat::GLSurfaceFormat(const GLSurfaceFormat& other) = default; | 
| 19 | 18 | 
| 20 GLSurfaceFormat::~GLSurfaceFormat() { | 19 GLSurfaceFormat::~GLSurfaceFormat() { | 
| 21 } | 20 } | 
| 22 | 21 | 
| 23 bool GLSurfaceFormat::IsSurfaceless() { |  | 
| 24   return is_surfaceless_; |  | 
| 25 } |  | 
| 26 |  | 
| 27 GLSurfaceFormat::SurfacePixelLayout GLSurfaceFormat::GetPixelLayout() { | 22 GLSurfaceFormat::SurfacePixelLayout GLSurfaceFormat::GetPixelLayout() { | 
| 28   return pixel_layout_; | 23   return pixel_layout_; | 
| 29 } | 24 } | 
| 30 | 25 | 
| 31 void GLSurfaceFormat::SetDefaultPixelLayout(SurfacePixelLayout layout) { | 26 void GLSurfaceFormat::SetDefaultPixelLayout(SurfacePixelLayout layout) { | 
| 32   if (pixel_layout_ == PIXEL_LAYOUT_DONT_CARE && | 27   if (pixel_layout_ == PIXEL_LAYOUT_DONT_CARE && | 
| 33       layout != PIXEL_LAYOUT_DONT_CARE) { | 28       layout != PIXEL_LAYOUT_DONT_CARE) { | 
| 34     pixel_layout_ = layout; | 29     pixel_layout_ = layout; | 
| 35     is_default_ = false; |  | 
| 36   } | 30   } | 
| 37 } | 31 } | 
| 38 | 32 | 
| 39 void GLSurfaceFormat::SetRGB565() { | 33 void GLSurfaceFormat::SetRGB565() { | 
| 40   red_bits_ = blue_bits_ = 5; | 34   red_bits_ = blue_bits_ = 5; | 
| 41   green_bits_ = 6; | 35   green_bits_ = 6; | 
| 42   alpha_bits_ = 0; | 36   alpha_bits_ = 0; | 
| 43   is_default_ = false; |  | 
| 44 } |  | 
| 45 |  | 
| 46 void GLSurfaceFormat::SetIsSurfaceless() { |  | 
| 47   is_surfaceless_ = true; |  | 
| 48   is_default_ = false; |  | 
| 49 } | 37 } | 
| 50 | 38 | 
| 51 static int GetValue(int num, int default_value) { | 39 static int GetValue(int num, int default_value) { | 
| 52   return num == -1 ? default_value : num; | 40   return num == -1 ? default_value : num; | 
| 53 } | 41 } | 
| 54 | 42 | 
| 55 static int GetBitSize(int num) { | 43 static int GetBitSize(int num) { | 
| 56   return GetValue(num, 8); | 44   return GetValue(num, 8); | 
| 57 } | 45 } | 
| 58 | 46 | 
| 59 |  | 
| 60 bool GLSurfaceFormat::IsDefault() { |  | 
| 61   return is_default_; |  | 
| 62 } |  | 
| 63 |  | 
| 64 bool GLSurfaceFormat::IsCompatible(GLSurfaceFormat other) { | 47 bool GLSurfaceFormat::IsCompatible(GLSurfaceFormat other) { | 
| 65   if (IsDefault() && other.IsDefault()) return true; |  | 
| 66 |  | 
| 67   if (GetBitSize(red_bits_) == GetBitSize(other.red_bits_) && | 48   if (GetBitSize(red_bits_) == GetBitSize(other.red_bits_) && | 
| 68       GetBitSize(green_bits_) == GetBitSize(other.green_bits_) && | 49       GetBitSize(green_bits_) == GetBitSize(other.green_bits_) && | 
| 69       GetBitSize(blue_bits_) == GetBitSize(other.blue_bits_) && | 50       GetBitSize(blue_bits_) == GetBitSize(other.blue_bits_) && | 
| 70       GetBitSize(alpha_bits_) == GetBitSize(other.alpha_bits_) && | 51       GetBitSize(alpha_bits_) == GetBitSize(other.alpha_bits_) && | 
| 71       GetValue(stencil_bits_, 8) == GetValue(other.stencil_bits_, 8) && | 52       GetValue(stencil_bits_, 8) == GetValue(other.stencil_bits_, 8) && | 
| 72       GetValue(depth_bits_, 24) == GetValue(other.depth_bits_, 24) && | 53       GetValue(depth_bits_, 24) == GetValue(other.depth_bits_, 24) && | 
| 73       GetValue(samples_, 0) == GetValue(other.samples_, 0) && | 54       GetValue(samples_, 0) == GetValue(other.samples_, 0) && | 
| 74       is_surfaceless_ == other.is_surfaceless_ && |  | 
| 75       pixel_layout_ == other.pixel_layout_) { | 55       pixel_layout_ == other.pixel_layout_) { | 
| 76     return true; | 56     return true; | 
| 77   } | 57   } | 
| 78   return false; | 58   return false; | 
| 79 } | 59 } | 
| 80 | 60 | 
| 81 void GLSurfaceFormat::SetDepthBits(int bits) { | 61 void GLSurfaceFormat::SetDepthBits(int bits) { | 
| 82   if (bits != -1) { | 62   if (bits != -1) { | 
| 83     depth_bits_ = bits; | 63     depth_bits_ = bits; | 
| 84     is_default_ = false; |  | 
| 85   } | 64   } | 
| 86 } | 65 } | 
| 87 | 66 | 
| 88 int GLSurfaceFormat::GetDepthBits() { | 67 int GLSurfaceFormat::GetDepthBits() { | 
| 89   return depth_bits_; | 68   return depth_bits_; | 
| 90 } | 69 } | 
| 91 | 70 | 
| 92 void GLSurfaceFormat::SetStencilBits(int bits) { | 71 void GLSurfaceFormat::SetStencilBits(int bits) { | 
| 93   if (bits != -1) { | 72   if (bits != -1) { | 
| 94     stencil_bits_ = bits; | 73     stencil_bits_ = bits; | 
| 95     is_default_ = false; |  | 
| 96   } | 74   } | 
| 97 } | 75 } | 
| 98 | 76 | 
| 99 int GLSurfaceFormat::GetStencilBits() { | 77 int GLSurfaceFormat::GetStencilBits() { | 
| 100   return stencil_bits_; | 78   return stencil_bits_; | 
| 101 } | 79 } | 
| 102 | 80 | 
| 103 void GLSurfaceFormat::SetSamples(int num) { | 81 void GLSurfaceFormat::SetSamples(int num) { | 
| 104   if (num != -1) { | 82   if (num != -1) { | 
| 105     samples_ = num; | 83     samples_ = num; | 
| 106     is_default_ = false; |  | 
| 107   } | 84   } | 
| 108 } | 85 } | 
| 109 | 86 | 
| 110 int GLSurfaceFormat::GetSamples() { | 87 int GLSurfaceFormat::GetSamples() { | 
| 111   return samples_; | 88   return samples_; | 
| 112 } | 89 } | 
| 113 | 90 | 
| 114 int GLSurfaceFormat::GetBufferSize() { | 91 int GLSurfaceFormat::GetBufferSize() { | 
| 115   int bits = GetBitSize(red_bits_) + GetBitSize(green_bits_) + | 92   int bits = GetBitSize(red_bits_) + GetBitSize(green_bits_) + | 
| 116       GetBitSize(blue_bits_) + GetBitSize(alpha_bits_); | 93       GetBitSize(blue_bits_) + GetBitSize(alpha_bits_); | 
| 117   if (bits <= 16) { | 94   if (bits <= 16) { | 
| 118     return 16; | 95     return 16; | 
| 119   } else if (bits <= 32) { | 96   } else if (bits <= 32) { | 
| 120     return 32; | 97     return 32; | 
| 121   } | 98   } | 
| 122   NOTREACHED(); | 99   NOTREACHED(); | 
| 123   return 64; | 100   return 64; | 
| 124 } | 101 } | 
| 125 | 102 | 
| 126 }  // namespace gl | 103 }  // namespace gl | 
| OLD | NEW | 
|---|