1 votos

¿Cómo el sistema de ventanas de trabajo en MacOS?

Estoy muy interesado en los gráficos de ordenador y me gustaría saber cómo de ventanas y gráficos de los sistemas de trabajo en MacOS. He empezado a aprender cómo crear una ventana en objective-c, pero luego me dije a mí mismo que no explica lo que hace objective-c "pedir" para el hardware exactamente. Por lo que he leído sobre X11, pero todavía tenía que instalar otro programa 'XQuartz'.

¿Tiene alguna sugerencia para aprender a crear una ventana desde cero, sin utilizar ningún framework o librería en MacOS, si es que es posible? Y si no es posible en MacOS, ¿sabe usted lo que hace que sea imposible (o complicado) en MacOS?

1voto

Tom Harrington Puntos 187

Los Macs tienen su propio sistema de ventanas llamado AppKit que no está basado en X11. Ciertamente puede instalar X11 y usarlo, pero no es cómo la mayoría de aplicaciones de Mac de trabajo. La creación de una ventana de la tierra para arriba con marcos no se va a llevar algo de trabajo, y es quizás el más adecuado para el Stack Overflow. Incluso allí, sin embargo, esta es una rara necesidad de que usted podría tener problemas para obtener una respuesta.

Si usted desea conseguir en el real detalles de bajo nivel de hacer que las cosas funcionen, de la existencia de recursos, aunque se puede dudar de Google, así como a mí. Un buen punto de partida podría ser el Nuevo OSX Libro de sitio.

Un ejemplo sencillo con un mínimo marco de código podría tener este aspecto:

import Foundation
import AppKit

let aWindow = NSWindow(
    contentRect: NSMakeRect(0, 0, 400, 210), 
    styleMask: [.titled, .closable], 
    backing: .buffered, 
    defer: false)
aWindow.makeKeyAndOrderFront(nil)

RunLoop.current.run()

0voto

benwiggy Puntos 8

¿Qué objective-c "pedir" para el hardware exactamente?

Los desarrolladores utilizar el MacOS Api para indicar al sistema operativo para realizar tareas comunes, como la creación de una ventana, mover una ventana, cambiar el tamaño de una ventana. Esto libera a los desarrolladores de código a nivel de hardware, o tener que reescribir el código para la escritura de windows todo el tiempo. Qué pasa 'debajo' es casi transparente.

Apple ha lanzado algunas partes del sistema operativo de código Abierto, pero no creo Core Graphics es uno de ellos.

La programación es una serie de abstracciones. En última instancia, el equipo ha de trazar los colores de cada pixel de la pantalla. Así que imaginen una matriz que describe el valor de color de cada píxel de la pantalla. Ahora imagina una forma de agrupación de las células en la matriz como rectángulos, círculos, líneas, y de otras formas. Y luego se pega NSWindow en la parte superior.

X11 fue creado como un 'front-end' a una gran variedad de hardware que se ejecutan en Unix. Como con MacOS Api, que en realidad no dicen mucho acerca de lo que sucede en 'debajo'. Si desea buscar un controlador de vídeo de marcos o de hardware de bajo nivel de programación, entonces no habrá recursos que usted puede encontrar.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X