tutorial - ¿Cuáles son las diferencias entre glu, glew, glut, qt, sdl, openGL y webGL?





qt5 gui (2)


OpenGL

OpenGL (Open Graphics Library) es una API multiplataforma para renderizar gráficos 2D y 3D. La API trata principalmente de centrarse en el uso de la GPU para lograr hardware-accelerated representación hardware-accelerated .

OpenGL-ES

OpenGL-ES (OpenGL para Embedded Systems) es un subconjunto de OpenGL diseñado para su uso en sistemas integrados como teléfonos inteligentes, tabletas, consolas de juegos, etc.

WebGL

WebGL (Web Graphics Library) es una API de JavaScript para renderizar gráficos 2D y 3D. WebGL también usa la GPU tanto como sea posible a través del navegador.

WebGL se basa en OpenGL-ES . Tenga en cuenta que pueden tener las mismas funciones, aunque WebGL no es OpenGL o OpenGL-ES. WebGL solo se basa en OpenGL-ES.

GLU

GLU (OpenGL Utility Library) es una biblioteca de gráficos para OpenGL, que consta de funciones de utilidad que se pueden usar con OpenGL. Las funciones se centran principalmente en la representación primitiva y el mapeo entre las coordenadas de la pantalla y del mundo, etc.

GLEW

GLEW (OpenGL Extension Wrangler Library) es una biblioteca multiplataforma que ayuda a consultar y cargar extensiones OpenGL.

GLUT

GLUT (OpenGL Utility Toolkit) es una biblioteca de utilidades para OpenGL, que se centra principalmente en la definición de ventanas, el control de ventanas y la monitorización de entradas de teclado y mouse.

SDL

SDL (Simple DirectMedia Layer) es una biblioteca de desarrollo multiplataforma diseñada para proporcionar acceso de bajo nivel a hardware de audio, teclado, mouse, joystick y gráficos a través de OpenGL.

SDL también se puede usar para otras API gráficas como DirectX, etc.

QT

QT es un marco de desarrollo de aplicaciones multiplataforma ampliamente utilizado para el desarrollo de programas de GUI (en cuyo caso se lo conoce como kit de herramientas de widgets) y también se utiliza para desarrollar programas que no son de GUI, como herramientas de consola y servidores.

Conclusión

  • OpenGL es una API para renderizar gráficos 2D y 3D.
  • OpenGL-ES es un subconjunto de sistemas integrados de orientación de OpenGL.
  • WebGL es una API de JavaScript para renderizar gráficos 2D y 3D, basados ​​en OpenGL-ES.

  • GLU es una biblioteca de utilidad para OpenGL, que principalmente contiene funciones de mapeo.

  • GLEW es una biblioteca de utilidades para OpenGL, que puede manejar la carga de extensiones OpenGL.
  • GLUT & SDL es una biblioteca para manejar varias cosas como el control de ventana, teclado y mouse, además de escuchar.
  • QT es un marco principalmente para crear GUI.

De este modo, GLU, GLEW, GLUT son simplemente bibliotecas de utilidades para OpenGL, que requieren OpenGL, si no no son para mucho.

SDL no requiere OpenGL y no es directamente una biblioteca de utilidades OpenGL principalmente, pero se puede usar con OpenGL pero también con otras cosas.

Entonces me doy cuenta de que hay varios mensajes que cubren pares de estos, pero estoy teniendo problemas para entender cómo encajan todos.

Explique para qué se usa cada uno de los siguientes y cómo se relacionan entre sí:
glu
glew
exceso
sdl
qt
OpenGL
webGL




QDataStream maneja una variedad de tipos de datos C ++ y Qt. La lista completa está disponible en http://doc.qt.io/qt-4.8/datastreamformat.html . También podemos agregar soporte para nuestros propios tipos personalizados al sobrecargar los operadores << y >>. Aquí está la definición de un tipo de datos personalizado que se puede usar con QDataStream:

class Painting
{
public:
    Painting() { myYear = 0; }
    Painting(const QString &title, const QString &artist, int year) {
        myTitle = title;
        myArtist = artist;
        myYear = year;
    }
    void setTitle(const QString &title) { myTitle = title; }
    QString title() const { return myTitle; }
    ...
private:
    QString myTitle;
    QString myArtist;
    int myYear;
};
QDataStream &operator<<(QDataStream &out, const Painting &painting);
QDataStream &operator>>(QDataStream &in, Painting &painting);

Así es como implementaríamos el << operador:

QDataStream &operator<<(QDataStream &out, const Painting &painting)
{
    out << painting.title() << painting.artist()
        << quint32(painting.year());
    return out;
}

Para producir una pintura, simplemente enviamos dos QStrings y un quint32. Al final de la función, devolvemos la secuencia. Esta es una expresión común de C ++ que nos permite usar una cadena de << operadores con un flujo de salida. Por ejemplo:

fuera << pintura1 << pintura2 << pintura3;

La implementación del operador >> () es similar a la del operador << ():

QDataStream &operator>>(QDataStream &in, Painting &painting)
{
    QString title;
    QString artist;
    quint32 year;
    in >> title >> artist >> year;
    painting = Painting(title, artist, year);
    return in;
}

Esto es de: Programación de la GUI de C ++ con Qt 4 Por Jasmin Blanchette, Mark Summerfield





qt opengl sdl glut glu