Wine is van origine een programma onder linux, wat het mogelijk maakt om Windows programma's onder linux te draaien, nu is dit met een klein beetje aanpassen ook werkend gemaakt voor OSX met bijvoorbeeld het project 'Darwine'.
Het idee van dit systeem is:
Onder windows gaat het (voor bijvoorbeeld DX, erg versimpeld)
DX-Call kleur pixel x -> driver-call kleur pixel X
Wine vangt de DX call af, en maakt er een OpenGL call van naar de harware dacht ik.
Dus dan heb je dit:
DX-Call kleur pixel x -> Wine -> OpenGL call kleur pixel X -> driver call kleur pixel X
Er zijn dus meer stappen nodig om hetzelfde effect te bereiken, tel daarbij op dat 'windows' niet opensource is, dus elke 'call' moet gereverse-engeneerd worden, en omgezet zodat ook dat werkt in Wine. Waardoor je eigenlijk constant achter de feiten aanloopt, als in windows iets veranderd, duurt het altijd even voordat dat in wine wordt doorgevoerd. (Momenteel zit wine op een 'half tot redelijk werkende' DX 9 implementatie)
Een voorbeeld van wat ik bedoelde met 'wine-in-een-package' is Cider, welke gewoon Wine is, maar wat je niet ziet, omdat dit in de .app zit verwerkt. Hierdoor kan je gewoon klikken op je .app, en wordt op de achtergrond wine geladen, waar het spel in wordt geladen.