Tôi muốn viết một chức năng tiện ích chung sẽ sử dụng đối tượng Framebuffer OpenGL để tạo kết cấu có thể được sử dụng bởi một số chương trình OpenGL cho bất kỳ mục đích nào mà một lập trình viên bên thứ ba muốn.Khôi phục trạng thái OpenGL
Hãy nói cho lập luận cổ phần chức năng trông giống như
void createSpecialTexture(GLuint textureID)
{
MyOpenGLState state;
saveOpenGLState(state);
setStateToDefault();
doMyDrawing();
restoreOpenGLState(state);
}
gì nên MyOpenGLState
, saveOpenGLState(state)
, setStateToDefault()
và restoreOpenGLState(state)
trông giống như để đảm bảo rằng doMyDrawing
sẽ cư xử một cách chính xác và rằng không có gì mà tôi làm trong doMyDrawing
sẽ ảnh hưởng đến bất cứ điều gì khác mà một nhà phát triển bên thứ ba có thể đang làm?
Vấn đề đã cắn tôi là OpenGL có rất nhiều trạng thái tiềm ẩn và tôi không chắc chắn tôi đang nắm bắt tất cả.
Cập nhật: mối quan tâm chính của tôi là OpenGL ES 2.0 nhưng tôi nghĩ tôi sẽ đặt câu hỏi thường
không phải là những thứ không được dùng nữa? – KillianDS
Câu hỏi chủ yếu liên quan đến OpenGL ES 2.0, không phải 'glPushAttrib' hoặc' glPopAttrib' là một phần của (xem http://www.khronos.org/opengles/sdk/docs/man/). – Caterpillar