From f695328144603f58a31380a1d336cfdae096b659 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Tue, 30 Dec 2008 07:14:11 +0000 Subject: [PATCH] SetDrawColor() and SetDrawBlendMode() are optional --- src/video/SDL_renderer_gl.c | 16 -------------- src/video/SDL_renderer_sw.c | 16 -------------- src/video/SDL_video.c | 27 +++++++++--------------- src/video/directfb/SDL_DirectFB_render.c | 16 -------------- src/video/dummy/SDL_nullrender.c | 16 -------------- src/video/win32/SDL_gdirender.c | 15 +++++++++++++ src/video/x11/SDL_x11render.c | 8 ------- 7 files changed, 25 insertions(+), 89 deletions(-) diff --git a/src/video/SDL_renderer_gl.c b/src/video/SDL_renderer_gl.c index 28944e184..ece34cd34 100644 --- a/src/video/SDL_renderer_gl.c +++ b/src/video/SDL_renderer_gl.c @@ -96,8 +96,6 @@ static int GL_LockTexture(SDL_Renderer * renderer, SDL_Texture * texture, 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 @@ GL_CreateRenderer(SDL_Window * window, Uint32 flags) 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; @@ -1070,18 +1066,6 @@ GL_DirtyTexture(SDL_Renderer * renderer, SDL_Texture * texture, int numrects, } } -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) { diff --git a/src/video/SDL_renderer_sw.c b/src/video/SDL_renderer_sw.c index 0639bb83f..05090d14c 100644 --- a/src/video/SDL_renderer_sw.c +++ b/src/video/SDL_renderer_sw.c @@ -59,8 +59,6 @@ static int SW_LockTexture(SDL_Renderer * renderer, SDL_Texture * texture, 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 @@ SW_CreateRenderer(SDL_Window * window, Uint32 flags) 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; @@ -528,18 +524,6 @@ SW_UnlockTexture(SDL_Renderer * renderer, SDL_Texture * texture) } } -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) { diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index ee71c39ea..91b309941 100644 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -1987,16 +1987,15 @@ SDL_SetRenderDrawColor(Uint8 r, Uint8 g, Uint8 b, Uint8 a) 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 @@ SDL_GetRenderDrawColor(Uint8 * r, Uint8 * g, Uint8 * b, Uint8 * a) if (!renderer) { return -1; } - if (!renderer->SetDrawColor) { - SDL_Unsupported(); - return -1; - } if (r) { *r = renderer->r; } @@ -2028,7 +2023,6 @@ SDL_GetRenderDrawColor(Uint8 * r, Uint8 * g, Uint8 * b, Uint8 * a) if (a) { *a = renderer->a; } - return 0; } int @@ -2044,13 +2038,12 @@ SDL_SetRenderDrawBlendMode(int blendMode) if (!renderer) { return -1; } - if (!renderer->SetDrawBlendMode) { - SDL_Unsupported(); - return -1; - } renderer->blendMode = blendMode; - renderer->SetDrawBlendMode(renderer); - return 0; + if (renderer->SetDrawBlendMode) { + return renderer->SetDrawBlendMode(renderer); + } else { + return 0; + } } int diff --git a/src/video/directfb/SDL_DirectFB_render.c b/src/video/directfb/SDL_DirectFB_render.c index 5283552a8..08825bef3 100644 --- a/src/video/directfb/SDL_DirectFB_render.c +++ b/src/video/directfb/SDL_DirectFB_render.c @@ -71,8 +71,6 @@ static void DirectFB_UnlockTexture(SDL_Renderer * renderer, 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 @@ DirectFB_CreateRenderer(SDL_Window * window, Uint32 flags) 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; @@ -797,18 +793,6 @@ DirectFB_DirtyTexture(SDL_Renderer * renderer, SDL_Texture * texture, } } -static int -DirectFB_SetDrawColor(SDL_Renderer * renderer) -{ - return 0; -} - -static int -DirectFB_SetDrawBlendMode(SDL_Renderer * renderer) -{ - return 0; -} - static int PrepareDraw(SDL_Renderer * renderer) { diff --git a/src/video/dummy/SDL_nullrender.c b/src/video/dummy/SDL_nullrender.c index 6adbe71d4..66826d9ac 100644 --- a/src/video/dummy/SDL_nullrender.c +++ b/src/video/dummy/SDL_nullrender.c @@ -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_DUMMY_CreateRenderer(SDL_Window * window, Uint32 flags) } 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; @@ -132,18 +128,6 @@ SDL_DUMMY_CreateRenderer(SDL_Window * window, Uint32 flags) return renderer; } -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) { diff --git a/src/video/win32/SDL_gdirender.c b/src/video/win32/SDL_gdirender.c index 8e6dd6271..f8ea3dfab 100644 --- a/src/video/win32/SDL_gdirender.c +++ b/src/video/win32/SDL_gdirender.c @@ -55,6 +55,7 @@ static int GDI_LockTexture(SDL_Renderer * renderer, SDL_Texture * texture, 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 @@ GDI_CreateRenderer(SDL_Window * window, Uint32 flags) 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; @@ -573,6 +575,19 @@ GDI_UnlockTexture(SDL_Renderer * renderer, SDL_Texture * texture) } } +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) { diff --git a/src/video/x11/SDL_x11render.c b/src/video/x11/SDL_x11render.c index d90eff301..c39a88d01 100644 --- a/src/video/x11/SDL_x11render.c +++ b/src/video/x11/SDL_x11render.c @@ -47,7 +47,6 @@ static int X11_LockTexture(SDL_Renderer * renderer, SDL_Texture * texture, 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 @@ X11_CreateRenderer(SDL_Window * window, Uint32 flags) 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; @@ -563,12 +561,6 @@ X11_UnlockTexture(SDL_Renderer * renderer, SDL_Texture * texture) } } -static int -X11_SetDrawColor(SDL_Renderer * renderer) -{ - return 0; -} - static int X11_SetDrawBlendMode(SDL_Renderer * renderer) {