Edit

kc3-lang/angle/src/libANGLE/es3_copy_conversion_table_autogen.cpp

Branch :

  • Show log

    Commit

  • Author : Geoff Lang
    Date : 2017-05-17 15:40:03
    Hash : 80616218
    Message : Support CHROMIUM_copy_texture for all formats on D3D11. Adds a CPU readback and conversion path when the destination texture is not renderable. BUG=angleproject:1932 Change-Id: I71461ca991dc10dd636ff38e1ae20db2be0f8d63 Reviewed-on: https://chromium-review.googlesource.com/508308 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>

  • src/libANGLE/es3_copy_conversion_table_autogen.cpp
  • // GENERATED FILE - DO NOT EDIT.
    // Generated by gen_copy_conversion_table.py using data from es3_copy_conversion_formats.json.
    //
    // Copyright 2017 The ANGLE Project Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style license that can be
    // found in the LICENSE file.
    //
    // format_map:
    //   Determining the sized internal format from a (format,type) pair.
    //   Also check es3 format combinations for validity.
    
    #include "angle_gl.h"
    #include "common/debug.h"
    
    namespace gl
    {
    
    bool ValidES3CopyConversion(GLenum textureFormat, GLenum framebufferFormat)
    {
        switch (textureFormat)
        {
            case GL_ALPHA:
                switch (framebufferFormat)
                {
                    case GL_BGRA_EXT:
                    case GL_RGBA:
                        return true;
                    default:
                        break;
                }
                break;
    
            case GL_BGRA_EXT:
                switch (framebufferFormat)
                {
                    case GL_BGRA_EXT:
                        return true;
                    default:
                        break;
                }
                break;
    
            case GL_LUMINANCE:
                switch (framebufferFormat)
                {
                    case GL_BGRA_EXT:
                    case GL_RED:
                    case GL_RG:
                    case GL_RGB:
                    case GL_RGBA:
                        return true;
                    default:
                        break;
                }
                break;
    
            case GL_LUMINANCE_ALPHA:
                switch (framebufferFormat)
                {
                    case GL_BGRA_EXT:
                    case GL_RGBA:
                        return true;
                    default:
                        break;
                }
                break;
    
            case GL_RED:
                switch (framebufferFormat)
                {
                    case GL_BGRA_EXT:
                    case GL_RED:
                    case GL_RG:
                    case GL_RGB:
                    case GL_RGBA:
                        return true;
                    default:
                        break;
                }
                break;
    
            case GL_RED_INTEGER:
                switch (framebufferFormat)
                {
                    case GL_RED_INTEGER:
                    case GL_RGBA_INTEGER:
                    case GL_RGB_INTEGER:
                    case GL_RG_INTEGER:
                        return true;
                    default:
                        break;
                }
                break;
    
            case GL_RG:
                switch (framebufferFormat)
                {
                    case GL_BGRA_EXT:
                    case GL_RG:
                    case GL_RGB:
                    case GL_RGBA:
                        return true;
                    default:
                        break;
                }
                break;
    
            case GL_RGB:
                switch (framebufferFormat)
                {
                    case GL_BGRA_EXT:
                    case GL_RGB:
                    case GL_RGBA:
                        return true;
                    default:
                        break;
                }
                break;
    
            case GL_RGBA:
                switch (framebufferFormat)
                {
                    case GL_BGRA_EXT:
                    case GL_RGBA:
                        return true;
                    default:
                        break;
                }
                break;
    
            case GL_RGBA_INTEGER:
                switch (framebufferFormat)
                {
                    case GL_RGBA_INTEGER:
                        return true;
                    default:
                        break;
                }
                break;
    
            case GL_RGB_INTEGER:
                switch (framebufferFormat)
                {
                    case GL_RGBA_INTEGER:
                    case GL_RGB_INTEGER:
                        return true;
                    default:
                        break;
                }
                break;
    
            case GL_RG_INTEGER:
                switch (framebufferFormat)
                {
                    case GL_RGBA_INTEGER:
                    case GL_RGB_INTEGER:
                    case GL_RG_INTEGER:
                        return true;
                    default:
                        break;
                }
                break;
    
            default:
                break;
        }
    
        return false;
    }
    
    }  // namespace gl