¿Cómo funciona la UI de los Sistemas Operativos?

Iniciado por Thiamatt, 1 Marzo 2018, 22:42 PM

0 Miembros y 1 Visitante están viendo este tema.

Thiamatt

Hola a todos!

Me preguntaba cómo es qué Windows crea las ventanas, el escritorio y todo lo demás relacionado con la interfáz.

Ya sé que esto se llega programando en conjunto a la placa de video y demás. Pero no se si utilizaron API como OpenGL, o si fue todo desde 0.

En caso de ser desde 0, me gustaría que me recomienden alguna página con documentación al respecto.

Muchas Gracias!

engel lex

#1
Es nativo de windows, on usa ni directx ni opengl

CitarEn caso de ser desde 0, me gustaría que me recomienden alguna página con documentación al respecto.

aquí si no sabría, microsoft no revela muchos detalles de sus productos, podrías es buscar info sobre la api de uso
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Eleкtro

#2
@Thiamatt: la pregunta que formulas es obvia, date cuenta, no existe ninguna razón por la que Microsoft vaya a usar OpenGL cuando precisamente ya han creado Microsoft DirectX (el driver y todas las APIs) para ese propósito con su sistema operativo...

@Engel: un pequeño error sin importancia, pero para aclarar: por supuesto que el sistema operativo Windows usa DirectX para renderizar (parte de) la UI, vuelvo a lanzar la misma pregunta retórica: ¿cómo no va a usarlo si es precisamente el driver y la colección de APIs de dibujado avanzado creada por Microsoft?, su sistema de renderización está basado en esa tecnología de renderización que ellos han creado... en GDI y DirectX.




Según el tipo de ventana, para la renderización con aceleración por hardware (siempre que sea posible en la tarjeta gráfica) Microsoft usa GDI/GDI+ o bien DirectX (DirectShow, Direct2D o Direct3D, etc). Todas las tecnologías de renderización mencionadas son de la marca Microsoft y operan o se comunican de la siguiente manera mediante dos interfaces de controlador de dispositivo (o DDI) como se puede ver en este diagrama:



Fuente:




El escritorio de Windows no es más que una ventana Win32 (GDI+) con un control de tipo LIST (donde se muestran los iconos), y la barra de tareas es otra ventana Win32. Si nos referimos al menú de inicio de Windows 10 o al panel de configuración moderna estilo "METRO" que reemplaza el antiguo panel de control pues son ventanas WPF/XAML (Direct3D).





nota: la herramienta que utilicé es Microsoft UI Inspect (del kit de herramientas para UI Automation incluidas en la SDK de Windows), pero podría servir cualquier otra aplicación similar de inspección de ventanas como por ejemplo Microsoft Spy++, WinSpy, WinSpy++ o Window Detective.




Aquí tienes más información donde puedes contrastar todo o parte de las cosas que afirmé, y documentarte más:

GDI | Wikipedia
Cita de: GDI | WikipediaThe Graphics Device Interface (GDI) is a Microsoft Windows application programming interface and core operating system component responsible for representing graphical objects and transmitting them to output devices such as monitors and printers.

GDI+ | Wikipedia
Cita de: GDI+ | WikipediaWith the introduction of Windows XP, GDI was complemented by the C++-based GDI+ subsystem. GDI+

Use of these features is apparent in Windows XP's user interface and several of its applications such as Microsoft Paint, Windows Picture and Fax Viewer, Photo Printing Wizard, and My Pictures Slideshow screensaver, and their presence in the basic graphics layer greatly simplifies implementations of vector-graphics systems such as Flash or SVG.

WPF | Wikipedia
Cita de: WPF | WikipediaWindows Presentation Foundation (WPF) is a graphical subsystem by Microsoft for rendering user interfaces in Windows-based applications. WPF uses DirectX.


Para la renderización de texto en el sistema operativo/interfaz de usuario/ventanas se usa o bien GDI, ClearType, o DirectX (DirectWrite).
+

Y si quieres aburrirte un rato con información histórica... por no llamarlo "vintage" xD:

Saludos!








engel lex

sabia que usaban direct2d, pero no sabía que pertenecía a la suite de directx (aunque debía ser logico)

:o gracias por la info y el diagrama ;)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Eleкtro

#4
A modo de chuleta para que no haga falta memorizar los nombres o su relación con DirectX: aunque en realidad no estoy 100% seguro pero estoy casi convencido de que cualquier API de Microsoft que exista y que esté relacionada con multimedia/gráficos/sonido que empiece por "Direct" forma parte de DirectX y no de otra cosa ajena, ya que parece ser una especie de convención:

Cita de: https://en.wikipedia.org/wiki/DirectXOriginally, the names of these APIs all began with Direct, such as Direct3D, DirectDraw, DirectMusic, DirectPlay, DirectSound, and so forth.

( aunque también hay APIs que no empiezan por "Direct", sino por la "X" de DirectX, como XAudio2)

PD: en ese artículo de Wikipedia falta por mencionar algunas API cuyos nombres empiezan por "Direct", como por ejemplo DirectXMath.

saludos!








Thiamatt