Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/gfx/angle/checkout/src/libANGLE/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 3 kB image not shown  

Quelle  format_map_desktop.cpp   Sprache: C

 
// Copyright 2019 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_desktop:
//   Determining the sized internal format from a (format,type) pair.
//   Also check DesktopGL format combinations for validity.

#include "angle_gl.h"
#include "common/debug.h"
#include "formatutils.h"
#include "renderer/gl/functionsgl_enums.h"

// TODO(http://anglebug.com/3730): switch ANGLE to generate its own GL enum types from gl.xml

namespace gl
{

bool ValidDesktopFormat(GLenum format)
{
    switch (format)
    {
        case GL_STENCIL_INDEX:
        case GL_DEPTH_COMPONENT:
        case GL_DEPTH_STENCIL:
        case GL_RED:
        case GL_GREEN:
        case GL_BLUE:
        case GL_RG:
        case GL_RGB:
        case GL_RGBA:
        case GL_BGR:
        case GL_BGRA:
        case GL_RED_INTEGER:
        case GL_GREEN_INTEGER:
        case GL_BLUE_INTEGER:
        case GL_RG_INTEGER:
        case GL_RGB_INTEGER:
        case GL_RGBA_INTEGER:
        case GL_BGR_INTEGER:
        case GL_BGRA_INTEGER:
            return true;

        default:
            return false;
    }
}

bool ValidDesktopType(GLenum type)
{
    switch (type)
    {
        case GL_UNSIGNED_BYTE:
        case GL_BYTE:
        case GL_UNSIGNED_SHORT:
        case GL_SHORT:
        case GL_UNSIGNED_INT:
        case GL_INT:
        case GL_HALF_FLOAT:
        case GL_FLOAT:
        case GL_UNSIGNED_BYTE_3_3_2:
        case GL_UNSIGNED_BYTE_2_3_3_REV:
        case GL_UNSIGNED_SHORT_5_6_5:
        case GL_UNSIGNED_SHORT_5_6_5_REV:
        case GL_UNSIGNED_SHORT_4_4_4_4:
        case GL_UNSIGNED_SHORT_4_4_4_4_REV:
        case GL_UNSIGNED_SHORT_5_5_5_1:
        case GL_UNSIGNED_SHORT_1_5_5_5_REV:
        case GL_UNSIGNED_INT_10_10_10_2:
        case GL_UNSIGNED_INT_2_10_10_10_REV:
        case GL_UNSIGNED_INT_24_8:
        case GL_UNSIGNED_INT_10F_11F_11F_REV:
        case GL_UNSIGNED_INT_5_9_9_9_REV:
        case GL_FLOAT_32_UNSIGNED_INT_24_8_REV:
            return true;

        default:
            return false;
    }
}

// From OpenGL 4.6 spec section 8.4
bool ValidDesktopFormatCombination(GLenum format, GLenum type, GLenum internalFormat)
{
    ASSERT(ValidDesktopFormat(format) && ValidDesktopType(type));
    const InternalFormat &internalFormatInfo = GetInternalFormatInfo(internalFormat, type);
    const InternalFormat &formatInfo         = GetInternalFormatInfo(format, type);

    switch (format)
    {
        case GL_RED_INTEGER:
        case GL_GREEN_INTEGER:
        case GL_BLUE_INTEGER:
        case GL_RG_INTEGER:
        case GL_RGB_INTEGER:
        case GL_RGBA_INTEGER:
        case GL_BGR_INTEGER:
        case GL_BGRA_INTEGER:
            switch (type)
            {
                case GL_HALF_FLOAT:
                case GL_FLOAT:
                case GL_UNSIGNED_INT_10F_11F_11F_REV:
                case GL_UNSIGNED_INT_5_9_9_9_REV:
                    return false;
                default:
                    break;
            }
            if (!internalFormatInfo.isInt())
                return false;
            break;
        default:
            // format is not an integer
            if (internalFormatInfo.isInt())
                return false;

            if (formatInfo.isDepthOrStencil() != internalFormatInfo.isDepthOrStencil())
                return false;

            if (format == GL_STENCIL_INDEX && internalFormat != GL_STENCIL_INDEX)
                return false;
            break;
    }

    return true;
}

}  // namespace gl

Messung V0.5
C=94 H=94 G=93

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.