LINUX.ORG.RU

История изменений

Исправление winddos, (текущая версия) :

Или я всё же что-то неправильно понял?

Постараюсь привести несколько простых примеров. Я не спец в том как работает винда, поэтому поправьте если я не где то не прав.

Как (упрощенно) работает игра использующая Direct3D в винде:
Игра -> Direct3D API (реализуется Microsoft) -> DDI (драйвер, реализуется вендором) -> Железо
Как она работает в вайне сейчас:
Игра -> Direct3D API (оригинальные плюс вайновские DLL) -> Direct3D to OpenGL translator (реализуется вайном) -> реализация OpenGL (Mesa) -> OpenGL Gallium3D state tracker (я понимаю что это называется иначе) -> Железо
Как она будет работать после сабжевой модификации:
Игра -> Direct3D API -> Direct3D Gallium3D state tracker -> железо.

Это конечно с технической точки зрения нифига не корректно (ибо дофига упущений), но суть должна быть ясна. Т.е Gallium не реализует API Direct3D (этим занимается микс вайновских DLL и оригинальной реализации Microsoft), а выполняет роль DDI на винде. При этом пилить с ноля почти ничего не надо, т.к почти весь нужный Direct3D функционал уже реализован для OpenGL.

Исправление winddos, :

Или я всё же что-то неправильно понял?

Постараюсь привести несколько простых примеров. Я не спец в том как работает винда, поэтому поправьте если я не где то не прав.

Как (упрощенно) работает игра использующая Direct3D в винде:
Игра -> Direct3D API (реализуется Microsoft) -> DDI (драйвер, реализуется вендором) -> Железо
Как она работает в вайне сейчас:
Игра -> Direct3D API (оригинальные плюс вайновские DLL) -> Direct3D to OpenGL translator (реализуется вайном) -> реализация OpenGL -> OpenGL Gallium3D state tracker (я понимаю что это называется иначе) -> Железо
Как она будет работать после сабжевой модификации:
Игра -> Direct3D API -> Direct3D Gallium3D state tracker -> железо.

Это конечно с технической точки зрения нифига не корректно (ибо дофига упущений), но суть должна быть ясна. Т.е Gallium не реализует API Direct3D (этим занимается микс вайновских DLL и оригинальной реализации Microsoft), а выполняет роль DDI на винде.

Исправление winddos, :

Или я всё же что-то неправильно понял?

Постараюсь привести несколько простых примеров. Я не спец в том как работает винда, поэтому поправьте если я не где то не прав.

Как (упрощенно) работает игра использующая Direct3D в винде:
Игра -> Direct3D API (реализуется Microsoft) -> DDI (драйвер, реализуется вендором) -> Железо
Как она работает в вайне сейчас:
Игра -> Direct3D API (оригинальные плюс вайновские DLL) -> Direct3D to OpenGL translator (реализуется вайном) -> реализация OpenGL -> OpenGL Gallium3D state tracker -> Железо
Как она будет работать после сабжевой модификации:
Игра -> Direct3D API -> Direct3D Gallium3D state tracker -> железо.

Это конечно с технической точки зрения нифига не корректно (ибо дофига упущений), но суть должна быть ясна. Т.е Gallium не реализует API Direct3D (этим занимается микс вайновских DLL и оригинальной реализации Microsoft), а выполняет роль DDI на винде.

Исходная версия winddos, :

Или я всё же что-то неправильно понял?

Постараюсь привести несколько простых примеров. Я не спец в том как работает винда, поэтому поправьте если я не где то не прав.

Как (упрощенно) работает игра использующая Direct3D в винде:
Игра -> Direct3D API (реализуется Microsoft) -> DDI (драйвер, реализуется вендором) -> Железо
Как она работает в вайне сейчас:
Игра -> Direct3D API (оригинальные плюс вайновские DLL) -> Direct3D to OpenGL translator (реализуется вайном) -> реализация OpenGL -> OpenGL Gallium3D state tracker -> Железо
Как она будет работать после сабжевой модификации:
Игра -> Direct3D API -> Direct3D Gallium3D state tracker -> железо.

Это конечно с технической точки зрения нифига не корректно (ибо дофига упущений), но суть должна быть ясна. Т.е Gallium не реализует API Direct3D, а выполняет роль DDI на винде.