Commit ea8037a6 authored by Sam Lantinga's avatar Sam Lantinga

Implemented OpenGL ES RenderClear()

parent 7fda55f8
...@@ -848,21 +848,6 @@ SDL_RenderClear(SDL_Renderer * renderer) ...@@ -848,21 +848,6 @@ SDL_RenderClear(SDL_Renderer * renderer)
{ {
CHECK_RENDERER_MAGIC(renderer, -1); CHECK_RENDERER_MAGIC(renderer, -1);
if (!renderer->RenderClear) {
SDL_BlendMode blendMode = renderer->blendMode;
int status;
if (blendMode >= SDL_BLENDMODE_BLEND) {
SDL_SetRenderDrawBlendMode(renderer, SDL_BLENDMODE_NONE);
}
status = SDL_RenderFillRect(renderer, NULL);
if (blendMode >= SDL_BLENDMODE_BLEND) {
SDL_SetRenderDrawBlendMode(renderer, blendMode);
}
return status;
}
return renderer->RenderClear(renderer); return renderer->RenderClear(renderer);
} }
......
...@@ -54,6 +54,7 @@ static int GLES_LockTexture(SDL_Renderer * renderer, SDL_Texture * texture, ...@@ -54,6 +54,7 @@ static int GLES_LockTexture(SDL_Renderer * renderer, SDL_Texture * texture,
static void GLES_UnlockTexture(SDL_Renderer * renderer, static void GLES_UnlockTexture(SDL_Renderer * renderer,
SDL_Texture * texture); SDL_Texture * texture);
static int GLES_UpdateViewport(SDL_Renderer * renderer); static int GLES_UpdateViewport(SDL_Renderer * renderer);
static int GLES_RenderClear(SDL_Renderer * renderer);
static int GLES_RenderDrawPoints(SDL_Renderer * renderer, static int GLES_RenderDrawPoints(SDL_Renderer * renderer,
const SDL_Point * points, int count); const SDL_Point * points, int count);
static int GLES_RenderDrawLines(SDL_Renderer * renderer, static int GLES_RenderDrawLines(SDL_Renderer * renderer,
...@@ -180,6 +181,7 @@ GLES_CreateRenderer(SDL_Window * window, Uint32 flags) ...@@ -180,6 +181,7 @@ GLES_CreateRenderer(SDL_Window * window, Uint32 flags)
renderer->LockTexture = GLES_LockTexture; renderer->LockTexture = GLES_LockTexture;
renderer->UnlockTexture = GLES_UnlockTexture; renderer->UnlockTexture = GLES_UnlockTexture;
renderer->UpdateViewport = GLES_UpdateViewport; renderer->UpdateViewport = GLES_UpdateViewport;
renderer->RenderClear = GLES_RenderClear;
renderer->RenderDrawPoints = GLES_RenderDrawPoints; renderer->RenderDrawPoints = GLES_RenderDrawPoints;
renderer->RenderDrawLines = GLES_RenderDrawLines; renderer->RenderDrawLines = GLES_RenderDrawLines;
renderer->RenderFillRects = GLES_RenderFillRects; renderer->RenderFillRects = GLES_RenderFillRects;
...@@ -451,6 +453,21 @@ GLES_UpdateViewport(SDL_Renderer * renderer) ...@@ -451,6 +453,21 @@ GLES_UpdateViewport(SDL_Renderer * renderer)
return 0; return 0;
} }
static int
GLES_RenderClear(SDL_Renderer * renderer)
{
GLES_ActivateRenderer(renderer);
glClearColor((GLfloat) renderer->r * inv255f,
(GLfloat) renderer->g * inv255f,
(GLfloat) renderer->b * inv255f,
(GLfloat) renderer->a * inv255f);
glClear(GL_COLOR_BUFFER_BIT);
return 0;
}
static void static void
GLES_SetBlendMode(GLES_RenderData * data, int blendMode) GLES_SetBlendMode(GLES_RenderData * data, int blendMode)
{ {
......
...@@ -770,19 +770,19 @@ static int GLES2_RenderCopy(SDL_Renderer *renderer, SDL_Texture *texture, const ...@@ -770,19 +770,19 @@ static int GLES2_RenderCopy(SDL_Renderer *renderer, SDL_Texture *texture, const
const SDL_Rect *dstrect); const SDL_Rect *dstrect);
static void GLES2_RenderPresent(SDL_Renderer *renderer); static void GLES2_RenderPresent(SDL_Renderer *renderer);
static int static int
GLES2_RenderClear(SDL_Renderer *renderer) GLES2_RenderClear(SDL_Renderer * renderer)
{ {
float r = (float)renderer->r * inv255f;
float g = (float)renderer->g * inv255f;
float b = (float)renderer->b * inv255f;
float a = (float)renderer->a * inv255f;
GLES2_ActivateRenderer(renderer); GLES2_ActivateRenderer(renderer);
/* Clear the backbuffer with the selected color */ glClearColor((GLfloat) renderer->r * inv255f,
glClearColor(r, g, b, a); (GLfloat) renderer->g * inv255f,
(GLfloat) renderer->b * inv255f,
(GLfloat) renderer->a * inv255f);
glClear(GL_COLOR_BUFFER_BIT); glClear(GL_COLOR_BUFFER_BIT);
return 0; return 0;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment