From 4beaa4e63c203f0816041e5a45288ac6cea5d929 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Wed, 12 Jul 2006 07:01:35 +0000 Subject: [PATCH] Playing around, trying to find a fast path with GDI --HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%401943 --- src/video/win32/SDL_d3drender.c | 6 ++++-- src/video/win32/SDL_gdirender.c | 8 ++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/video/win32/SDL_d3drender.c b/src/video/win32/SDL_d3drender.c index 7a293cfe7..9d3635da5 100644 --- a/src/video/win32/SDL_d3drender.c +++ b/src/video/win32/SDL_d3drender.c @@ -78,8 +78,10 @@ SDL_RenderDriver SDL_D3D_RenderDriver = { SDL_D3D_CreateRenderer, { "d3d", - (SDL_Renderer_PresentDiscard | - SDL_Renderer_PresentCopy | SDL_Renderer_RenderTarget), + (SDL_Renderer_Minimal | + SDL_Renderer_SingleBuffer | SDL_Renderer_PresentCopy | + SDL_Renderer_PresentFlip2 | SDL_Renderer_PresentFlip3 | + SDL_Renderer_PresentDiscard | SDL_Renderer_RenderTarget), (SDL_TextureBlendMode_None | SDL_TextureBlendMode_Mask | SDL_TextureBlendMode_Blend), (SDL_TextureScaleMode_None | SDL_TextureScaleMode_Fast), diff --git a/src/video/win32/SDL_gdirender.c b/src/video/win32/SDL_gdirender.c index 690767f7f..136e18135 100644 --- a/src/video/win32/SDL_gdirender.c +++ b/src/video/win32/SDL_gdirender.c @@ -79,7 +79,8 @@ SDL_RenderDriver SDL_GDI_RenderDriver = { SDL_GDI_CreateRenderer, { "gdi", - (SDL_Renderer_SingleBuffer | SDL_Renderer_PresentCopy | + (//SDL_Renderer_Minimal | + SDL_Renderer_SingleBuffer | SDL_Renderer_PresentCopy | SDL_Renderer_PresentFlip2 | SDL_Renderer_PresentFlip3 | SDL_Renderer_PresentDiscard | SDL_Renderer_RenderTarget), (SDL_TextureBlendMode_None | SDL_TextureBlendMode_Mask | @@ -491,13 +492,16 @@ SDL_GDI_LockTexture(SDL_Renderer * renderer, SDL_Texture * texture, if (data->yuv) { return SDL_SW_LockYUVTexture(data->yuv, rect, markDirty, pixels, pitch); - } else { + } else if (data->pixels) { GdiFlush(); *pixels = (void *) ((Uint8 *) data->pixels + rect->y * data->pitch + rect->x * SDL_BYTESPERPIXEL(texture->format)); *pitch = data->pitch; return 0; + } else { + SDL_SetError("No pixels available"); + return -1; } }