2014-04-21 17 views
5

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

10

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

+0

Đ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

Các vấn đề liên quan