# HG changeset patch # User Sam Lantinga # Date 1230621251 0 # Node ID 2133d2d300fdc1f31c17e5cc5e21c711605d88a3 # Parent 27f2b5e7e8991f96af66a924068bb01717294d05 SetDrawColor() and SetDrawBlendMode() are optional diff -r 27f2b5e7e899 -r 2133d2d300fd src/video/SDL_renderer_gl.c --- a/src/video/SDL_renderer_gl.c Tue Dec 30 04:38:39 2008 +0000 +++ b/src/video/SDL_renderer_gl.c Tue Dec 30 07:14:11 2008 +0000 @@ -96,8 +96,6 @@ static void GL_UnlockTexture(SDL_Renderer * renderer, SDL_Texture * texture); static void GL_DirtyTexture(SDL_Renderer * renderer, SDL_Texture * texture, int numrects, const SDL_Rect * rects); -static int GL_SetDrawColor(SDL_Renderer * renderer); -static int GL_SetDrawBlendMode(SDL_Renderer * renderer); static int GL_RenderPoint(SDL_Renderer * renderer, int x, int y); static int GL_RenderLine(SDL_Renderer * renderer, int x1, int y1, int x2, int y2); @@ -312,8 +310,6 @@ renderer->LockTexture = GL_LockTexture; renderer->UnlockTexture = GL_UnlockTexture; renderer->DirtyTexture = GL_DirtyTexture; - renderer->SetDrawColor = GL_SetDrawColor; - renderer->SetDrawBlendMode = GL_SetDrawBlendMode; renderer->RenderPoint = GL_RenderPoint; renderer->RenderLine = GL_RenderLine; renderer->RenderFill = GL_RenderFill; @@ -1071,18 +1067,6 @@ } static int -GL_SetDrawColor(SDL_Renderer * renderer) -{ - return 0; -} - -static int -GL_SetDrawBlendMode(SDL_Renderer * renderer) -{ - return 0; -} - -static int GL_RenderPoint(SDL_Renderer * renderer, int x, int y) { GL_RenderData *data = (GL_RenderData *) renderer->driverdata; diff -r 27f2b5e7e899 -r 2133d2d300fd src/video/SDL_renderer_sw.c --- a/src/video/SDL_renderer_sw.c Tue Dec 30 04:38:39 2008 +0000 +++ b/src/video/SDL_renderer_sw.c Tue Dec 30 07:14:11 2008 +0000 @@ -59,8 +59,6 @@ const SDL_Rect * rect, int markDirty, void **pixels, int *pitch); static void SW_UnlockTexture(SDL_Renderer * renderer, SDL_Texture * texture); -static int SW_SetDrawColor(SDL_Renderer * renderer); -static int SW_SetDrawBlendMode(SDL_Renderer * renderer); static int SW_RenderPoint(SDL_Renderer * renderer, int x, int y); static int SW_RenderLine(SDL_Renderer * renderer, int x1, int y1, int x2, int y2); @@ -226,8 +224,6 @@ renderer->ActivateRenderer = SW_ActivateRenderer; renderer->DisplayModeChanged = SW_DisplayModeChanged; - renderer->SetDrawColor = SW_SetDrawColor; - renderer->SetDrawBlendMode = SW_SetDrawBlendMode; renderer->RenderPoint = SW_RenderPoint; renderer->RenderLine = SW_RenderLine; renderer->RenderFill = SW_RenderFill; @@ -529,18 +525,6 @@ } static int -SW_SetDrawColor(SDL_Renderer * renderer) -{ - return 0; -} - -static int -SW_SetDrawBlendMode(SDL_Renderer * renderer) -{ - return 0; -} - -static int SW_RenderPoint(SDL_Renderer * renderer, int x, int y) { SW_RenderData *data = (SW_RenderData *) renderer->driverdata; diff -r 27f2b5e7e899 -r 2133d2d300fd src/video/SDL_video.c --- a/src/video/SDL_video.c Tue Dec 30 04:38:39 2008 +0000 +++ b/src/video/SDL_video.c Tue Dec 30 07:14:11 2008 +0000 @@ -1987,16 +1987,15 @@ if (!renderer) { return -1; } - if (!renderer->SetDrawColor) { - SDL_Unsupported(); - return -1; - } renderer->r = r; renderer->g = g; renderer->b = b; renderer->a = a; - renderer->SetDrawColor(renderer); - return 0; + if (renderer->SetDrawColor) { + return renderer->SetDrawColor(renderer); + } else { + return 0; + } } int @@ -2012,10 +2011,6 @@ if (!renderer) { return -1; } - if (!renderer->SetDrawColor) { - SDL_Unsupported(); - return -1; - } if (r) { *r = renderer->r; } @@ -2028,7 +2023,6 @@ if (a) { *a = renderer->a; } - return 0; } int @@ -2044,13 +2038,12 @@ if (!renderer) { return -1; } - if (!renderer->SetDrawBlendMode) { - SDL_Unsupported(); - return -1; + renderer->blendMode = blendMode; + if (renderer->SetDrawBlendMode) { + return renderer->SetDrawBlendMode(renderer); + } else { + return 0; } - renderer->blendMode = blendMode; - renderer->SetDrawBlendMode(renderer); - return 0; } int diff -r 27f2b5e7e899 -r 2133d2d300fd src/video/directfb/SDL_DirectFB_render.c --- a/src/video/directfb/SDL_DirectFB_render.c Tue Dec 30 04:38:39 2008 +0000 +++ b/src/video/directfb/SDL_DirectFB_render.c Tue Dec 30 07:14:11 2008 +0000 @@ -71,8 +71,6 @@ static void DirectFB_DirtyTexture(SDL_Renderer * renderer, SDL_Texture * texture, int numrects, const SDL_Rect * rects); -static int DirectFB_SetDrawColor(SDL_Renderer * renderer); -static int DirectFB_SetDrawBlendMode(SDL_Renderer * renderer); static int DirectFB_RenderPoint(SDL_Renderer * renderer, int x, int y); static int DirectFB_RenderLine(SDL_Renderer * renderer, int x1, int y1, int x2, int y2); @@ -294,8 +292,6 @@ renderer->LockTexture = DirectFB_LockTexture; renderer->UnlockTexture = DirectFB_UnlockTexture; renderer->DirtyTexture = DirectFB_DirtyTexture; - renderer->SetDrawColor = DirectFB_SetDrawColor; - renderer->SetDrawBlendMode = DirectFB_SetDrawBlendMode; renderer->RenderPoint = DirectFB_RenderPoint; renderer->RenderLine = DirectFB_RenderLine; renderer->RenderFill = DirectFB_RenderFill; @@ -798,18 +794,6 @@ } static int -DirectFB_SetDrawColor(SDL_Renderer * renderer) -{ - return 0; -} - -static int -DirectFB_SetDrawBlendMode(SDL_Renderer * renderer) -{ - return 0; -} - -static int PrepareDraw(SDL_Renderer * renderer) { DirectFB_RenderData *data = (DirectFB_RenderData *) renderer->driverdata; diff -r 27f2b5e7e899 -r 2133d2d300fd src/video/dummy/SDL_nullrender.c --- a/src/video/dummy/SDL_nullrender.c Tue Dec 30 04:38:39 2008 +0000 +++ b/src/video/dummy/SDL_nullrender.c Tue Dec 30 07:14:11 2008 +0000 @@ -31,8 +31,6 @@ static SDL_Renderer *SDL_DUMMY_CreateRenderer(SDL_Window * window, Uint32 flags); -static int SDL_DUMMY_SetDrawColor(SDL_Renderer * renderer); -static int SDL_DUMMY_SetDrawBlendMode(SDL_Renderer * renderer); static int SDL_DUMMY_RenderPoint(SDL_Renderer * renderer, int x, int y); static int SDL_DUMMY_RenderLine(SDL_Renderer * renderer, int x1, int y1, int x2, int y2); @@ -93,8 +91,6 @@ } SDL_zerop(data); - renderer->SetDrawColor = SDL_DUMMY_SetDrawColor; - renderer->SetDrawBlendMode = SDL_DUMMY_SetDrawBlendMode; renderer->RenderPoint = SDL_DUMMY_RenderPoint; renderer->RenderLine = SDL_DUMMY_RenderLine; renderer->RenderFill = SDL_DUMMY_RenderFill; @@ -133,18 +129,6 @@ } static int -SDL_DUMMY_SetDrawColor(SDL_Renderer * renderer) -{ - return 0; -} - -static int -SDL_DUMMY_SetDrawBlendMode(SDL_Renderer * renderer) -{ - return 0; -} - -static int SDL_DUMMY_RenderPoint(SDL_Renderer * renderer, int x, int y) { SDL_DUMMY_RenderData *data = diff -r 27f2b5e7e899 -r 2133d2d300fd src/video/win32/SDL_gdirender.c --- a/src/video/win32/SDL_gdirender.c Tue Dec 30 04:38:39 2008 +0000 +++ b/src/video/win32/SDL_gdirender.c Tue Dec 30 07:14:11 2008 +0000 @@ -55,6 +55,7 @@ const SDL_Rect * rect, int markDirty, void **pixels, int *pitch); static void GDI_UnlockTexture(SDL_Renderer * renderer, SDL_Texture * texture); +static int GDI_SetDrawBlendMode(SDL_Renderer * renderer); static int GDI_RenderPoint(SDL_Renderer * renderer, int x, int y); static int GDI_RenderLine(SDL_Renderer * renderer, int x1, int y1, int x2, int y2); @@ -175,6 +176,7 @@ renderer->UpdateTexture = GDI_UpdateTexture; renderer->LockTexture = GDI_LockTexture; renderer->UnlockTexture = GDI_UnlockTexture; + renderer->SetDrawBlendMode = GDI_SetDrawBlendMode; renderer->RenderPoint = GDI_RenderPoint; renderer->RenderLine = GDI_RenderLine; renderer->RenderFill = GDI_RenderFill; @@ -574,6 +576,19 @@ } static int +GDI_SetDrawBlendMode(SDL_Renderer * renderer) +{ + switch (renderer->blendMode) { + case SDL_BLENDMODE_NONE: + return 0; + default: + SDL_Unsupported(); + renderer->blendMode = SDL_BLENDMODE_NONE; + return -1; + } +} + +static int GDI_RenderPoint(SDL_Renderer * renderer, int x, int y) { GDI_RenderData *data = (GDI_RenderData *) renderer->driverdata; diff -r 27f2b5e7e899 -r 2133d2d300fd src/video/x11/SDL_x11render.c --- a/src/video/x11/SDL_x11render.c Tue Dec 30 04:38:39 2008 +0000 +++ b/src/video/x11/SDL_x11render.c Tue Dec 30 07:14:11 2008 +0000 @@ -47,7 +47,6 @@ const SDL_Rect * rect, int markDirty, void **pixels, int *pitch); static void X11_UnlockTexture(SDL_Renderer * renderer, SDL_Texture * texture); -static int X11_SetDrawColor(SDL_Renderer * renderer); static int X11_SetDrawBlendMode(SDL_Renderer * renderer); static int X11_RenderPoint(SDL_Renderer * renderer, int x, int y); static int X11_RenderLine(SDL_Renderer * renderer, int x1, int y1, int x2, @@ -197,7 +196,6 @@ renderer->UpdateTexture = X11_UpdateTexture; renderer->LockTexture = X11_LockTexture; renderer->UnlockTexture = X11_UnlockTexture; - renderer->SetDrawColor = X11_SetDrawColor; renderer->SetDrawBlendMode = X11_SetDrawBlendMode; renderer->RenderPoint = X11_RenderPoint; renderer->RenderLine = X11_RenderLine; @@ -564,12 +562,6 @@ } static int -X11_SetDrawColor(SDL_Renderer * renderer) -{ - return 0; -} - -static int X11_SetDrawBlendMode(SDL_Renderer * renderer) { switch (renderer->blendMode) {