OpenGL là một giao diện để thực hiện các lệnh đồ họa. Bây giờ, nếu thư viện là đa nền tảng thì nó tương tác với GPU như thế nào bằng cách thực hiện các cuộc gọi hệ thống và do đó làm cho nó đa nền tảng hay sử dụng trình điều khiển để thực hiện các hoạt động của nó?OpenGL Giao tiếp với GPU bằng cách nào?
Trả lời
OpenGL thường được triển khai như một phần của trình điều khiển đồ họa . Mỗi triển khai sẽ sử dụng các giao diện thực hiện cụ thể để nói chuyện với một số thành phần không gian hạt nhân và HW thực.
Người ta có thể thấy nhiều hơn một chút về những điều này có thể được thực hiện bằng cách xem xét triển khai thực hiện mã nguồn mở dựa trên mã nguồn mở MESA trên Linux. Họ thực sự sử dụng API DRM (trình quản lý hiển thị trực tiếp) của hạt nhân Linux để nói chuyện với HW. Triển khai hiện tại của MESA được tổ chức sao cho mỗi GPU, có một trình điều khiển hạt nhân drm và một DRI client-space. Bây giờ Mesa sử dụng API gallium làm lớp trừu tượng để giữ mã GPU-specifc nhỏ và làm cho nó dễ dàng hơn. API OpenGL được thực hiện trên đầu trang như là một "trình theo dõi trạng thái: và độc lập với các trình điều khiển GPU. (Thậm chí đã có một số D3D10/11 state tracker, nhưng nó giống như một thử nghiệm và sau đó bị loại bỏ vì nó trở nên không được duy trì.)
thực tế là OpenGL được định nghĩa là một plaform độc lập API không có nghĩa là thư viện OpenGL sẽ là nền tảng độc lập ở tất cả. Đây là tình huống tương tự như với các thư viện API C là một phần của ngôn ngữ tiêu chuẩn, nhưng việc thực hiện rất cụ thể cho từng nền tảng
- 1. OpenGL: Cách nhận phần trăm sử dụng GPU?
- 2. Giao tiếp bằng USB Android
- 3. Hiển thị xác định OpenGL giữa nhà cung cấp GPU
- 4. Giao tiếp nối tiếp với Arduino UNO và Mac bằng cách sử dụng bluetooth mate
- 5. Làm sạch bộ nhớ OpenGL GPU, yêu cầu?
- 6. cách chủ đề giao tiếp với eachother?
- 7. OpenGL: Hoạt hình của xương, Tại sao tôi cần đảo ngược khi sử dụng GPU khi làm việc với GPU?
- 8. AIR renderMode GPU vs renderMode trực tiếp
- 9. Tương thích ngược OpenGL với OpenGL ES?
- 10. Quy trình giao tiếp bằng Python
- 11. Hiển thị video với openGL
- 12. Cách tốt nhất để giao tiếp với máy chủ bằng PhoneGap là gì?
- 13. Làm thế nào để giao tiếp với thiết bị USB?
- 14. Giao tiếp Bluetooth với Mono C#
- 15. Giao tiếp với thiết bị USB qua “Cổng nối tiếp ảo USB” bằng C#?
- 16. Làm thế nào để giao tiếp với modem USB 3G?
- 17. Ngôn ngữ lập trình/thư viện giao tiếp với phần cứng như thế nào?
- 18. WPF MVVM: ViewModels giao tiếp với nhau như thế nào?
- 19. Giao tiếp giữa Android với PC
- 20. Làm thế nào để giao tiếp các thẻ RFID với bút IDBlue RFID bằng iPhone?
- 21. Giao tiếp kế thừa với IDisposable?
- 22. Làm thế nào để giao tiếp giữa Python và C# bằng cách sử dụng XML-RPC?
- 23. Cách vẽ bitmap trên Android bằng OpenGL
- 24. Làm cách nào để thiết lập dự án OpenGL bằng XCode 4.2 trong C++?
- 25. JavaScript/JQuery giao tiếp với SerialPort/COM1
- 26. giao tiếp nối tiếp php trong linux
- 27. Làm cách nào để giao tiếp bằng iframe giữa 2 ứng dụng góc?
- 28. Giao tiếp (IPC) giữa C++ với Python
- 29. Trong Node.js làm cách nào để giao tiếp với JavaScript phía máy khách?
- 30. Giao tiếp giữa nhiều ứng dụng web bằng SignalR
Đoạn cuối cùng của bạn nói rất nhiều. Cảm ơn bạn vì điều đó.Tôi luôn tự hỏi làm thế nào một thư viện độc lập nền tảng cũng có thể phụ thuộc vào hệ thống. ank bạn rất nhiều. Có thể bầu bạn nhưng tôi chưa thể. – boompow