Tôi đang viết chương trình OpenGL vẽ vào Bộ đệm phụ, khi đó nội dung của Bộ đệm phụ được tích lũy vào Bộ đệm tích lũy trước khi được GL_RETURN-ed vào bộ đệm Quay lại (về cơ bản được tổng hợp cho màn hình). Trong ngắn hạn, tôi đang làm một loại chuyển động mờ. Tuy nhiên điều kỳ lạ là, khi tôi biên dịch lại và chạy lại chương trình của mình, tôi đã thấy nội dung của Auxiliary/Accumulation Buffer từ chương trình trước đó chạy. Điều này không có ý nghĩa. Tôi có hiểu nhầm điều gì đó, không nên trạng thái OpenGL được đặt lại hoàn toàn khi chương trình khởi động lại?Trạng thái của bộ đệm OpenGL có thể tồn tại như thế nào giữa các lần chạy chương trình?
Tôi đang viết một chương trình SDL/OpenGL trong Drivers Gentoo Linux nVidia 195.36.31 trên GeForce Go 6150.
Cảm ơn, ít nhất là bây giờ tôi biết rằng nó không phải là một hành vi bất ngờ, mặc dù nó chỉ là đáng sợ ... –
Tôi đồng ý. Muốn thêm: theo một số điều kiện trình điều khiển video được yêu cầu để zero-init cấp phát bộ nhớ, vì cân nhắc "an ninh" (chương trình ác có thể muốn biết những gì người khác đang vẽ). Điều này là vô lý (tôi muốn nói rằng nên là trách nhiệm của chương trình đó muốn che giấu đầu ra trung gian của nó), nhưng đây là cách mọi thứ. – valdo
Tôi đã làm rất nhiều Direct3D thông qua kỷ nguyên DirectX9. Khi tôi bắt đầu, framebuffers, bề mặt vv luôn luôn sẽ được uninitialized và mã có thể dễ dàng phơi bày các nội dung của một chạy trước đó. Tại một số điểm, hoặc Microsoft hoặc các nhà cung cấp trình điều khiển phải có quyết định "sửa chữa" này và bạn sẽ nhận được đệm bộ đệm thay thế. Tôi tin rằng nó đã được thực hiện trong tên của an ninh. Tôi muốn nói rằng các mối quan tâm về bảo mật là hợp lệ; chúng tôi sẽ không tha thứ cho một hệ thống các quy trình sử dụng tay RAM chứa các mảnh vụn không tan khác của người dùng và RAM đệm khung không nên được coi cách khác nhau. – timday