2010-11-01 33 views
7

Tôi đang phát triển một ứng dụng Android dành cho Android 2.1.OpenGL trên Android bằng C++ chỉ

Tôi đang cố gắng mã hóa nội dung của OpenGL chỉ với C++.

Bạn có biết hướng dẫn hoặc bài viết hiển thị ví dụ về cách thực hiện điều đó không?

CẬP NHẬT:

Xin lỗi, tôi đã quên nói rằng tôi sẽ sử dụng một ứng dụng Java nhà để khởi động hoạt động chính.

Tôi đang cố gắng nói nếu tôi phải viết mã trên Java glSurfaceView hoặc câu lệnh này phải có trên mã C++.

Ok, giải thích tốt hơn: Nếu tôi có một openGl hoàn chỉnh trên C++, tôi có thể phải sửa đổi mã C++ không?

Cảm ơn.

+0

Lưu ý rằng hiện tại bạn không thể tạo một ứng dụng duy nhất C++ có thể được khởi chạy từ ứng dụng nhà thông thường. Bạn phải có mã khởi tạo java bất kể nếu bạn tìm ra cách để thực hiện tất cả các chức năng nguyên bản. Đây là và thiếu API gốc là IMHO một trong những thiếu sót lớn nhất của nền tảng - nó thực sự là một sự xấu hổ bạn không thể tận dụng đầy đủ nền tảng Linux nhúng bên dưới bằng các phương tiện bình thường. –

+1

@Chris Stratton: cảm ơn. Tôi đã cập nhật câu hỏi của mình với nhiều chi tiết hơn. – VansFannel

Trả lời

8

Trong NDK của Android, có bản trình diễn san-angeles trong thư mục mẫu hiển thị bằng cách sử dụng OpenGL ES 1.x trong mã C và trình bao bọc Java. Đối với những thay đổi đối với mã C++ đã tồn tại, hãy lưu ý rằng không có triển khai STL chính thức cho NDK R4 (mặc dù tôi tin rằng có một số cổng sẵn có) [chỉnh sửa: như NDK r5 có STLport dựa trên việc triển khai STL]. Và tôi đoán rằng bạn sẽ cần phải bắt chước những gì bản demo làm cho GLSurfaceView vì các sự kiện bên ngoài (cảm ứng, bàn phím, v.v.) cùng với vòng đời hoạt động của Android phải được xử lý bởi phía Java. Nếu bạn đang tìm kiếm một ví dụ OpenGL ES 2.0, có một ví dụ cơ bản trong thư mục mẫu của NDK của Android.

+0

Cảm ơn. Đây là những gì tôi đang tìm kiếm. – VansFannel

+0

Tôi cũng đang làm theo hướng dẫn này http://blog.jayway.com/2009/12/03/opengl-es-tutorial-for-android-part-i/ – VansFannel

2

Theo http://developer.android.com/sdk/ndk bạn không thể làm điều đó hoàn toàn bằng C++. Như bạn đề xuất trong bản cập nhật của mình, bạn sẽ cần phải làm ứng dụng với SDK (Java) chuẩn, nhưng có thể tạo các thư viện C++ và gọi chúng. Đối với OpenGL, bài viết gợi ý rằng bạn có toàn quyền truy cập OpenGL ES, hoặc là 1.1 hoặc 2.0. ES không giống với OpenGL đầy đủ.

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