/* This is called if we need to invalidate all of the SDL OpenGL state */ static void GLES_ResetState(SDL_Renderer *renderer) { GLES_RenderData *data = (GLES_RenderData *) renderer->driverdata; if (SDL_CurrentContext == data->context) { GLES_UpdateViewport(renderer); } else { GLES_ActivateRenderer(renderer); } data->current.color = 0; data->current.blendMode = -1; data->current.scaleMode = 0; data->current.tex_coords = SDL_FALSE; glDisable(GL_DEPTH_TEST); glDisable(GL_CULL_FACE); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glEnableClientState(GL_VERTEX_ARRAY); glDisableClientState(GL_TEXTURE_COORD_ARRAY); }
static int GLES_ActivateRenderer(SDL_Renderer * renderer) { GLES_RenderData *data = (GLES_RenderData *) renderer->driverdata; if (SDL_CurrentContext != data->context) { if (SDL_GL_MakeCurrent(renderer->window, data->context) < 0) { return -1; } SDL_CurrentContext = data->context; GLES_UpdateViewport(renderer); } return 0; }