2011-09-13 41 views
5

vì vậy tôi đang xem xét liệu có cách nào để giải quyết vấn đề XNA/Silverlight mà Microsoft đã thiết lập cho Windows Phone 7 hay không, vì vậy có lẽ tôi có thể sử dụng SFML (.net binding) để phát triển ứng dụng và các thư viện khác ' đã đến để biết.
tôi thấy không có gì .....Ngôn ngữ lập trình/thư viện giao tiếp với phần cứng như thế nào?

Bây giờ tất cả Tôi đang tự hỏi là tại sao các cửa sổ điện thoại và các thiết bị tương tự khác không cho phép một số ngôn ngữ và thư viện không được quản lý như OpenGL để được sử dụng, đặc biệt là kể từ khi tôi vừa phát hiện ra khoảng yêu cầu nền tảng/liên kết bên ngoài/các kỹ thuật song ngữ khác.

Để hiểu điều này, tôi đoán tôi cần nhấn mạnh mối quan hệ giữa ngôn ngữ và phần cứng máy: Thư viện c/C++ như OpenGL giao tiếp với màn hình/card đồ họa như thế nào?

câu hỏi thưởng: XNA không sử dụng OpenGL/DirectX sao cho API đồ họa hoàn toàn độc lập?

+0

XNA là Trình bao bọc được quản lý cho DirectX! http://en.wikipedia.org/wiki/DirectX –

+0

Mỗi nhà cung cấp nhà sản xuất video (AMD/NVidia/Intel) * trình điều khiển OpenGL riêng của họ và được mã hóa để thực hiện việc ghép bit cấp thấp thích hợp cho phần cứng * của họ (điều này là lý do tại sao [hầu hết] trình điều khiển chạy như một phần của hạt nhân). Lớp này có thể được bọc một số cách - nhưng đây là "cốt lõi" của nó hoạt động như thế nào. –

+0

@pst: Vì vậy, điện thoại cửa sổ chỉ không có trình điều khiển hỗ trợ OpenGL? Và hạt nhân là gì? – Griffin

Trả lời

3

Hệ điều hành gói gọn tất cả phần cứng có cùng API. Trong hệ điều hành bên trong, nó sử dụng địa chỉ io phần cứng để điều khiển nó.

Và OpenGL/DirectX/XNA đóng gói tất cả API hệ thống của hệ điều hành với giao diện đơn giản, dễ sử dụng cho tất cả chương trình trên đó.

Cũng giống như dưới đây:

Hardware <- HAL <- DirectX/OpenGL <- XNA <- Your Program 

Hy vọng điều này hữu ích :)

Jason

+0

cảm ơn Jason, nhưng HAL là gì? Và điều này có nghĩa là một hệ điều hành như Windows sử dụng phần cứng người bán khác và API của họ để giao tiếp/kiểm soát phần cứng, nhưng đơn giản là tổ chức tất cả các lệnh cùng nhau một cách gọn gàng/dễ sử dụng? – Griffin

+0

HAL là Lớp trừu tượng phần cứng (wikipedia ...) Các nhà cung cấp hệ điều hành tạo ra các phương thức cụ thể mà mỗi nhà cung cấp cần tạo. Khi hệ điều hành gọi phương thức, nhà cung cấp sau đó có phần cứng làm bất cứ điều gì nó là phương pháp cho. –

+0

"HAL là Lớp trừu tượng phần cứng" bên phải :) –

3

Một đường ống dài sẽ như thế nào:

Hardware <- Vendor Drivers <- HAL (Operating System) <- OS Native Methods (DirectX/OpenGL) <- Managed Wrappers (XNA/.Net Frameworks/Java) <- Your Program 

Có một vài lý do khác nhau tại sao các nhà cung cấp khóa thiết bị.

  1. Thiết bị bị khóa có xu hướng ít vấn đề kỹ thuật hơn và Verizon vv không muốn khắc phục sự cố phần mềm của Apple/Microsoft/Google/Motorola/Blackberry.
  2. Thiết bị bị khóa có thể (không phải luôn luôn) an toàn hơn vì có ít cơ hội để bên thứ ba viết trình điều khiển/phần mềm xấu.
  3. Thiết kế ban đầu/hiện tại của OpenGL là/không có ý định chạy trên nền tảng di động.
  4. Thiết bị bị khóa có thể tạo doanh thu tăng lên bởi Nhà sản xuất OS vì một số yêu cầu bạn mua phần mềm phát triển và/hoặc giấy phép phát triển để viết phần mềm.

Tôi không đặc biệt vui mừng về bất kỳ điều nào trong số này, nhưng họ chỉ cần lưu ý.

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