2011-02-05 54 views
6

Tôi đã tự hỏi liệu có nên loại bỏ tất cả các cuộc gọi opengl dư thừa không.Thực hiện cuộc gọi OpenGL dư thừa

Ví dụ, tôi cần phải làm một cái gì đó tương tự (được bọc trong một hàm):

if(foobuffer != boundbuffer) { 
    glBindBuffer(GL_BAR_BUFFER, foobuffer); 
    boundbuffer = foobuffer; 
} 

Hoặc là trình điều khiển tự động làm những việc như vậy và điều này thực sự là một thừa reduntant-kiểm tra?

Trả lời

5

Có lẽ bạn nên tránh điều đó. Here (cụ thể là 22.040, bạn sẽ phải cuộn xuống trang vì không có neo cho nó), lưu ý rằng các cuộc gọi dư thừa thường là hành động xấu mặc dù một số triển khai cố gắng giảm thiểu tác động.

Các công cụ như gDEBugger có thể được sử dụng để giúp theo dõi nơi bạn có thể thực hiện cuộc gọi dư thừa, nếu bạn ở vị trí mà bạn không chắc chắn số lượng bạn có thể thực hiện trong cơ sở mã của mình.

3

Tôi vừa loại bỏ nhiều cuộc gọi như vậy từ một ứng dụng Android, vì vậy tôi có thể trực tiếp nói rằng nó quan trọng trên nền tảng đó (trên phiên bản và phần cứng hệ điều hành cụ thể đó). Nó tăng tốc độ khung hình lên một vài khung hình/giây, tôi muốn nói khoảng 5-10% lợi nhuận.

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