Sử dụng các tiện ích mở rộng trong Android OpenGL ES 2.0


7

Không có gì bí mật rằng theo các phần mở rộng tài liệu chính thức không có sẵn trong OpenGL ES 2.0. Tuy nhiên, tệp glext.h có trong các thư mục bao gồm nền tảng NDK khiến tôi nghĩ rằng các tiện ích mở rộng thực sự có sẵn. Tôi biết rằng làm việc với OpenGL theo NDK không khác với làm việc với OpenGL độc lập. Vì vậy, nếu tôi tạo một cái gì đó giống như cầu nối JNI giữa giao diện công cụ java của tôi và các tiện ích mở rộng này, tôi có thể sử dụng chúng.

Vì vậy, câu hỏi là: tôi nên sử dụng giải pháp kiến ​​trúc nào nếu tôi muốn sử dụng các phần mở rộng OpenGL ES có sẵn trên các thiết bị ES2.0?


Chỉ cần lưu ý rằng tôi chắc chắn đã sử dụng các tiện ích mở rộng qua GLES 2.0 trên Android (và bằng mã gốc), do đó bạn không nên có bất kỳ vấn đề nào trong phần giải pháp đó.
Robert Cannell

Có phải chúng ta đang xem xét các câu hỏi lập trình rất cụ thể như thế này? Đây là một câu hỏi lập trình rất cụ thể về API và thậm chí không liên quan đến bất kỳ điều gì liên quan đến kỹ thuật kết xuất hoặc sử dụng API để thực hiện chúng.
yuriks

@yuriks Vâng, tôi nghĩ chúng ta chắc chắn nên trừ khi chúng là những câu hỏi lập trình rất cụ thể liên quan đến đồ họa máy tính. Trên thực tế, tôi nghĩ rằng các câu hỏi lập trình cụ thể là những gì chúng ta đang thiếu nhiều nhất cho đến nay (có lẽ bởi vì những câu hỏi này khó đưa ra hơn nếu bạn không gặp chúng ngay lúc đó và ở đó).
Martin Ender

Câu trả lời:


5

Tôi đã gặp các thiết bị quảng cáo một số tiện ích mở rộng nhất định thông qua glGetString (GL_EXTENSIONS) và không để lộ các điểm nhập cảnh. Tôi cũng đã gặp phải điều ngược lại, phần mở rộng không nằm trong chuỗi mở rộng nhưng các điểm vào đã ở đó và nó hoạt động. Nó phụ thuộc vào việc nhà cung cấp có vô hiệu hóa bất kỳ tính năng nào trong trình điều khiển từ nhà cung cấp GPU hay không.

Bạn sẽ cần kiểm tra cả hai chuỗi mở rộng và kiểm tra xem điểm vào không phải là NULL thông qua eglGetProcAddress .

Ngoài ra, mỗi tiện ích mở rộng phải tuân theo sổ đăng ký của tiện ích mở rộng Khronos để bạn có thể bao gồm gl2ext.h trực tiếp từ đó nếu bạn muốn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.