2010-01-09 11 views

Trả lời

4

Giống như mọi tài nguyên khác, hầu hết các hệ điều hành sẽ giải phóng chúng nếu bạn không.

Thông thường, lý do để làm điều đó là đảm bảo bạn không bị rò rỉ bất kỳ tài nguyên nào trong khi chương trình của bạn đang chạy. Nói ví dụ bạn tải các cấp, nếu bạn không giải phóng tất cả các kết cấu khi bạn tiếp tục tải các cấp, sớm hay muộn, bạn sẽ hết bộ nhớ. Việc theo dõi rò rỉ sẽ dễ dàng hơn nếu bạn dọn dẹp khi thoát.

3

Từ tài liệu Android GLSurfaceView.Renderer:

public abstract void onSurfaceCreated (GL10 gl, EGLConfig config) 

Từ: API Level 3 Được gọi khi bề mặt được tạo ra hoặc tái tạo. Được gọi khi chuỗi hiển thị bắt đầu và bất cứ khi nào ngữ cảnh EGL bị mất. Ngữ cảnh EGL thường sẽ bị mất khi thiết bị Android tỉnh dậy sau khi đi ngủ. Vì phương thức này được gọi lúc bắt đầu hiển thị, cũng như mỗi khi bối cảnh EGL bị mất, phương pháp này là một nơi thuận tiện để đặt mã để tạo tài nguyên cần được tạo khi bắt đầu hiển thị và cần phải tái tạo khi bối cảnh EGL bị mất. Kết cấu là ví dụ về tài nguyên mà bạn có thể muốn tạo tại đây. Lưu ý rằng khi bối cảnh EGL bị mất, tất cả tài nguyên OpenGL được liên kết với ngữ cảnh đó sẽ tự động bị xóa. Bạn không cần phải gọi các phương thức "glDelete" tương ứng như glDeleteTextures để xóa các tài nguyên bị mất này một cách thủ công.

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