| // Copyright 2017 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "gpu/command_buffer/common/context_creation_attribs.h" |
| |
| #include "base/notreached.h" |
| |
| namespace gpu { |
| |
| bool IsGLContextType(ContextType context_type) { |
| // Switch statement to cause a compile-time error if we miss a case. |
| switch (context_type) { |
| case CONTEXT_TYPE_OPENGLES2: |
| case CONTEXT_TYPE_OPENGLES3: |
| case CONTEXT_TYPE_WEBGL1: |
| case CONTEXT_TYPE_WEBGL2: |
| case CONTEXT_TYPE_OPENGLES31_FOR_TESTING: |
| return true; |
| case CONTEXT_TYPE_WEBGPU: |
| return false; |
| } |
| |
| NOTREACHED(); |
| } |
| |
| bool IsWebGLContextType(ContextType context_type) { |
| // Switch statement to cause a compile-time error if we miss a case. |
| switch (context_type) { |
| case CONTEXT_TYPE_WEBGL1: |
| case CONTEXT_TYPE_WEBGL2: |
| return true; |
| case CONTEXT_TYPE_OPENGLES2: |
| case CONTEXT_TYPE_OPENGLES3: |
| case CONTEXT_TYPE_OPENGLES31_FOR_TESTING: |
| case CONTEXT_TYPE_WEBGPU: |
| return false; |
| } |
| |
| NOTREACHED(); |
| } |
| |
| bool IsWebGL1OrES2ContextType(ContextType context_type) { |
| // Switch statement to cause a compile-time error if we miss a case. |
| switch (context_type) { |
| case CONTEXT_TYPE_WEBGL1: |
| case CONTEXT_TYPE_OPENGLES2: |
| return true; |
| case CONTEXT_TYPE_WEBGL2: |
| case CONTEXT_TYPE_OPENGLES3: |
| case CONTEXT_TYPE_OPENGLES31_FOR_TESTING: |
| case CONTEXT_TYPE_WEBGPU: |
| return false; |
| } |
| |
| NOTREACHED(); |
| } |
| |
| bool IsWebGL2OrES3ContextType(ContextType context_type) { |
| // Switch statement to cause a compile-time error if we miss a case. |
| switch (context_type) { |
| case CONTEXT_TYPE_OPENGLES3: |
| case CONTEXT_TYPE_WEBGL2: |
| return true; |
| case CONTEXT_TYPE_WEBGL1: |
| case CONTEXT_TYPE_OPENGLES2: |
| case CONTEXT_TYPE_OPENGLES31_FOR_TESTING: |
| case CONTEXT_TYPE_WEBGPU: |
| return false; |
| } |
| |
| NOTREACHED(); |
| } |
| |
| bool IsWebGL2OrES3OrHigherContextType(ContextType context_type) { |
| // Switch statement to cause a compile-time error if we miss a case. |
| switch (context_type) { |
| case CONTEXT_TYPE_OPENGLES3: |
| case CONTEXT_TYPE_WEBGL2: |
| case CONTEXT_TYPE_OPENGLES31_FOR_TESTING: |
| return true; |
| case CONTEXT_TYPE_WEBGL1: |
| case CONTEXT_TYPE_OPENGLES2: |
| case CONTEXT_TYPE_WEBGPU: |
| return false; |
| } |
| |
| NOTREACHED(); |
| } |
| |
| bool IsES31ForTestingContextType(ContextType context_type) { |
| // Switch statement to cause a compile-time error if we miss a case. |
| switch (context_type) { |
| case CONTEXT_TYPE_OPENGLES31_FOR_TESTING: |
| return true; |
| case CONTEXT_TYPE_OPENGLES3: |
| case CONTEXT_TYPE_WEBGL2: |
| case CONTEXT_TYPE_WEBGL1: |
| case CONTEXT_TYPE_OPENGLES2: |
| case CONTEXT_TYPE_WEBGPU: |
| return false; |
| } |
| |
| NOTREACHED(); |
| } |
| |
| bool IsWebGPUContextType(ContextType context_type) { |
| // Switch statement to cause a compile-time error if we miss a case. |
| switch (context_type) { |
| case CONTEXT_TYPE_WEBGPU: |
| return true; |
| case CONTEXT_TYPE_OPENGLES2: |
| case CONTEXT_TYPE_OPENGLES3: |
| case CONTEXT_TYPE_WEBGL1: |
| case CONTEXT_TYPE_WEBGL2: |
| case CONTEXT_TYPE_OPENGLES31_FOR_TESTING: |
| return false; |
| } |
| |
| NOTREACHED(); |
| } |
| |
| const char* ContextTypeToLabel(ContextType context_type) { |
| // Switch statement to cause a compile-time error if we miss a case. |
| switch (context_type) { |
| case CONTEXT_TYPE_OPENGLES2: |
| return "OPENGLES2"; |
| case CONTEXT_TYPE_OPENGLES3: |
| return "OPENGLES3"; |
| case CONTEXT_TYPE_WEBGL1: |
| return "WEBGL1"; |
| case CONTEXT_TYPE_WEBGL2: |
| return "WEBGL2"; |
| case CONTEXT_TYPE_OPENGLES31_FOR_TESTING: |
| return "GLES31_FOR_TESTING"; |
| case CONTEXT_TYPE_WEBGPU: |
| return "WEBGPU"; |
| } |
| |
| NOTREACHED(); |
| } |
| |
| ContextCreationAttribs::ContextCreationAttribs() = default; |
| |
| ContextCreationAttribs::ContextCreationAttribs( |
| const ContextCreationAttribs& other) = default; |
| |
| ContextCreationAttribs& ContextCreationAttribs::operator=( |
| const ContextCreationAttribs& other) = default; |
| |
| } // namespace gpu |