mirror of https://github.com/encounter/SDL.git
Fixed infinite recursion in D3D_Reset()
This commit is contained in:
parent
ea71a5e074
commit
22e3217e59
|
@ -217,6 +217,7 @@ static int D3D_UpdateTextureYUV(SDL_Renderer * renderer, SDL_Texture * texture,
|
||||||
static int D3D_LockTexture(SDL_Renderer * renderer, SDL_Texture * texture,
|
static int D3D_LockTexture(SDL_Renderer * renderer, SDL_Texture * texture,
|
||||||
const SDL_Rect * rect, void **pixels, int *pitch);
|
const SDL_Rect * rect, void **pixels, int *pitch);
|
||||||
static void D3D_UnlockTexture(SDL_Renderer * renderer, SDL_Texture * texture);
|
static void D3D_UnlockTexture(SDL_Renderer * renderer, SDL_Texture * texture);
|
||||||
|
static int D3D_SetRenderTargetInternal(SDL_Renderer * renderer, SDL_Texture * texture);
|
||||||
static int D3D_SetRenderTarget(SDL_Renderer * renderer, SDL_Texture * texture);
|
static int D3D_SetRenderTarget(SDL_Renderer * renderer, SDL_Texture * texture);
|
||||||
static int D3D_UpdateViewport(SDL_Renderer * renderer);
|
static int D3D_UpdateViewport(SDL_Renderer * renderer);
|
||||||
static int D3D_UpdateClipRect(SDL_Renderer * renderer);
|
static int D3D_UpdateClipRect(SDL_Renderer * renderer);
|
||||||
|
@ -512,7 +513,7 @@ D3D_Reset(SDL_Renderer * renderer)
|
||||||
|
|
||||||
IDirect3DDevice9_GetRenderTarget(data->device, 0, &data->defaultRenderTarget);
|
IDirect3DDevice9_GetRenderTarget(data->device, 0, &data->defaultRenderTarget);
|
||||||
D3D_InitRenderState(data);
|
D3D_InitRenderState(data);
|
||||||
D3D_SetRenderTarget(renderer, renderer->target);
|
D3D_SetRenderTargetInternal(renderer, renderer->target);
|
||||||
D3D_UpdateViewport(renderer);
|
D3D_UpdateViewport(renderer);
|
||||||
|
|
||||||
/* Let the application know that render targets were reset */
|
/* Let the application know that render targets were reset */
|
||||||
|
@ -1160,14 +1161,12 @@ D3D_UnlockTexture(SDL_Renderer * renderer, SDL_Texture * texture)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
D3D_SetRenderTarget(SDL_Renderer * renderer, SDL_Texture * texture)
|
D3D_SetRenderTargetInternal(SDL_Renderer * renderer, SDL_Texture * texture)
|
||||||
{
|
{
|
||||||
D3D_RenderData *data = (D3D_RenderData *) renderer->driverdata;
|
D3D_RenderData *data = (D3D_RenderData *) renderer->driverdata;
|
||||||
D3D_TextureData *texturedata;
|
D3D_TextureData *texturedata;
|
||||||
HRESULT result;
|
HRESULT result;
|
||||||
|
|
||||||
D3D_ActivateRenderer(renderer);
|
|
||||||
|
|
||||||
/* Release the previous render target if it wasn't the default one */
|
/* Release the previous render target if it wasn't the default one */
|
||||||
if (data->currentRenderTarget != NULL) {
|
if (data->currentRenderTarget != NULL) {
|
||||||
IDirect3DSurface9_Release(data->currentRenderTarget);
|
IDirect3DSurface9_Release(data->currentRenderTarget);
|
||||||
|
@ -1197,6 +1196,14 @@ D3D_SetRenderTarget(SDL_Renderer * renderer, SDL_Texture * texture)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
D3D_SetRenderTarget(SDL_Renderer * renderer, SDL_Texture * texture)
|
||||||
|
{
|
||||||
|
D3D_ActivateRenderer(renderer);
|
||||||
|
|
||||||
|
return D3D_SetRenderTargetInternal(renderer, texture);
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
D3D_UpdateViewport(SDL_Renderer * renderer)
|
D3D_UpdateViewport(SDL_Renderer * renderer)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue