Direct State Access Advantages Less error-prone Consider this code glRotatef(phi, x,y,z); Which matrix did you change? Depends on how the matrix mode selector was last left! Instead consider the DSA version gl Matrix RotatefEXT( GL_MODELVIEW , phi, x,y,z); Another example Consider this code glActiveTexture(GL_TEXTURE3); some_function(); glBindTexture(GL_TEXTURE2D, 89); But what if some_function calls glActiveTexture ? It might not now, but could in the future! Instead use glBind Multi TextureEXT( GL_TEXTURE3 , GL_TEXTURE_2D, 89); Problem solved!