История изменений
Исправление 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 на винде.