Pregunta

Como yo lo entiendo, no hubo módulos en las primeras versiones de Qt, había diferentes clases con diferentes funciones, incluyendo gráficos.El soporte de Opengl se realizó En qt 1.2.Sin embargo, QPainter, QImage existía en las primeras versiones.Por lo tanto, es correcto decir que estas clases son nativos (en otras palabras, las clases, que fueron primordiales);opengl clases - no-nativo (es un separste rama, después de todo)?Me gustaría aprender una nueva evolución de Qtopengl como no nativos y forma alternativa para la creación de gráficos en 2D ih Qt, la influencia de este módulo sobre la evolución de los métodos nativos (para la creación de gráficos en 2D).

¿Fue útil?

Solución

Entonces, ¿es correcto decir que estas clases son nativas?

No, no lo es.

La razón de eso es "nativa" significaría cosas diferentes para diferentes personas. Es la cuestión de la interpretación. Vea su otra pregunta qué tan confundido tenemos.

Por ahora, creo que te refieres a "no OpenGL" 2 / 3D por nativo. Eso probablemente significa la rasterización del software en lugar de pasar directamente a través del controlador de exhibición. Entonces, todavía en el nivel QT, pero sin las clases de OpenGL en Qt.

Ahora, este es el punto en el que podemos volver a Qimage y QPainter. Sí, QPainter es básicamente la generación inicial para la rasterización del software desde los tiempos donde las GPU no eran tan comunes y baratas como estos días.

Básicamente están haciendo la representación puramente con técnicas de software. Es decir, es más limitado, pero funcionó sin duros más caros y menos comunes alrededor.

(Esos fueron los tiempos de los productos de SQUKE y otros productos de software, los tiempos de diversión que lo miran desde la perspectiva de hoy ...)

Otros consejos

Si por "nativos" que significa "asistida por hardware", entonces la línea no está todo tan claro ya.Tenga en cuenta que QPainter puede utilizar varios motores de pintura para pintar, así que simplemente el uso de un QPainter no significa nada por sí mismo.

Si por "asistida por hardware" uno solo significa que el uso de algo más de legado de enteros o de punto flotante de unidades de ejecución de la CPU, entonces sí, la trama de la pintura motor hace uso de diversos SIMD/vector de operaciones donde se encuentra disponible.La trama de la pintura motor es el motor que se usa para pintar QImage, QPixmap y no GL QWidget.

Si por hardware "asistencia" que significa "dictado por la tarjeta de gráficos de hardware", entonces usted necesita para usar OpenGL pintura motor.Se utiliza cuando se pinta sobre un QGLWidget o en un QQuickPaintedItem.Por supuesto, la pintura está todavía definida por el software de geometría de la instalación y los shaders son sólo el código!Este software se ejecuta en hardware que puede ejecutar mucho más rápido que el propósito general de la Cpu puede.

Dado que la función fija de OpenGL tubería es de más o menos un artefacto histórico en estos días, no es correcto afirmar que todos de representación en Qt se realiza mediante puramente técnicas de software, pero el software se puede ejecutar en un propósito general de la CPU, o aprovechar SIMD/vector de unidades de ejecución en un propósito general de la CPU, o se puede ejecutar en una GPU.

También debe decirse que la típica de los drivers de Windows en estos días hacer no acelerar GDI/gdiplus dibujo distinto volcados.Por lo tanto cuando se hace de dibujo en 2D utilizando la trama del motor, especialmente en las versiones anteriores de Windows, como XP, Qt puede ser más rápido que el de la plataforma nativa de dibujo en 2D.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top