Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  Config.h   Sprache: C

 
//
// Copyright 2002 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.
//

// Config.h: Defines the egl::Config class, describing the format, type
// and size for an egl::Surface. Implements EGLConfig and related functionality.
// [EGL 1.5] section 3.4 page 19.

#ifndef INCLUDE_CONFIG_H_
#define INCLUDE_CONFIG_H_

#include "libANGLE/AttributeMap.h"

#include "common/angleutils.h"

#include <EGL/egl.h>
#include <GLES2/gl2.h>

#include <map>
#include <vector>

namespace egl
{

struct Config
{
    Config();
    ~Config();
    Config(const Config &other);
    Config &operator=(const Config &other);

    GLenum renderTargetFormat;  // TODO(geofflang): remove this
    GLenum depthStencilFormat;  // TODO(geofflang): remove this

    EGLint bufferSize;             // Depth of the color buffer
    EGLint redSize;                // Bits of Red in the color buffer
    EGLint greenSize;              // Bits of Green in the color buffer
    EGLint blueSize;               // Bits of Blue in the color buffer
    EGLint luminanceSize;          // Bits of Luminance in the color buffer
    EGLint alphaSize;              // Bits of Alpha in the color buffer
    EGLint alphaMaskSize;          // Bits of Alpha Mask in the mask buffer
    EGLBoolean bindToTextureRGB;   // True if bindable to RGB textures.
    EGLBoolean bindToTextureRGBA;  // True if bindable to RGBA textures.
    EGLenum bindToTextureTarget;   // Which texture target should be used for pbuffers
    EGLenum colorBufferType;       // Color buffer type
    EGLenum configCaveat;          // Any caveats for the configuration
    EGLint configID;               // Unique EGLConfig identifier
    EGLint conformant;             // Whether contexts created with this config are conformant
    EGLint depthSize;              // Bits of Z in the depth buffer
    EGLint level;                  // Frame buffer level
    EGLBoolean matchNativePixmap;  // Match the native pixmap format
    EGLint maxPBufferWidth;        // Maximum width of pbuffer
    EGLint maxPBufferHeight;       // Maximum height of pbuffer
    EGLint maxPBufferPixels;       // Maximum size of pbuffer
    EGLint maxSwapInterval;        // Maximum swap interval
    EGLint minSwapInterval;        // Minimum swap interval
    EGLBoolean nativeRenderable;   // EGL_TRUE if native rendering APIs can render to surface
    EGLint nativeVisualID;         // Handle of corresponding native visual
    EGLint nativeVisualType;       // Native visual type of the associated visual
    EGLint renderableType;         // Which client rendering APIs are supported.
    EGLint sampleBuffers;          // Number of multisample buffers
    EGLint samples;                // Number of samples per pixel
    EGLint stencilSize;            // Bits of Stencil in the stencil buffer
    EGLint surfaceType;            // Which types of EGL surfaces are supported.
    EGLenum transparentType;       // Type of transparency supported
    EGLint transparentRedValue;    // Transparent red value
    EGLint transparentGreenValue;  // Transparent green value
    EGLint transparentBlueValue;   // Transparent blue value
    EGLint optimalOrientation;     // Optimal window surface orientation
    EGLenum colorComponentType;    // Color component type
    EGLBoolean recordable;         // EGL_TRUE if a surface can support recording on Android
    EGLBoolean framebufferTarget;  // EGL_TRUE if the config supports rendering to a ANativeWindow
                                   // for which the buffers are passed to the HWComposer HAL as a
                                   // framebuffer target layer.
    EGLBoolean yInverted;  // True if the drawable's framebuffer is y-inverted.  This can be used to
                           // determine if y-inverted texture coordinates need to be used when
                           // texturing from this drawable when it is bound to a texture target.
    EGLint matchFormat;    // LockSurface match format.
};

class ConfigSet
{
  private:
    typedef std::map<EGLint, Config> ConfigMap;

  public:
    ConfigSet();
    ConfigSet(const ConfigSet &other);
    ~ConfigSet();
    ConfigSet &operator=(const ConfigSet &other);

    EGLint add(const Config &config);
    const Config &get(EGLint id) const;

    void clear();

    size_t size() const;

    bool contains(const Config *config) const;

    // Filter configurations based on the table in [EGL 1.5] section 3.4.1.2 page 29
    std::vector<const Config *> filter(const AttributeMap &attributeMap) const;

    ConfigMap::iterator begin();
    ConfigMap::iterator end();

  private:
    ConfigMap mConfigs;
};

}  // namespace egl

#endif  // INCLUDE_CONFIG_H_

Messung V0.5
C=51 H=100 G=79

¤ Dauer der Verarbeitung: 0.16 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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge