Fix #ifdefs to have config flags either defined as 1 or undefined

See 387774ab8a
This commit is contained in:
L zard 2024-11-03 10:51:33 +01:00 committed by Sam Lantinga
parent 313d522f39
commit 8b6d3c88cf
31 changed files with 154 additions and 156 deletions

View file

@ -129,66 +129,64 @@
/* A few #defines to reduce SDL footprint. /* A few #defines to reduce SDL footprint.
Only effective when library is statically linked. Only effective when library is statically linked.
You have to manually edit this file. */ You have to manually edit this file. */
#ifndef SDL_LEAN_AND_MEAN #undef SDL_LEAN_AND_MEAN
#define SDL_LEAN_AND_MEAN 0
#endif
/* Optimized functions from 'SDL_blit_0.c' /* Optimized functions from 'SDL_blit_0.c'
- blit with source bits_per_pixel < 8, palette */ - blit with source bits_per_pixel < 8, palette */
#ifndef SDL_HAVE_BLIT_0 #if !defined(SDL_HAVE_BLIT_0) && !defined(SDL_LEAN_AND_MEAN)
#define SDL_HAVE_BLIT_0 !SDL_LEAN_AND_MEAN #define SDL_HAVE_BLIT_0 1
#endif #endif
/* Optimized functions from 'SDL_blit_1.c' /* Optimized functions from 'SDL_blit_1.c'
- blit with source bytes_per_pixel == 1, palette */ - blit with source bytes_per_pixel == 1, palette */
#ifndef SDL_HAVE_BLIT_1 #if !defined(SDL_HAVE_BLIT_1) && !defined(SDL_LEAN_AND_MEAN)
#define SDL_HAVE_BLIT_1 !SDL_LEAN_AND_MEAN #define SDL_HAVE_BLIT_1 1
#endif #endif
/* Optimized functions from 'SDL_blit_A.c' /* Optimized functions from 'SDL_blit_A.c'
- blit with 'SDL_BLENDMODE_BLEND' blending mode */ - blit with 'SDL_BLENDMODE_BLEND' blending mode */
#ifndef SDL_HAVE_BLIT_A #if !defined(SDL_HAVE_BLIT_A) && !defined(SDL_LEAN_AND_MEAN)
#define SDL_HAVE_BLIT_A !SDL_LEAN_AND_MEAN #define SDL_HAVE_BLIT_A 1
#endif #endif
/* Optimized functions from 'SDL_blit_N.c' /* Optimized functions from 'SDL_blit_N.c'
- blit with COLORKEY mode, or nothing */ - blit with COLORKEY mode, or nothing */
#ifndef SDL_HAVE_BLIT_N #if !defined(SDL_HAVE_BLIT_N) && !defined(SDL_LEAN_AND_MEAN)
#define SDL_HAVE_BLIT_N !SDL_LEAN_AND_MEAN #define SDL_HAVE_BLIT_N 1
#endif #endif
/* Optimized functions from 'SDL_blit_N.c' /* Optimized functions from 'SDL_blit_N.c'
- RGB565 conversion with Lookup tables */ - RGB565 conversion with Lookup tables */
#ifndef SDL_HAVE_BLIT_N_RGB565 #if !defined(SDL_HAVE_BLIT_N_RGB565) && !defined(SDL_LEAN_AND_MEAN)
#define SDL_HAVE_BLIT_N_RGB565 !SDL_LEAN_AND_MEAN #define SDL_HAVE_BLIT_N_RGB565 1
#endif #endif
/* Optimized functions from 'SDL_blit_AUTO.c' /* Optimized functions from 'SDL_blit_AUTO.c'
- blit with modulate color, modulate alpha, any blending mode - blit with modulate color, modulate alpha, any blending mode
- scaling or not */ - scaling or not */
#ifndef SDL_HAVE_BLIT_AUTO #if !defined(SDL_HAVE_BLIT_AUTO) && !defined(SDL_LEAN_AND_MEAN)
#define SDL_HAVE_BLIT_AUTO !SDL_LEAN_AND_MEAN #define SDL_HAVE_BLIT_AUTO 1
#endif #endif
/* Run-Length-Encoding /* Run-Length-Encoding
- SDL_SetSurfaceColorKey() called with SDL_RLEACCEL flag */ - SDL_SetSurfaceColorKey() called with SDL_RLEACCEL flag */
#ifndef SDL_HAVE_RLE #if !defined(SDL_HAVE_RLE) && !defined(SDL_LEAN_AND_MEAN)
#define SDL_HAVE_RLE !SDL_LEAN_AND_MEAN #define SDL_HAVE_RLE 1
#endif #endif
/* Software SDL_Renderer /* Software SDL_Renderer
- creation of software renderer - creation of software renderer
- *not* general blitting functions - *not* general blitting functions
- {blend,draw}{fillrect,line,point} internal functions */ - {blend,draw}{fillrect,line,point} internal functions */
#ifndef SDL_VIDEO_RENDER_SW #if !defined(SDL_VIDEO_RENDER_SW) && !defined(SDL_LEAN_AND_MEAN)
#define SDL_VIDEO_RENDER_SW !SDL_LEAN_AND_MEAN #define SDL_VIDEO_RENDER_SW 1
#endif #endif
/* YUV formats /* YUV formats
- handling of YUV surfaces - handling of YUV surfaces
- blitting and conversion functions */ - blitting and conversion functions */
#ifndef SDL_HAVE_YUV #if !defined(SDL_HAVE_YUV) && !defined(SDL_LEAN_AND_MEAN)
#define SDL_HAVE_YUV !SDL_LEAN_AND_MEAN #define SDL_HAVE_YUV 1
#endif #endif
#ifdef SDL_RENDER_DISABLED #ifdef SDL_RENDER_DISABLED

View file

@ -1450,7 +1450,7 @@ SDL_Texture *SDL_CreateTextureWithProperties(SDL_Renderer *renderer, SDL_Propert
renderer->textures = texture; renderer->textures = texture;
if (SDL_ISPIXELFORMAT_FOURCC(texture->format)) { if (SDL_ISPIXELFORMAT_FOURCC(texture->format)) {
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
texture->yuv = SDL_SW_CreateYUVTexture(texture->format, texture->colorspace, w, h); texture->yuv = SDL_SW_CreateYUVTexture(texture->format, texture->colorspace, w, h);
#else #else
SDL_SetError("SDL not built with YUV support"); SDL_SetError("SDL not built with YUV support");
@ -1971,7 +1971,7 @@ bool SDL_GetTextureScaleMode(SDL_Texture *texture, SDL_ScaleMode *scaleMode)
return true; return true;
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
static bool SDL_UpdateTextureYUV(SDL_Texture *texture, const SDL_Rect *rect, static bool SDL_UpdateTextureYUV(SDL_Texture *texture, const SDL_Rect *rect,
const void *pixels, int pitch) const void *pixels, int pitch)
{ {
@ -2083,7 +2083,7 @@ bool SDL_UpdateTexture(SDL_Texture *texture, const SDL_Rect *rect, const void *p
if (real_rect.w == 0 || real_rect.h == 0) { if (real_rect.w == 0 || real_rect.h == 0) {
return true; // nothing to do. return true; // nothing to do.
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
} else if (texture->yuv) { } else if (texture->yuv) {
return SDL_UpdateTextureYUV(texture, &real_rect, pixels, pitch); return SDL_UpdateTextureYUV(texture, &real_rect, pixels, pitch);
#endif #endif
@ -2098,7 +2098,7 @@ bool SDL_UpdateTexture(SDL_Texture *texture, const SDL_Rect *rect, const void *p
} }
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
static bool SDL_UpdateTextureYUVPlanar(SDL_Texture *texture, const SDL_Rect *rect, static bool SDL_UpdateTextureYUVPlanar(SDL_Texture *texture, const SDL_Rect *rect,
const Uint8 *Yplane, int Ypitch, const Uint8 *Yplane, int Ypitch,
const Uint8 *Uplane, int Upitch, const Uint8 *Uplane, int Upitch,
@ -2207,7 +2207,7 @@ bool SDL_UpdateYUVTexture(SDL_Texture *texture, const SDL_Rect *rect,
const Uint8 *Uplane, int Upitch, const Uint8 *Uplane, int Upitch,
const Uint8 *Vplane, int Vpitch) const Uint8 *Vplane, int Vpitch)
{ {
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
SDL_Renderer *renderer; SDL_Renderer *renderer;
SDL_Rect real_rect; SDL_Rect real_rect;
@ -2273,7 +2273,7 @@ bool SDL_UpdateNVTexture(SDL_Texture *texture, const SDL_Rect *rect,
const Uint8 *Yplane, int Ypitch, const Uint8 *Yplane, int Ypitch,
const Uint8 *UVplane, int UVpitch) const Uint8 *UVplane, int UVpitch)
{ {
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
SDL_Renderer *renderer; SDL_Renderer *renderer;
SDL_Rect real_rect; SDL_Rect real_rect;
@ -2329,7 +2329,7 @@ bool SDL_UpdateNVTexture(SDL_Texture *texture, const SDL_Rect *rect,
#endif #endif
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
static bool SDL_LockTextureYUV(SDL_Texture *texture, const SDL_Rect *rect, static bool SDL_LockTextureYUV(SDL_Texture *texture, const SDL_Rect *rect,
void **pixels, int *pitch) void **pixels, int *pitch)
{ {
@ -2366,7 +2366,7 @@ bool SDL_LockTexture(SDL_Texture *texture, const SDL_Rect *rect, void **pixels,
rect = &full_rect; rect = &full_rect;
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (texture->yuv) { if (texture->yuv) {
if (!FlushRenderCommandsIfTextureNeeded(texture)) { if (!FlushRenderCommandsIfTextureNeeded(texture)) {
return false; return false;
@ -2418,7 +2418,7 @@ bool SDL_LockTextureToSurface(SDL_Texture *texture, const SDL_Rect *rect, SDL_Su
return true; return true;
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
static void SDL_UnlockTextureYUV(SDL_Texture *texture) static void SDL_UnlockTextureYUV(SDL_Texture *texture)
{ {
SDL_Texture *native = texture->native; SDL_Texture *native = texture->native;
@ -2467,7 +2467,7 @@ void SDL_UnlockTexture(SDL_Texture *texture)
if (texture->access != SDL_TEXTUREACCESS_STREAMING) { if (texture->access != SDL_TEXTUREACCESS_STREAMING) {
return; return;
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (texture->yuv) { if (texture->yuv) {
SDL_UnlockTextureYUV(texture); SDL_UnlockTextureYUV(texture);
} else } else
@ -5148,7 +5148,7 @@ static void SDL_DestroyTextureInternal(SDL_Texture *texture, bool is_destroying)
if (texture->native) { if (texture->native) {
SDL_DestroyTextureInternal(texture->native, is_destroying); SDL_DestroyTextureInternal(texture->native, is_destroying);
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (texture->yuv) { if (texture->yuv) {
SDL_SW_DestroyYUVTexture(texture->yuv); SDL_SW_DestroyYUVTexture(texture->yuv);
} }

View file

@ -203,7 +203,7 @@ struct SDL_Renderer
bool (*UpdateTexture)(SDL_Renderer *renderer, SDL_Texture *texture, bool (*UpdateTexture)(SDL_Renderer *renderer, SDL_Texture *texture,
const SDL_Rect *rect, const void *pixels, const SDL_Rect *rect, const void *pixels,
int pitch); int pitch);
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
bool (*UpdateTextureYUV)(SDL_Renderer *renderer, SDL_Texture *texture, bool (*UpdateTextureYUV)(SDL_Renderer *renderer, SDL_Texture *texture,
const SDL_Rect *rect, const SDL_Rect *rect,
const Uint8 *Yplane, int Ypitch, const Uint8 *Yplane, int Ypitch,

View file

@ -22,7 +22,7 @@
// This is the software implementation of the YUV texture support // This is the software implementation of the YUV texture support
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
#include "SDL_yuv_sw_c.h" #include "SDL_yuv_sw_c.h"
#include "../video/SDL_surface_c.h" #include "../video/SDL_surface_c.h"

View file

@ -65,7 +65,7 @@ typedef struct
IDirect3DSurface9 *defaultRenderTarget; IDirect3DSurface9 *defaultRenderTarget;
IDirect3DSurface9 *currentRenderTarget; IDirect3DSurface9 *currentRenderTarget;
void *d3dxDLL; void *d3dxDLL;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
LPDIRECT3DPIXELSHADER9 shaders[NUM_SHADERS]; LPDIRECT3DPIXELSHADER9 shaders[NUM_SHADERS];
#endif #endif
LPDIRECT3DVERTEXBUFFER9 vertexBuffers[8]; LPDIRECT3DVERTEXBUFFER9 vertexBuffers[8];
@ -93,7 +93,7 @@ typedef struct
D3D9_Shader shader; D3D9_Shader shader;
const float *shader_params; const float *shader_params;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
// YV12 texture support // YV12 texture support
bool yuv; bool yuv;
D3D_TextureRep utexture; D3D_TextureRep utexture;
@ -546,7 +546,7 @@ static bool D3D_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, SDL_
if (!D3D_CreateTextureRep(data->device, &texturedata->texture, usage, texture->format, PixelFormatToD3DFMT(texture->format), texture->w, texture->h)) { if (!D3D_CreateTextureRep(data->device, &texturedata->texture, usage, texture->format, PixelFormatToD3DFMT(texture->format), texture->w, texture->h)) {
return false; return false;
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (texture->format == SDL_PIXELFORMAT_YV12 || if (texture->format == SDL_PIXELFORMAT_YV12 ||
texture->format == SDL_PIXELFORMAT_IYUV) { texture->format == SDL_PIXELFORMAT_IYUV) {
texturedata->yuv = true; texturedata->yuv = true;
@ -581,7 +581,7 @@ static bool D3D_RecreateTexture(SDL_Renderer *renderer, SDL_Texture *texture)
if (!D3D_RecreateTextureRep(data->device, &texturedata->texture)) { if (!D3D_RecreateTextureRep(data->device, &texturedata->texture)) {
return false; return false;
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (texturedata->yuv) { if (texturedata->yuv) {
if (!D3D_RecreateTextureRep(data->device, &texturedata->utexture)) { if (!D3D_RecreateTextureRep(data->device, &texturedata->utexture)) {
return false; return false;
@ -608,7 +608,7 @@ static bool D3D_UpdateTexture(SDL_Renderer *renderer, SDL_Texture *texture,
if (!D3D_UpdateTextureRep(data->device, &texturedata->texture, rect->x, rect->y, rect->w, rect->h, pixels, pitch)) { if (!D3D_UpdateTextureRep(data->device, &texturedata->texture, rect->x, rect->y, rect->w, rect->h, pixels, pitch)) {
return false; return false;
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (texturedata->yuv) { if (texturedata->yuv) {
// Skip to the correct offset into the next texture // Skip to the correct offset into the next texture
pixels = (const void *)((const Uint8 *)pixels + rect->h * pitch); pixels = (const void *)((const Uint8 *)pixels + rect->h * pitch);
@ -627,7 +627,7 @@ static bool D3D_UpdateTexture(SDL_Renderer *renderer, SDL_Texture *texture,
return true; return true;
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
static bool D3D_UpdateTextureYUV(SDL_Renderer *renderer, SDL_Texture *texture, static bool D3D_UpdateTextureYUV(SDL_Renderer *renderer, SDL_Texture *texture,
const SDL_Rect *rect, const SDL_Rect *rect,
const Uint8 *Yplane, int Ypitch, const Uint8 *Yplane, int Ypitch,
@ -664,7 +664,7 @@ static bool D3D_LockTexture(SDL_Renderer *renderer, SDL_Texture *texture,
if (!texturedata) { if (!texturedata) {
return SDL_SetError("Texture is not currently available"); return SDL_SetError("Texture is not currently available");
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
texturedata->locked_rect = *rect; texturedata->locked_rect = *rect;
if (texturedata->yuv) { if (texturedata->yuv) {
@ -714,7 +714,7 @@ static void D3D_UnlockTexture(SDL_Renderer *renderer, SDL_Texture *texture)
if (!texturedata) { if (!texturedata) {
return; return;
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (texturedata->yuv) { if (texturedata->yuv) {
const SDL_Rect *rect = &texturedata->locked_rect; const SDL_Rect *rect = &texturedata->locked_rect;
void *pixels = void *pixels =
@ -971,7 +971,7 @@ static bool SetupTextureState(D3D_RenderData *data, SDL_Texture *texture, SDL_Te
if (!BindTextureRep(data->device, &texturedata->texture, 0)) { if (!BindTextureRep(data->device, &texturedata->texture, 0)) {
return false; return false;
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (texturedata->yuv) { if (texturedata->yuv) {
UpdateTextureScaleMode(data, texturedata, 1); UpdateTextureScaleMode(data, texturedata, 1);
UpdateTextureScaleMode(data, texturedata, 2); UpdateTextureScaleMode(data, texturedata, 2);
@ -995,7 +995,7 @@ static bool SetDrawState(D3D_RenderData *data, const SDL_RenderCommand *cmd)
const SDL_BlendMode blend = cmd->data.draw.blend; const SDL_BlendMode blend = cmd->data.draw.blend;
if (texture != data->drawstate.texture) { if (texture != data->drawstate.texture) {
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
D3D_TextureData *oldtexturedata = data->drawstate.texture ? (D3D_TextureData *)data->drawstate.texture->internal : NULL; D3D_TextureData *oldtexturedata = data->drawstate.texture ? (D3D_TextureData *)data->drawstate.texture->internal : NULL;
D3D_TextureData *newtexturedata = texture ? (D3D_TextureData *)texture->internal : NULL; D3D_TextureData *newtexturedata = texture ? (D3D_TextureData *)texture->internal : NULL;
#endif #endif
@ -1006,7 +1006,7 @@ static bool SetDrawState(D3D_RenderData *data, const SDL_RenderCommand *cmd)
if (!texture) { if (!texture) {
IDirect3DDevice9_SetTexture(data->device, 0, NULL); IDirect3DDevice9_SetTexture(data->device, 0, NULL);
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if ((!newtexturedata || !newtexturedata->yuv) && (oldtexturedata && oldtexturedata->yuv)) { if ((!newtexturedata || !newtexturedata->yuv) && (oldtexturedata && oldtexturedata->yuv)) {
IDirect3DDevice9_SetTexture(data->device, 1, NULL); IDirect3DDevice9_SetTexture(data->device, 1, NULL);
IDirect3DDevice9_SetTexture(data->device, 2, NULL); IDirect3DDevice9_SetTexture(data->device, 2, NULL);
@ -1016,7 +1016,7 @@ static bool SetDrawState(D3D_RenderData *data, const SDL_RenderCommand *cmd)
return false; return false;
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (shader != data->drawstate.shader) { if (shader != data->drawstate.shader) {
const HRESULT result = IDirect3DDevice9_SetPixelShader(data->device, data->shaders[shader]); const HRESULT result = IDirect3DDevice9_SetPixelShader(data->device, data->shaders[shader]);
if (FAILED(result)) { if (FAILED(result)) {
@ -1041,7 +1041,7 @@ static bool SetDrawState(D3D_RenderData *data, const SDL_RenderCommand *cmd)
} else if (texture) { } else if (texture) {
D3D_TextureData *texturedata = (D3D_TextureData *)texture->internal; D3D_TextureData *texturedata = (D3D_TextureData *)texture->internal;
UpdateDirtyTexture(data->device, &texturedata->texture); UpdateDirtyTexture(data->device, &texturedata->texture);
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (texturedata->yuv) { if (texturedata->yuv) {
UpdateDirtyTexture(data->device, &texturedata->utexture); UpdateDirtyTexture(data->device, &texturedata->utexture);
UpdateDirtyTexture(data->device, &texturedata->vtexture); UpdateDirtyTexture(data->device, &texturedata->vtexture);
@ -1424,7 +1424,7 @@ static void D3D_DestroyTexture(SDL_Renderer *renderer, SDL_Texture *texture)
renderdata->drawstate.shader_params = NULL; renderdata->drawstate.shader_params = NULL;
IDirect3DDevice9_SetPixelShader(renderdata->device, NULL); IDirect3DDevice9_SetPixelShader(renderdata->device, NULL);
IDirect3DDevice9_SetTexture(renderdata->device, 0, NULL); IDirect3DDevice9_SetTexture(renderdata->device, 0, NULL);
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (data->yuv) { if (data->yuv) {
IDirect3DDevice9_SetTexture(renderdata->device, 1, NULL); IDirect3DDevice9_SetTexture(renderdata->device, 1, NULL);
IDirect3DDevice9_SetTexture(renderdata->device, 2, NULL); IDirect3DDevice9_SetTexture(renderdata->device, 2, NULL);
@ -1437,7 +1437,7 @@ static void D3D_DestroyTexture(SDL_Renderer *renderer, SDL_Texture *texture)
} }
D3D_DestroyTextureRep(&data->texture); D3D_DestroyTextureRep(&data->texture);
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
D3D_DestroyTextureRep(&data->utexture); D3D_DestroyTextureRep(&data->utexture);
D3D_DestroyTextureRep(&data->vtexture); D3D_DestroyTextureRep(&data->vtexture);
SDL_free(data->pixels); SDL_free(data->pixels);
@ -1462,7 +1462,7 @@ static void D3D_DestroyRenderer(SDL_Renderer *renderer)
IDirect3DSurface9_Release(data->currentRenderTarget); IDirect3DSurface9_Release(data->currentRenderTarget);
data->currentRenderTarget = NULL; data->currentRenderTarget = NULL;
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
for (i = 0; i < SDL_arraysize(data->shaders); ++i) { for (i = 0; i < SDL_arraysize(data->shaders); ++i) {
if (data->shaders[i]) { if (data->shaders[i]) {
IDirect3DPixelShader9_Release(data->shaders[i]); IDirect3DPixelShader9_Release(data->shaders[i]);
@ -1648,7 +1648,7 @@ static bool D3D_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SDL_P
renderer->SupportsBlendMode = D3D_SupportsBlendMode; renderer->SupportsBlendMode = D3D_SupportsBlendMode;
renderer->CreateTexture = D3D_CreateTexture; renderer->CreateTexture = D3D_CreateTexture;
renderer->UpdateTexture = D3D_UpdateTexture; renderer->UpdateTexture = D3D_UpdateTexture;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
renderer->UpdateTextureYUV = D3D_UpdateTextureYUV; renderer->UpdateTextureYUV = D3D_UpdateTextureYUV;
#endif #endif
renderer->LockTexture = D3D_LockTexture; renderer->LockTexture = D3D_LockTexture;
@ -1751,7 +1751,7 @@ static bool D3D_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SDL_P
// Set up parameters for rendering // Set up parameters for rendering
D3D_InitRenderState(data); D3D_InitRenderState(data);
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (caps.MaxSimultaneousTextures >= 3) { if (caps.MaxSimultaneousTextures >= 3) {
int i; int i;
for (i = SHADER_NONE + 1; i < SDL_arraysize(data->shaders); ++i) { for (i = SHADER_NONE + 1; i < SDL_arraysize(data->shaders); ++i) {

View file

@ -125,7 +125,7 @@ typedef struct
D3D11_FILTER scaleMode; D3D11_FILTER scaleMode;
D3D11_Shader shader; D3D11_Shader shader;
const float *YCbCr_matrix; const float *YCbCr_matrix;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
// YV12 texture support // YV12 texture support
bool yuv; bool yuv;
ID3D11Texture2D *mainTextureU; ID3D11Texture2D *mainTextureU;
@ -1215,7 +1215,7 @@ static bool D3D11_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, SD
} }
} }
SDL_SetPointerProperty(SDL_GetTextureProperties(texture), SDL_PROP_TEXTURE_D3D11_TEXTURE_POINTER, textureData->mainTexture); SDL_SetPointerProperty(SDL_GetTextureProperties(texture), SDL_PROP_TEXTURE_D3D11_TEXTURE_POINTER, textureData->mainTexture);
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (texture->format == SDL_PIXELFORMAT_YV12 || if (texture->format == SDL_PIXELFORMAT_YV12 ||
texture->format == SDL_PIXELFORMAT_IYUV) { texture->format == SDL_PIXELFORMAT_IYUV) {
textureData->yuv = true; textureData->yuv = true;
@ -1289,7 +1289,7 @@ static bool D3D11_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, SD
if (FAILED(result)) { if (FAILED(result)) {
return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device1::CreateShaderResourceView"), result); return WIN_SetErrorFromHRESULT(SDL_COMPOSE_ERROR("ID3D11Device1::CreateShaderResourceView"), result);
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (textureData->yuv) { if (textureData->yuv) {
result = ID3D11Device_CreateShaderResourceView(rendererData->d3dDevice, result = ID3D11Device_CreateShaderResourceView(rendererData->d3dDevice,
(ID3D11Resource *)textureData->mainTextureU, (ID3D11Resource *)textureData->mainTextureU,
@ -1358,7 +1358,7 @@ static void D3D11_DestroyTexture(SDL_Renderer *renderer,
SAFE_RELEASE(data->mainTextureResourceView); SAFE_RELEASE(data->mainTextureResourceView);
SAFE_RELEASE(data->mainTextureRenderTargetView); SAFE_RELEASE(data->mainTextureRenderTargetView);
SAFE_RELEASE(data->stagingTexture); SAFE_RELEASE(data->stagingTexture);
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
SAFE_RELEASE(data->mainTextureU); SAFE_RELEASE(data->mainTextureU);
SAFE_RELEASE(data->mainTextureResourceViewU); SAFE_RELEASE(data->mainTextureResourceViewU);
SAFE_RELEASE(data->mainTextureV); SAFE_RELEASE(data->mainTextureV);
@ -1473,7 +1473,7 @@ static bool D3D11_UpdateTextureInternal(D3D11_RenderData *rendererData, ID3D11Te
return true; return true;
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
static bool D3D11_UpdateTextureNV(SDL_Renderer *renderer, SDL_Texture *texture, static bool D3D11_UpdateTextureNV(SDL_Renderer *renderer, SDL_Texture *texture,
const SDL_Rect *rect, const SDL_Rect *rect,
const Uint8 *Yplane, int Ypitch, const Uint8 *Yplane, int Ypitch,
@ -1497,7 +1497,7 @@ static bool D3D11_UpdateTexture(SDL_Renderer *renderer, SDL_Texture *texture,
return SDL_SetError("Texture is not currently available"); return SDL_SetError("Texture is not currently available");
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (textureData->nv12) { if (textureData->nv12) {
const Uint8 *Yplane = (const Uint8 *)srcPixels; const Uint8 *Yplane = (const Uint8 *)srcPixels;
const Uint8 *UVplane = Yplane + rect->h * srcPitch; const Uint8 *UVplane = Yplane + rect->h * srcPitch;
@ -1525,7 +1525,7 @@ static bool D3D11_UpdateTexture(SDL_Renderer *renderer, SDL_Texture *texture,
return true; return true;
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
static bool D3D11_UpdateTextureYUV(SDL_Renderer *renderer, SDL_Texture *texture, static bool D3D11_UpdateTextureYUV(SDL_Renderer *renderer, SDL_Texture *texture,
const SDL_Rect *rect, const SDL_Rect *rect,
const Uint8 *Yplane, int Ypitch, const Uint8 *Yplane, int Ypitch,
@ -1677,7 +1677,7 @@ static bool D3D11_LockTexture(SDL_Renderer *renderer, SDL_Texture *texture,
if (!textureData) { if (!textureData) {
return SDL_SetError("Texture is not currently available"); return SDL_SetError("Texture is not currently available");
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (textureData->yuv || textureData->nv12) { if (textureData->yuv || textureData->nv12) {
// It's more efficient to upload directly... // It's more efficient to upload directly...
if (!textureData->pixels) { if (!textureData->pixels) {
@ -1754,7 +1754,7 @@ static void D3D11_UnlockTexture(SDL_Renderer *renderer, SDL_Texture *texture)
if (!textureData) { if (!textureData) {
return; return;
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (textureData->yuv || textureData->nv12) { if (textureData->yuv || textureData->nv12) {
const SDL_Rect *rect = &textureData->locked_rect; const SDL_Rect *rect = &textureData->locked_rect;
void *pixels = void *pixels =
@ -2333,7 +2333,7 @@ static bool D3D11_SetCopyState(SDL_Renderer *renderer, const SDL_RenderCommand *
default: default:
return SDL_SetError("Unknown scale mode: %d\n", textureData->scaleMode); return SDL_SetError("Unknown scale mode: %d\n", textureData->scaleMode);
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (textureData->yuv) { if (textureData->yuv) {
ID3D11ShaderResourceView *shaderResources[3]; ID3D11ShaderResourceView *shaderResources[3];
@ -2693,7 +2693,7 @@ static bool D3D11_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SDL
renderer->SupportsBlendMode = D3D11_SupportsBlendMode; renderer->SupportsBlendMode = D3D11_SupportsBlendMode;
renderer->CreateTexture = D3D11_CreateTexture; renderer->CreateTexture = D3D11_CreateTexture;
renderer->UpdateTexture = D3D11_UpdateTexture; renderer->UpdateTexture = D3D11_UpdateTexture;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
renderer->UpdateTextureYUV = D3D11_UpdateTextureYUV; renderer->UpdateTextureYUV = D3D11_UpdateTextureYUV;
renderer->UpdateTextureNV = D3D11_UpdateTextureNV; renderer->UpdateTextureNV = D3D11_UpdateTextureNV;
#endif #endif

View file

@ -127,7 +127,7 @@ typedef struct
D3D12_FILTER scaleMode; D3D12_FILTER scaleMode;
D3D12_Shader shader; D3D12_Shader shader;
const float *YCbCr_matrix; const float *YCbCr_matrix;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
// YV12 texture support // YV12 texture support
bool yuv; bool yuv;
ID3D12Resource *mainTextureU; ID3D12Resource *mainTextureU;
@ -1619,7 +1619,7 @@ static bool D3D12_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, SD
} }
textureData->mainResourceState = D3D12_RESOURCE_STATE_COPY_DEST; textureData->mainResourceState = D3D12_RESOURCE_STATE_COPY_DEST;
SDL_SetPointerProperty(SDL_GetTextureProperties(texture), SDL_PROP_TEXTURE_D3D12_TEXTURE_POINTER, textureData->mainTexture); SDL_SetPointerProperty(SDL_GetTextureProperties(texture), SDL_PROP_TEXTURE_D3D12_TEXTURE_POINTER, textureData->mainTexture);
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (texture->format == SDL_PIXELFORMAT_YV12 || if (texture->format == SDL_PIXELFORMAT_YV12 ||
texture->format == SDL_PIXELFORMAT_IYUV) { texture->format == SDL_PIXELFORMAT_IYUV) {
textureData->yuv = true; textureData->yuv = true;
@ -1706,7 +1706,7 @@ static bool D3D12_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, SD
textureData->mainTexture, textureData->mainTexture,
&resourceViewDesc, &resourceViewDesc,
textureData->mainTextureResourceView); textureData->mainTextureResourceView);
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (textureData->yuv) { if (textureData->yuv) {
D3D_CALL_RET(rendererData->srvDescriptorHeap, GetCPUDescriptorHandleForHeapStart, &textureData->mainTextureResourceViewU); D3D_CALL_RET(rendererData->srvDescriptorHeap, GetCPUDescriptorHandleForHeapStart, &textureData->mainTextureResourceViewU);
textureData->mainSRVIndexU = D3D12_GetAvailableSRVIndex(renderer); textureData->mainSRVIndexU = D3D12_GetAvailableSRVIndex(renderer);
@ -1781,7 +1781,7 @@ static void D3D12_DestroyTexture(SDL_Renderer *renderer,
D3D_SAFE_RELEASE(textureData->mainTexture); D3D_SAFE_RELEASE(textureData->mainTexture);
D3D_SAFE_RELEASE(textureData->stagingBuffer); D3D_SAFE_RELEASE(textureData->stagingBuffer);
D3D12_FreeSRVIndex(renderer, textureData->mainSRVIndex); D3D12_FreeSRVIndex(renderer, textureData->mainSRVIndex);
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
D3D_SAFE_RELEASE(textureData->mainTextureU); D3D_SAFE_RELEASE(textureData->mainTextureU);
D3D_SAFE_RELEASE(textureData->mainTextureV); D3D_SAFE_RELEASE(textureData->mainTextureV);
if (textureData->yuv) { if (textureData->yuv) {
@ -1949,7 +1949,7 @@ static bool D3D12_UpdateTexture(SDL_Renderer *renderer, SDL_Texture *texture,
if (!D3D12_UpdateTextureInternal(rendererData, textureData->mainTexture, 0, rect->x, rect->y, rect->w, rect->h, srcPixels, srcPitch, &textureData->mainResourceState)) { if (!D3D12_UpdateTextureInternal(rendererData, textureData->mainTexture, 0, rect->x, rect->y, rect->w, rect->h, srcPixels, srcPitch, &textureData->mainResourceState)) {
return false; return false;
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (textureData->yuv) { if (textureData->yuv) {
// Skip to the correct offset into the next texture // Skip to the correct offset into the next texture
srcPixels = (const void *)((const Uint8 *)srcPixels + rect->h * srcPitch); srcPixels = (const void *)((const Uint8 *)srcPixels + rect->h * srcPitch);
@ -1982,7 +1982,7 @@ static bool D3D12_UpdateTexture(SDL_Renderer *renderer, SDL_Texture *texture,
return true; return true;
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
static bool D3D12_UpdateTextureYUV(SDL_Renderer *renderer, SDL_Texture *texture, static bool D3D12_UpdateTextureYUV(SDL_Renderer *renderer, SDL_Texture *texture,
const SDL_Rect *rect, const SDL_Rect *rect,
const Uint8 *Yplane, int Ypitch, const Uint8 *Yplane, int Ypitch,
@ -2048,7 +2048,7 @@ static bool D3D12_LockTexture(SDL_Renderer *renderer, SDL_Texture *texture,
if (!textureData) { if (!textureData) {
return SDL_SetError("Texture is not currently available"); return SDL_SetError("Texture is not currently available");
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (textureData->yuv || textureData->nv12) { if (textureData->yuv || textureData->nv12) {
// It's more efficient to upload directly... // It's more efficient to upload directly...
if (!textureData->pixels) { if (!textureData->pixels) {
@ -2167,7 +2167,7 @@ static void D3D12_UnlockTexture(SDL_Renderer *renderer, SDL_Texture *texture)
if (!textureData) { if (!textureData) {
return; return;
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (textureData->yuv || textureData->nv12) { if (textureData->yuv || textureData->nv12) {
const SDL_Rect *rect = &textureData->lockedRect; const SDL_Rect *rect = &textureData->lockedRect;
void *pixels = void *pixels =
@ -2760,7 +2760,7 @@ static bool D3D12_SetCopyState(SDL_Renderer *renderer, const SDL_RenderCommand *
default: default:
return SDL_SetError("Unknown scale mode: %d\n", textureData->scaleMode); return SDL_SetError("Unknown scale mode: %d\n", textureData->scaleMode);
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (textureData->yuv) { if (textureData->yuv) {
D3D12_CPU_DESCRIPTOR_HANDLE shaderResources[3]; D3D12_CPU_DESCRIPTOR_HANDLE shaderResources[3];
@ -3229,7 +3229,7 @@ bool D3D12_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SDL_Proper
renderer->SupportsBlendMode = D3D12_SupportsBlendMode; renderer->SupportsBlendMode = D3D12_SupportsBlendMode;
renderer->CreateTexture = D3D12_CreateTexture; renderer->CreateTexture = D3D12_CreateTexture;
renderer->UpdateTexture = D3D12_UpdateTexture; renderer->UpdateTexture = D3D12_UpdateTexture;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
renderer->UpdateTextureYUV = D3D12_UpdateTextureYUV; renderer->UpdateTextureYUV = D3D12_UpdateTextureYUV;
renderer->UpdateTextureNV = D3D12_UpdateTextureNV; renderer->UpdateTextureNV = D3D12_UpdateTextureNV;
#endif #endif

View file

@ -158,7 +158,7 @@ typedef struct METAL_ShaderPipelines
@property(nonatomic, retain) id<MTLTexture> mtltexture; @property(nonatomic, retain) id<MTLTexture> mtltexture;
@property(nonatomic, retain) id<MTLTexture> mtltextureUv; @property(nonatomic, retain) id<MTLTexture> mtltextureUv;
@property(nonatomic, assign) SDL_MetalFragmentFunction fragmentFunction; @property(nonatomic, assign) SDL_MetalFragmentFunction fragmentFunction;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
@property(nonatomic, assign) BOOL yuv; @property(nonatomic, assign) BOOL yuv;
@property(nonatomic, assign) BOOL nv12; @property(nonatomic, assign) BOOL nv12;
@property(nonatomic, assign) size_t conversionBufferOffset; @property(nonatomic, assign) size_t conversionBufferOffset;
@ -711,7 +711,7 @@ static bool METAL_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, SD
} }
mtltextureUv = nil; mtltextureUv = nil;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
BOOL yuv = (texture->format == SDL_PIXELFORMAT_IYUV || texture->format == SDL_PIXELFORMAT_YV12); BOOL yuv = (texture->format == SDL_PIXELFORMAT_IYUV || texture->format == SDL_PIXELFORMAT_YV12);
BOOL nv12 = (texture->format == SDL_PIXELFORMAT_NV12 || texture->format == SDL_PIXELFORMAT_NV21 || texture->format == SDL_PIXELFORMAT_P010); BOOL nv12 = (texture->format == SDL_PIXELFORMAT_NV12 || texture->format == SDL_PIXELFORMAT_NV21 || texture->format == SDL_PIXELFORMAT_P010);
@ -747,7 +747,7 @@ static bool METAL_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, SD
texturedata = [[SDL3METAL_TextureData alloc] init]; texturedata = [[SDL3METAL_TextureData alloc] init];
if (SDL_COLORSPACETRANSFER(texture->colorspace) == SDL_TRANSFER_CHARACTERISTICS_SRGB) { if (SDL_COLORSPACETRANSFER(texture->colorspace) == SDL_TRANSFER_CHARACTERISTICS_SRGB) {
texturedata.fragmentFunction = SDL_METAL_FRAGMENT_COPY; texturedata.fragmentFunction = SDL_METAL_FRAGMENT_COPY;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
} else if (yuv) { } else if (yuv) {
texturedata.fragmentFunction = SDL_METAL_FRAGMENT_YUV; texturedata.fragmentFunction = SDL_METAL_FRAGMENT_YUV;
#endif #endif
@ -756,7 +756,7 @@ static bool METAL_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, SD
} }
texturedata.mtltexture = mtltexture; texturedata.mtltexture = mtltexture;
texturedata.mtltextureUv = mtltextureUv; texturedata.mtltextureUv = mtltextureUv;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
texturedata.yuv = yuv; texturedata.yuv = yuv;
texturedata.nv12 = nv12; texturedata.nv12 = nv12;
if (yuv || nv12) { if (yuv || nv12) {
@ -870,7 +870,7 @@ static bool METAL_UpdateTexture(SDL_Renderer *renderer, SDL_Texture *texture,
if (!METAL_UpdateTextureInternal(renderer, texturedata, texturedata.mtltexture, *rect, 0, pixels, pitch)) { if (!METAL_UpdateTextureInternal(renderer, texturedata, texturedata.mtltexture, *rect, 0, pixels, pitch)) {
return false; return false;
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (texturedata.yuv) { if (texturedata.yuv) {
int Uslice = texture->format == SDL_PIXELFORMAT_YV12 ? 1 : 0; int Uslice = texture->format == SDL_PIXELFORMAT_YV12 ? 1 : 0;
int Vslice = texture->format == SDL_PIXELFORMAT_YV12 ? 0 : 1; int Vslice = texture->format == SDL_PIXELFORMAT_YV12 ? 0 : 1;
@ -907,7 +907,7 @@ static bool METAL_UpdateTexture(SDL_Renderer *renderer, SDL_Texture *texture,
} }
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
static bool METAL_UpdateTextureYUV(SDL_Renderer *renderer, SDL_Texture *texture, static bool METAL_UpdateTextureYUV(SDL_Renderer *renderer, SDL_Texture *texture,
const SDL_Rect *rect, const SDL_Rect *rect,
const Uint8 *Yplane, int Ypitch, const Uint8 *Yplane, int Ypitch,
@ -984,7 +984,7 @@ static bool METAL_LockTexture(SDL_Renderer *renderer, SDL_Texture *texture,
} }
*pitch = SDL_BYTESPERPIXEL(texture->format) * rect->w; *pitch = SDL_BYTESPERPIXEL(texture->format) * rect->w;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (texturedata.yuv || texturedata.nv12) { if (texturedata.yuv || texturedata.nv12) {
buffersize = ((*pitch) * rect->h) + (2 * (*pitch + 1) / 2) * ((rect->h + 1) / 2); buffersize = ((*pitch) * rect->h) + (2 * (*pitch + 1) / 2) * ((rect->h + 1) / 2);
} else } else
@ -1014,7 +1014,7 @@ static void METAL_UnlockTexture(SDL_Renderer *renderer, SDL_Texture *texture)
id<MTLBlitCommandEncoder> blitcmd; id<MTLBlitCommandEncoder> blitcmd;
SDL_Rect rect = texturedata.lockedrect; SDL_Rect rect = texturedata.lockedrect;
int pitch = SDL_BYTESPERPIXEL(texture->format) * rect.w; int pitch = SDL_BYTESPERPIXEL(texture->format) * rect.w;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
SDL_Rect UVrect = { rect.x / 2, rect.y / 2, (rect.w + 1) / 2, (rect.h + 1) / 2 }; SDL_Rect UVrect = { rect.x / 2, rect.y / 2, (rect.w + 1) / 2, (rect.h + 1) / 2 };
#endif #endif
@ -1042,7 +1042,7 @@ static void METAL_UnlockTexture(SDL_Renderer *renderer, SDL_Texture *texture)
destinationSlice:0 destinationSlice:0
destinationLevel:0 destinationLevel:0
destinationOrigin:MTLOriginMake(rect.x, rect.y, 0)]; destinationOrigin:MTLOriginMake(rect.x, rect.y, 0)];
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (texturedata.yuv) { if (texturedata.yuv) {
int Uslice = texture->format == SDL_PIXELFORMAT_YV12 ? 1 : 0; int Uslice = texture->format == SDL_PIXELFORMAT_YV12 ? 1 : 0;
int Vslice = texture->format == SDL_PIXELFORMAT_YV12 ? 0 : 1; int Vslice = texture->format == SDL_PIXELFORMAT_YV12 ? 0 : 1;
@ -1522,7 +1522,7 @@ static bool SetCopyState(SDL_Renderer *renderer, const SDL_RenderCommand *cmd, c
[data.mtlcmdencoder setFragmentSamplerState:mtlsampler atIndex:0]; [data.mtlcmdencoder setFragmentSamplerState:mtlsampler atIndex:0];
[data.mtlcmdencoder setFragmentTexture:texturedata.mtltexture atIndex:0]; [data.mtlcmdencoder setFragmentTexture:texturedata.mtltexture atIndex:0];
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (texturedata.yuv || texturedata.nv12) { if (texturedata.yuv || texturedata.nv12) {
[data.mtlcmdencoder setFragmentTexture:texturedata.mtltextureUv atIndex:1]; [data.mtlcmdencoder setFragmentTexture:texturedata.mtltextureUv atIndex:1];
[data.mtlcmdencoder setFragmentBuffer:data.mtlbufconstants offset:texturedata.conversionBufferOffset atIndex:1]; [data.mtlcmdencoder setFragmentBuffer:data.mtlbufconstants offset:texturedata.conversionBufferOffset atIndex:1];
@ -2151,7 +2151,7 @@ static bool METAL_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SDL
renderer->SupportsBlendMode = METAL_SupportsBlendMode; renderer->SupportsBlendMode = METAL_SupportsBlendMode;
renderer->CreateTexture = METAL_CreateTexture; renderer->CreateTexture = METAL_CreateTexture;
renderer->UpdateTexture = METAL_UpdateTexture; renderer->UpdateTexture = METAL_UpdateTexture;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
renderer->UpdateTextureYUV = METAL_UpdateTextureYUV; renderer->UpdateTextureYUV = METAL_UpdateTextureYUV;
renderer->UpdateTextureNV = METAL_UpdateTextureNV; renderer->UpdateTextureNV = METAL_UpdateTextureNV;
#endif #endif

View file

@ -138,7 +138,7 @@ typedef struct
int pitch; int pitch;
SDL_Rect locked_rect; SDL_Rect locked_rect;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
// YUV texture support // YUV texture support
bool yuv; bool yuv;
bool nv12; bool nv12;
@ -577,7 +577,7 @@ static bool GL_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, SDL_P
return false; return false;
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (texture->format == SDL_PIXELFORMAT_YV12 || if (texture->format == SDL_PIXELFORMAT_YV12 ||
texture->format == SDL_PIXELFORMAT_IYUV) { texture->format == SDL_PIXELFORMAT_IYUV) {
data->yuv = true; data->yuv = true;
@ -641,7 +641,7 @@ static bool GL_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, SDL_P
data->shader = SHADER_RGB; data->shader = SHADER_RGB;
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (data->yuv || data->nv12) { if (data->yuv || data->nv12) {
if (data->yuv) { if (data->yuv) {
data->shader = SHADER_YUV; data->shader = SHADER_YUV;
@ -688,7 +688,7 @@ static bool GL_UpdateTexture(SDL_Renderer *renderer, SDL_Texture *texture,
renderdata->glTexSubImage2D(textype, 0, rect->x, rect->y, rect->w, renderdata->glTexSubImage2D(textype, 0, rect->x, rect->y, rect->w,
rect->h, data->format, data->formattype, rect->h, data->format, data->formattype,
pixels); pixels);
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (data->yuv) { if (data->yuv) {
renderdata->glPixelStorei(GL_UNPACK_ROW_LENGTH, ((pitch + 1) / 2)); renderdata->glPixelStorei(GL_UNPACK_ROW_LENGTH, ((pitch + 1) / 2));
@ -729,7 +729,7 @@ static bool GL_UpdateTexture(SDL_Renderer *renderer, SDL_Texture *texture,
return GL_CheckError("glTexSubImage2D()", renderer); return GL_CheckError("glTexSubImage2D()", renderer);
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
static bool GL_UpdateTextureYUV(SDL_Renderer *renderer, SDL_Texture *texture, static bool GL_UpdateTextureYUV(SDL_Renderer *renderer, SDL_Texture *texture,
const SDL_Rect *rect, const SDL_Rect *rect,
const Uint8 *Yplane, int Ypitch, const Uint8 *Yplane, int Ypitch,
@ -833,7 +833,7 @@ static void GL_SetTextureScaleMode(SDL_Renderer *renderer, SDL_Texture *texture,
renderdata->glTexParameteri(textype, GL_TEXTURE_MIN_FILTER, glScaleMode); renderdata->glTexParameteri(textype, GL_TEXTURE_MIN_FILTER, glScaleMode);
renderdata->glTexParameteri(textype, GL_TEXTURE_MAG_FILTER, glScaleMode); renderdata->glTexParameteri(textype, GL_TEXTURE_MAG_FILTER, glScaleMode);
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (texture->format == SDL_PIXELFORMAT_YV12 || if (texture->format == SDL_PIXELFORMAT_YV12 ||
texture->format == SDL_PIXELFORMAT_IYUV) { texture->format == SDL_PIXELFORMAT_IYUV) {
renderdata->glBindTexture(textype, data->utexture); renderdata->glBindTexture(textype, data->utexture);
@ -1146,7 +1146,7 @@ static bool SetCopyState(GL_RenderData *data, const SDL_RenderCommand *cmd)
if (texture != data->drawstate.texture) { if (texture != data->drawstate.texture) {
const GLenum textype = data->textype; const GLenum textype = data->textype;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (texturedata->yuv) { if (texturedata->yuv) {
if (data->GL_ARB_multitexture_supported) { if (data->GL_ARB_multitexture_supported) {
data->glActiveTextureARB(GL_TEXTURE2_ARB); data->glActiveTextureARB(GL_TEXTURE2_ARB);
@ -1529,7 +1529,7 @@ static void GL_DestroyTexture(SDL_Renderer *renderer, SDL_Texture *texture)
if (data->texture && !data->texture_external) { if (data->texture && !data->texture_external) {
renderdata->glDeleteTextures(1, &data->texture); renderdata->glDeleteTextures(1, &data->texture);
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (data->yuv) { if (data->yuv) {
if (!data->utexture_external) { if (!data->utexture_external) {
renderdata->glDeleteTextures(1, &data->utexture); renderdata->glDeleteTextures(1, &data->utexture);
@ -1650,7 +1650,7 @@ static bool GL_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SDL_Pr
renderer->SupportsBlendMode = GL_SupportsBlendMode; renderer->SupportsBlendMode = GL_SupportsBlendMode;
renderer->CreateTexture = GL_CreateTexture; renderer->CreateTexture = GL_CreateTexture;
renderer->UpdateTexture = GL_UpdateTexture; renderer->UpdateTexture = GL_UpdateTexture;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
renderer->UpdateTextureYUV = GL_UpdateTextureYUV; renderer->UpdateTextureYUV = GL_UpdateTextureYUV;
renderer->UpdateTextureNV = GL_UpdateTextureNV; renderer->UpdateTextureNV = GL_UpdateTextureNV;
#endif #endif
@ -1766,7 +1766,7 @@ static bool GL_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SDL_Pr
data->shaders = GL_CreateShaderContext(); data->shaders = GL_CreateShaderContext();
SDL_LogInfo(SDL_LOG_CATEGORY_RENDER, "OpenGL shaders: %s", SDL_LogInfo(SDL_LOG_CATEGORY_RENDER, "OpenGL shaders: %s",
data->shaders ? "ENABLED" : "DISABLED"); data->shaders ? "ENABLED" : "DISABLED");
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
// We support YV12 textures using 3 textures and a shader // We support YV12 textures using 3 textures and a shader
if (data->shaders && data->num_texture_units >= 3) { if (data->shaders && data->num_texture_units >= 3) {
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_YV12); SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_YV12);

View file

@ -284,7 +284,7 @@ static const char *shader_source[NUM_SHADERS][2] = {
" gl_FragColor = texture2D(tex0, v_texCoord) * v_color;\n" " gl_FragColor = texture2D(tex0, v_texCoord) * v_color;\n"
"}" "}"
}, },
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
// SHADER_YUV // SHADER_YUV
{ {
// vertex shader // vertex shader

View file

@ -33,7 +33,7 @@ typedef enum
SHADER_SOLID, SHADER_SOLID,
SHADER_RGB, SHADER_RGB,
SHADER_RGBA, SHADER_RGBA,
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
SHADER_YUV, SHADER_YUV,
SHADER_NV12_RA, SHADER_NV12_RA,
SHADER_NV12_RG, SHADER_NV12_RG,

View file

@ -67,7 +67,7 @@ typedef struct GLES2_TextureData
GLenum pixel_type; GLenum pixel_type;
void *pixel_data; void *pixel_data;
int pitch; int pitch;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
// YUV texture support // YUV texture support
bool yuv; bool yuv;
bool nv12; bool nv12;
@ -625,7 +625,7 @@ static bool GLES2_SelectProgram(GLES2_RenderData *data, GLES2_ImageSource source
case GLES2_IMAGESOURCE_TEXTURE_BGR: case GLES2_IMAGESOURCE_TEXTURE_BGR:
ftype = GLES2_SHADER_FRAGMENT_TEXTURE_BGR; ftype = GLES2_SHADER_FRAGMENT_TEXTURE_BGR;
break; break;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
case GLES2_IMAGESOURCE_TEXTURE_YUV: case GLES2_IMAGESOURCE_TEXTURE_YUV:
ftype = GLES2_SHADER_FRAGMENT_TEXTURE_YUV; ftype = GLES2_SHADER_FRAGMENT_TEXTURE_YUV;
shader_params = SDL_GetYCbCRtoRGBConversionMatrix(colorspace, 0, 0, 8); shader_params = SDL_GetYCbCRtoRGBConversionMatrix(colorspace, 0, 0, 8);
@ -1114,7 +1114,7 @@ static bool SetCopyState(SDL_Renderer *renderer, const SDL_RenderCommand *cmd, v
break; break;
} }
break; break;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
case SDL_PIXELFORMAT_IYUV: case SDL_PIXELFORMAT_IYUV:
case SDL_PIXELFORMAT_YV12: case SDL_PIXELFORMAT_YV12:
sourceType = GLES2_IMAGESOURCE_TEXTURE_YUV; sourceType = GLES2_IMAGESOURCE_TEXTURE_YUV;
@ -1149,7 +1149,7 @@ static bool SetCopyState(SDL_Renderer *renderer, const SDL_RenderCommand *cmd, v
case SDL_PIXELFORMAT_RGBX32: case SDL_PIXELFORMAT_RGBX32:
sourceType = GLES2_IMAGESOURCE_TEXTURE_BGR; sourceType = GLES2_IMAGESOURCE_TEXTURE_BGR;
break; break;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
case SDL_PIXELFORMAT_IYUV: case SDL_PIXELFORMAT_IYUV:
case SDL_PIXELFORMAT_YV12: case SDL_PIXELFORMAT_YV12:
sourceType = GLES2_IMAGESOURCE_TEXTURE_YUV; sourceType = GLES2_IMAGESOURCE_TEXTURE_YUV;
@ -1173,7 +1173,7 @@ static bool SetCopyState(SDL_Renderer *renderer, const SDL_RenderCommand *cmd, v
if (texture != data->drawstate.texture) { if (texture != data->drawstate.texture) {
GLES2_TextureData *tdata = (GLES2_TextureData *)texture->internal; GLES2_TextureData *tdata = (GLES2_TextureData *)texture->internal;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (tdata->yuv) { if (tdata->yuv) {
data->glActiveTexture(GL_TEXTURE2); data->glActiveTexture(GL_TEXTURE2);
data->glBindTexture(tdata->texture_type, tdata->texture_v); data->glBindTexture(tdata->texture_type, tdata->texture_v);
@ -1501,7 +1501,7 @@ static bool GLES2_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, SD
format = GL_RGBA; format = GL_RGBA;
type = GL_UNSIGNED_BYTE; type = GL_UNSIGNED_BYTE;
break; break;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
case SDL_PIXELFORMAT_IYUV: case SDL_PIXELFORMAT_IYUV:
case SDL_PIXELFORMAT_YV12: case SDL_PIXELFORMAT_YV12:
case SDL_PIXELFORMAT_NV12: case SDL_PIXELFORMAT_NV12:
@ -1538,7 +1538,7 @@ static bool GLES2_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, SD
#endif #endif
data->pixel_format = format; data->pixel_format = format;
data->pixel_type = type; data->pixel_type = type;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
data->yuv = ((texture->format == SDL_PIXELFORMAT_IYUV) || (texture->format == SDL_PIXELFORMAT_YV12)); data->yuv = ((texture->format == SDL_PIXELFORMAT_IYUV) || (texture->format == SDL_PIXELFORMAT_YV12));
data->nv12 = ((texture->format == SDL_PIXELFORMAT_NV12) || (texture->format == SDL_PIXELFORMAT_NV21)); data->nv12 = ((texture->format == SDL_PIXELFORMAT_NV12) || (texture->format == SDL_PIXELFORMAT_NV21));
data->texture_u = 0; data->texture_u = 0;
@ -1551,7 +1551,7 @@ static bool GLES2_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, SD
size_t size; size_t size;
data->pitch = texture->w * SDL_BYTESPERPIXEL(texture->format); data->pitch = texture->w * SDL_BYTESPERPIXEL(texture->format);
size = (size_t)texture->h * data->pitch; size = (size_t)texture->h * data->pitch;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (data->yuv) { if (data->yuv) {
// Need to add size for the U and V planes // Need to add size for the U and V planes
size += 2 * ((texture->h + 1) / 2) * ((data->pitch + 1) / 2); size += 2 * ((texture->h + 1) / 2) * ((data->pitch + 1) / 2);
@ -1570,7 +1570,7 @@ static bool GLES2_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, SD
// Allocate the texture // Allocate the texture
GL_CheckError("", renderer); GL_CheckError("", renderer);
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (data->yuv) { if (data->yuv) {
data->texture_v = (GLuint)SDL_GetNumberProperty(create_props, SDL_PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_V_NUMBER, 0); data->texture_v = (GLuint)SDL_GetNumberProperty(create_props, SDL_PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_V_NUMBER, 0);
if (data->texture_v) { if (data->texture_v) {
@ -1729,7 +1729,7 @@ static bool GLES2_UpdateTexture(SDL_Renderer *renderer, SDL_Texture *texture, co
tdata->pixel_type, tdata->pixel_type,
pixels, pitch, SDL_BYTESPERPIXEL(texture->format)); pixels, pitch, SDL_BYTESPERPIXEL(texture->format));
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (tdata->yuv) { if (tdata->yuv) {
// Skip to the correct offset into the next texture // Skip to the correct offset into the next texture
pixels = (const void *)((const Uint8 *)pixels + rect->h * pitch); pixels = (const void *)((const Uint8 *)pixels + rect->h * pitch);
@ -1780,7 +1780,7 @@ static bool GLES2_UpdateTexture(SDL_Renderer *renderer, SDL_Texture *texture, co
return GL_CheckError("glTexSubImage2D()", renderer); return GL_CheckError("glTexSubImage2D()", renderer);
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
static bool GLES2_UpdateTextureYUV(SDL_Renderer *renderer, SDL_Texture *texture, static bool GLES2_UpdateTextureYUV(SDL_Renderer *renderer, SDL_Texture *texture,
const SDL_Rect *rect, const SDL_Rect *rect,
const Uint8 *Yplane, int Ypitch, const Uint8 *Yplane, int Ypitch,
@ -1906,7 +1906,7 @@ static void GLES2_SetTextureScaleMode(SDL_Renderer *renderer, SDL_Texture *textu
GLES2_TextureData *data = (GLES2_TextureData *)texture->internal; GLES2_TextureData *data = (GLES2_TextureData *)texture->internal;
GLenum glScaleMode = (scaleMode == SDL_SCALEMODE_NEAREST) ? GL_NEAREST : GL_LINEAR; GLenum glScaleMode = (scaleMode == SDL_SCALEMODE_NEAREST) ? GL_NEAREST : GL_LINEAR;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (data->yuv) { if (data->yuv) {
renderdata->glActiveTexture(GL_TEXTURE2); renderdata->glActiveTexture(GL_TEXTURE2);
renderdata->glBindTexture(data->texture_type, data->texture_v); renderdata->glBindTexture(data->texture_type, data->texture_v);
@ -1974,7 +1974,7 @@ static void GLES2_DestroyTexture(SDL_Renderer *renderer, SDL_Texture *texture)
if (tdata->texture && !tdata->texture_external) { if (tdata->texture && !tdata->texture_external) {
data->glDeleteTextures(1, &tdata->texture); data->glDeleteTextures(1, &tdata->texture);
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (tdata->texture_v && !tdata->texture_v_external) { if (tdata->texture_v && !tdata->texture_v_external) {
data->glDeleteTextures(1, &tdata->texture_v); data->glDeleteTextures(1, &tdata->texture_v);
} }
@ -2145,7 +2145,7 @@ static bool GLES2_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SDL
renderer->SupportsBlendMode = GLES2_SupportsBlendMode; renderer->SupportsBlendMode = GLES2_SupportsBlendMode;
renderer->CreateTexture = GLES2_CreateTexture; renderer->CreateTexture = GLES2_CreateTexture;
renderer->UpdateTexture = GLES2_UpdateTexture; renderer->UpdateTexture = GLES2_UpdateTexture;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
renderer->UpdateTextureYUV = GLES2_UpdateTextureYUV; renderer->UpdateTextureYUV = GLES2_UpdateTextureYUV;
renderer->UpdateTextureNV = GLES2_UpdateTextureNV; renderer->UpdateTextureNV = GLES2_UpdateTextureNV;
#endif #endif
@ -2165,7 +2165,7 @@ static bool GLES2_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SDL
renderer->DestroyTexture = GLES2_DestroyTexture; renderer->DestroyTexture = GLES2_DestroyTexture;
renderer->DestroyRenderer = GLES2_DestroyRenderer; renderer->DestroyRenderer = GLES2_DestroyRenderer;
renderer->SetVSync = GLES2_SetVSync; renderer->SetVSync = GLES2_SetVSync;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_YV12); SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_YV12);
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_IYUV); SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_IYUV);
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_NV12); SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_NV12);

View file

@ -148,7 +148,7 @@ static const char GLES2_Fragment_TextureBGR[] = \
"}\n" \ "}\n" \
; ;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
#define YUV_SHADER_PROLOGUE \ #define YUV_SHADER_PROLOGUE \
"uniform sampler2D u_texture;\n" \ "uniform sampler2D u_texture;\n" \
@ -365,7 +365,7 @@ const char *GLES2_GetShader(GLES2_ShaderType type)
return GLES2_Fragment_TextureRGB; return GLES2_Fragment_TextureRGB;
case GLES2_SHADER_FRAGMENT_TEXTURE_BGR: case GLES2_SHADER_FRAGMENT_TEXTURE_BGR:
return GLES2_Fragment_TextureBGR; return GLES2_Fragment_TextureBGR;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
case GLES2_SHADER_FRAGMENT_TEXTURE_YUV: case GLES2_SHADER_FRAGMENT_TEXTURE_YUV:
return GLES2_Fragment_TextureYUV; return GLES2_Fragment_TextureYUV;
case GLES2_SHADER_FRAGMENT_TEXTURE_NV12_RA: case GLES2_SHADER_FRAGMENT_TEXTURE_NV12_RA:

View file

@ -43,7 +43,7 @@ typedef enum
GLES2_SHADER_FRAGMENT_TEXTURE_ARGB, GLES2_SHADER_FRAGMENT_TEXTURE_ARGB,
GLES2_SHADER_FRAGMENT_TEXTURE_BGR, GLES2_SHADER_FRAGMENT_TEXTURE_BGR,
GLES2_SHADER_FRAGMENT_TEXTURE_RGB, GLES2_SHADER_FRAGMENT_TEXTURE_RGB,
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
GLES2_SHADER_FRAGMENT_TEXTURE_YUV, GLES2_SHADER_FRAGMENT_TEXTURE_YUV,
GLES2_SHADER_FRAGMENT_TEXTURE_NV12_RA, GLES2_SHADER_FRAGMENT_TEXTURE_NV12_RA,
GLES2_SHADER_FRAGMENT_TEXTURE_NV12_RG, GLES2_SHADER_FRAGMENT_TEXTURE_NV12_RG,

View file

@ -210,7 +210,7 @@ static bool VITA_GXM_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window,
renderer->SupportsBlendMode = VITA_GXM_SupportsBlendMode; renderer->SupportsBlendMode = VITA_GXM_SupportsBlendMode;
renderer->CreateTexture = VITA_GXM_CreateTexture; renderer->CreateTexture = VITA_GXM_CreateTexture;
renderer->UpdateTexture = VITA_GXM_UpdateTexture; renderer->UpdateTexture = VITA_GXM_UpdateTexture;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
renderer->UpdateTextureYUV = VITA_GXM_UpdateTextureYUV; renderer->UpdateTextureYUV = VITA_GXM_UpdateTextureYUV;
renderer->UpdateTextureNV = VITA_GXM_UpdateTextureNV; renderer->UpdateTextureNV = VITA_GXM_UpdateTextureNV;
#endif #endif
@ -299,7 +299,7 @@ static bool VITA_GXM_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture,
VITA_GXM_SetTextureScaleMode(renderer, texture, texture->scaleMode); VITA_GXM_SetTextureScaleMode(renderer, texture, texture->scaleMode);
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
vita_texture->yuv = ((texture->format == SDL_PIXELFORMAT_IYUV) || (texture->format == SDL_PIXELFORMAT_YV12)); vita_texture->yuv = ((texture->format == SDL_PIXELFORMAT_IYUV) || (texture->format == SDL_PIXELFORMAT_YV12));
vita_texture->nv12 = ((texture->format == SDL_PIXELFORMAT_NV12) || (texture->format == SDL_PIXELFORMAT_NV21)); vita_texture->nv12 = ((texture->format == SDL_PIXELFORMAT_NV12) || (texture->format == SDL_PIXELFORMAT_NV21));
#endif #endif
@ -339,7 +339,7 @@ static bool VITA_GXM_UpdateTexture(SDL_Renderer *renderer, SDL_Texture *texture,
Uint8 *dst; Uint8 *dst;
int row, length, dpitch; int row, length, dpitch;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (vita_texture->yuv || vita_texture->nv12) { if (vita_texture->yuv || vita_texture->nv12) {
VITA_GXM_SetYUVProfile(renderer, texture); VITA_GXM_SetYUVProfile(renderer, texture);
} }
@ -358,7 +358,7 @@ static bool VITA_GXM_UpdateTexture(SDL_Renderer *renderer, SDL_Texture *texture,
} }
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (vita_texture->yuv) { if (vita_texture->yuv) {
void *Udst; void *Udst;
void *Vdst; void *Vdst;
@ -425,7 +425,7 @@ static bool VITA_GXM_UpdateTexture(SDL_Renderer *renderer, SDL_Texture *texture,
return true; return true;
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
static bool VITA_GXM_UpdateTextureYUV(SDL_Renderer *renderer, SDL_Texture *texture, static bool VITA_GXM_UpdateTextureYUV(SDL_Renderer *renderer, SDL_Texture *texture,
const SDL_Rect *rect, const SDL_Rect *rect,
const Uint8 *Yplane, int Ypitch, const Uint8 *Yplane, int Ypitch,

View file

@ -2596,7 +2596,7 @@ static bool VULKAN_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, S
} }
textureData->scaleMode = (texture->scaleMode == SDL_SCALEMODE_NEAREST) ? VK_FILTER_NEAREST : VK_FILTER_LINEAR; textureData->scaleMode = (texture->scaleMode == SDL_SCALEMODE_NEAREST) ? VK_FILTER_NEAREST : VK_FILTER_LINEAR;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
// YUV textures must have even width and height. Also create Ycbcr conversion // YUV textures must have even width and height. Also create Ycbcr conversion
if (texture->format == SDL_PIXELFORMAT_YV12 || if (texture->format == SDL_PIXELFORMAT_YV12 ||
texture->format == SDL_PIXELFORMAT_IYUV || texture->format == SDL_PIXELFORMAT_IYUV ||
@ -2770,7 +2770,7 @@ static void VULKAN_DestroyTexture(SDL_Renderer *renderer,
VULKAN_DestroyImage(rendererData, &textureData->mainImage); VULKAN_DestroyImage(rendererData, &textureData->mainImage);
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (textureData->samplerYcbcrConversion != VK_NULL_HANDLE) { if (textureData->samplerYcbcrConversion != VK_NULL_HANDLE) {
vkDestroySamplerYcbcrConversionKHR(rendererData->device, textureData->samplerYcbcrConversion, NULL); vkDestroySamplerYcbcrConversionKHR(rendererData->device, textureData->samplerYcbcrConversion, NULL);
textureData->samplerYcbcrConversion = VK_NULL_HANDLE; textureData->samplerYcbcrConversion = VK_NULL_HANDLE;
@ -2911,7 +2911,7 @@ static bool VULKAN_UpdateTexture(SDL_Renderer *renderer, SDL_Texture *texture,
if (!VULKAN_UpdateTextureInternal(rendererData, textureData->mainImage.image, textureData->mainImage.format, 0, rect->x, rect->y, rect->w, rect->h, srcPixels, srcPitch, &textureData->mainImage.imageLayout)) { if (!VULKAN_UpdateTextureInternal(rendererData, textureData->mainImage.image, textureData->mainImage.format, 0, rect->x, rect->y, rect->w, rect->h, srcPixels, srcPitch, &textureData->mainImage.imageLayout)) {
return false; return false;
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
Uint32 numPlanes = VULKAN_VkFormatGetNumPlanes(textureData->mainImage.format); Uint32 numPlanes = VULKAN_VkFormatGetNumPlanes(textureData->mainImage.format);
// Skip to the correct offset into the next texture // Skip to the correct offset into the next texture
srcPixels = (const void *)((const Uint8 *)srcPixels + rect->h * srcPitch); srcPixels = (const void *)((const Uint8 *)srcPixels + rect->h * srcPitch);
@ -2943,7 +2943,7 @@ static bool VULKAN_UpdateTexture(SDL_Renderer *renderer, SDL_Texture *texture,
return true; return true;
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
static bool VULKAN_UpdateTextureYUV(SDL_Renderer *renderer, SDL_Texture *texture, static bool VULKAN_UpdateTextureYUV(SDL_Renderer *renderer, SDL_Texture *texture,
const SDL_Rect *rect, const SDL_Rect *rect,
const Uint8 *Yplane, int Ypitch, const Uint8 *Yplane, int Ypitch,
@ -4278,7 +4278,7 @@ static bool VULKAN_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SD
renderer->SupportsBlendMode = VULKAN_SupportsBlendMode; renderer->SupportsBlendMode = VULKAN_SupportsBlendMode;
renderer->CreateTexture = VULKAN_CreateTexture; renderer->CreateTexture = VULKAN_CreateTexture;
renderer->UpdateTexture = VULKAN_UpdateTexture; renderer->UpdateTexture = VULKAN_UpdateTexture;
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
renderer->UpdateTextureYUV = VULKAN_UpdateTextureYUV; renderer->UpdateTextureYUV = VULKAN_UpdateTextureYUV;
renderer->UpdateTextureNV = VULKAN_UpdateTextureNV; renderer->UpdateTextureNV = VULKAN_UpdateTextureNV;
#endif #endif
@ -4323,7 +4323,7 @@ static bool VULKAN_CreateRenderer(SDL_Renderer *renderer, SDL_Window *window, SD
return false; return false;
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (rendererData->supportsKHRSamplerYCbCrConversion) { if (rendererData->supportsKHRSamplerYCbCrConversion) {
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_YV12); SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_YV12);
SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_IYUV); SDL_AddSupportedTextureFormat(renderer, SDL_PIXELFORMAT_IYUV);

View file

@ -20,7 +20,7 @@
*/ */
#include "SDL_internal.h" #include "SDL_internal.h"
#if SDL_HAVE_RLE #ifdef SDL_HAVE_RLE
/* /*
* RLE encoding for software colorkey and alpha-channel acceleration * RLE encoding for software colorkey and alpha-channel acceleration

View file

@ -97,7 +97,7 @@ static bool SDLCALL SDL_SoftBlit(SDL_Surface *src, const SDL_Rect *srcrect,
return okay; return okay;
} }
#if SDL_HAVE_BLIT_AUTO #ifdef SDL_HAVE_BLIT_AUTO
#ifdef SDL_PLATFORM_MACOS #ifdef SDL_PLATFORM_MACOS
#include <sys/sysctl.h> #include <sys/sysctl.h>
@ -189,7 +189,7 @@ bool SDL_CalculateBlit(SDL_Surface *surface, SDL_Surface *dst)
return SDL_SetError("Blit combination not supported"); return SDL_SetError("Blit combination not supported");
} }
#if SDL_HAVE_RLE #ifdef SDL_HAVE_RLE
// Clean everything out to start // Clean everything out to start
if (surface->flags & SDL_INTERNAL_SURFACE_RLEACCEL) { if (surface->flags & SDL_INTERNAL_SURFACE_RLEACCEL) {
SDL_UnRLESurface(surface, true); SDL_UnRLESurface(surface, true);
@ -204,7 +204,7 @@ bool SDL_CalculateBlit(SDL_Surface *surface, SDL_Surface *dst)
map->info.dst_fmt = dst->fmt; map->info.dst_fmt = dst->fmt;
map->info.dst_pal = dst->palette; map->info.dst_pal = dst->palette;
#if SDL_HAVE_RLE #ifdef SDL_HAVE_RLE
// See if we can do RLE acceleration // See if we can do RLE acceleration
if (map->info.flags & SDL_COPY_RLE_DESIRED) { if (map->info.flags & SDL_COPY_RLE_DESIRED) {
if (SDL_RLESurface(surface)) { if (SDL_RLESurface(surface)) {
@ -228,30 +228,30 @@ bool SDL_CalculateBlit(SDL_Surface *surface, SDL_Surface *dst)
SDL_ISPIXELFORMAT_10BIT(dst->format)) { SDL_ISPIXELFORMAT_10BIT(dst->format)) {
blit = SDL_Blit_Slow; blit = SDL_Blit_Slow;
} }
#if SDL_HAVE_BLIT_0 #ifdef SDL_HAVE_BLIT_0
else if (SDL_BITSPERPIXEL(surface->format) < 8 && else if (SDL_BITSPERPIXEL(surface->format) < 8 &&
SDL_ISPIXELFORMAT_INDEXED(surface->format)) { SDL_ISPIXELFORMAT_INDEXED(surface->format)) {
blit = SDL_CalculateBlit0(surface); blit = SDL_CalculateBlit0(surface);
} }
#endif #endif
#if SDL_HAVE_BLIT_1 #ifdef SDL_HAVE_BLIT_1
else if (SDL_BYTESPERPIXEL(surface->format) == 1 && else if (SDL_BYTESPERPIXEL(surface->format) == 1 &&
SDL_ISPIXELFORMAT_INDEXED(surface->format)) { SDL_ISPIXELFORMAT_INDEXED(surface->format)) {
blit = SDL_CalculateBlit1(surface); blit = SDL_CalculateBlit1(surface);
} }
#endif #endif
#if SDL_HAVE_BLIT_A #ifdef SDL_HAVE_BLIT_A
else if (map->info.flags & SDL_COPY_BLEND) { else if (map->info.flags & SDL_COPY_BLEND) {
blit = SDL_CalculateBlitA(surface); blit = SDL_CalculateBlitA(surface);
} }
#endif #endif
#if SDL_HAVE_BLIT_N #ifdef SDL_HAVE_BLIT_N
else { else {
blit = SDL_CalculateBlitN(surface); blit = SDL_CalculateBlitN(surface);
} }
#endif #endif
} }
#if SDL_HAVE_BLIT_AUTO #ifdef SDL_HAVE_BLIT_AUTO
if (!blit) { if (!blit) {
SDL_PixelFormat src_format = surface->format; SDL_PixelFormat src_format = surface->format;
SDL_PixelFormat dst_format = dst->format; SDL_PixelFormat dst_format = dst->format;

View file

@ -20,7 +20,7 @@
*/ */
#include "SDL_internal.h" #include "SDL_internal.h"
#if SDL_HAVE_BLIT_0 #ifdef SDL_HAVE_BLIT_0
#include "SDL_surface_c.h" #include "SDL_surface_c.h"

View file

@ -20,7 +20,7 @@
*/ */
#include "SDL_internal.h" #include "SDL_internal.h"
#if SDL_HAVE_BLIT_1 #ifdef SDL_HAVE_BLIT_1
#include "SDL_surface_c.h" #include "SDL_surface_c.h"
#include "SDL_sysvideo.h" #include "SDL_sysvideo.h"

View file

@ -20,7 +20,7 @@
*/ */
#include "SDL_internal.h" #include "SDL_internal.h"
#if SDL_HAVE_BLIT_A #ifdef SDL_HAVE_BLIT_A
#include "SDL_surface_c.h" #include "SDL_surface_c.h"

View file

@ -20,7 +20,7 @@
*/ */
#include "SDL_internal.h" #include "SDL_internal.h"
#if SDL_HAVE_BLIT_N #ifdef SDL_HAVE_BLIT_N
#include "SDL_surface_c.h" #include "SDL_surface_c.h"
#include "SDL_blit_copy.h" #include "SDL_blit_copy.h"
@ -1162,7 +1162,7 @@ static void Blit_XRGB8888_RGB565(SDL_BlitInfo *info)
#endif // USE_DUFFS_LOOP #endif // USE_DUFFS_LOOP
} }
#if SDL_HAVE_BLIT_N_RGB565 #ifdef SDL_HAVE_BLIT_N_RGB565
// Special optimized blit for RGB 5-6-5 --> 32-bit RGB surfaces // Special optimized blit for RGB 5-6-5 --> 32-bit RGB surfaces
#define RGB565_32(dst, src, map) (map[src[LO] * 2] + map[src[HI] * 2 + 1]) #define RGB565_32(dst, src, map) (map[src[LO] * 2] + map[src[HI] * 2 + 1])
@ -2753,7 +2753,7 @@ static const struct blit_table normal_blit_2[] = {
{ 0x00007C00, 0x000003E0, 0x0000001F, 4, 0x00000000, 0x00000000, 0x00000000, { 0x00007C00, 0x000003E0, 0x0000001F, 4, 0x00000000, 0x00000000, 0x00000000,
BLIT_FEATURE_HAS_ALTIVEC, Blit_RGB555_32Altivec, NO_ALPHA | COPY_ALPHA | SET_ALPHA }, BLIT_FEATURE_HAS_ALTIVEC, Blit_RGB555_32Altivec, NO_ALPHA | COPY_ALPHA | SET_ALPHA },
#endif #endif
#if SDL_HAVE_BLIT_N_RGB565 #ifdef SDL_HAVE_BLIT_N_RGB565
{ 0x0000F800, 0x000007E0, 0x0000001F, 4, 0x00FF0000, 0x0000FF00, 0x000000FF, { 0x0000F800, 0x000007E0, 0x0000001F, 4, 0x00FF0000, 0x0000FF00, 0x000000FF,
0, Blit_RGB565_ARGB8888, NO_ALPHA | COPY_ALPHA | SET_ALPHA }, 0, Blit_RGB565_ARGB8888, NO_ALPHA | COPY_ALPHA | SET_ALPHA },
{ 0x0000F800, 0x000007E0, 0x0000001F, 4, 0x000000FF, 0x0000FF00, 0x00FF0000, { 0x0000F800, 0x000007E0, 0x0000001F, 4, 0x000000FF, 0x0000FF00, 0x00FF0000,

View file

@ -21,7 +21,7 @@
*/ */
#include "SDL_internal.h" #include "SDL_internal.h"
#if SDL_HAVE_BLIT_AUTO #ifdef SDL_HAVE_BLIT_AUTO
/* *INDENT-OFF* */ // clang-format off /* *INDENT-OFF* */ // clang-format off

View file

@ -22,7 +22,7 @@
#include "SDL_internal.h" #include "SDL_internal.h"
#include "SDL_blit.h" #include "SDL_blit.h"
#if SDL_HAVE_BLIT_AUTO #ifdef SDL_HAVE_BLIT_AUTO
/* *INDENT-OFF* */ // clang-format off /* *INDENT-OFF* */ // clang-format off

View file

@ -166,7 +166,7 @@ bool SDL_GetMasksForPixelFormat(SDL_PixelFormat format, int *bpp, Uint32 *Rmask,
{ {
Uint32 masks[4]; Uint32 masks[4];
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
// Partial support for SDL_Surface with FOURCC // Partial support for SDL_Surface with FOURCC
if (SDL_ISPIXELFORMAT_FOURCC(format)) { if (SDL_ISPIXELFORMAT_FOURCC(format)) {
// Not a format that uses masks // Not a format that uses masks
@ -1455,7 +1455,7 @@ bool SDL_MapSurface(SDL_Surface *src, SDL_Surface *dst)
// Clear out any previous mapping // Clear out any previous mapping
map = &src->map; map = &src->map;
#if SDL_HAVE_RLE #ifdef SDL_HAVE_RLE
if (src->internal_flags & SDL_INTERNAL_SURFACE_RLEACCEL) { if (src->internal_flags & SDL_INTERNAL_SURFACE_RLEACCEL) {
SDL_UnRLESurface(src, true); SDL_UnRLESurface(src, true);
} }

View file

@ -1722,7 +1722,7 @@ bool SDL_LockSurface(SDL_Surface *surface)
} }
if (!surface->locked) { if (!surface->locked) {
#if SDL_HAVE_RLE #ifdef SDL_HAVE_RLE
// Perform the lock // Perform the lock
if (surface->internal_flags & SDL_INTERNAL_SURFACE_RLEACCEL) { if (surface->internal_flags & SDL_INTERNAL_SURFACE_RLEACCEL) {
SDL_UnRLESurface(surface, true); SDL_UnRLESurface(surface, true);
@ -1753,7 +1753,7 @@ void SDL_UnlockSurface(SDL_Surface *surface)
return; return;
} }
#if SDL_HAVE_RLE #ifdef SDL_HAVE_RLE
// Update RLE encoded surface with new data // Update RLE encoded surface with new data
if (surface->internal_flags & SDL_INTERNAL_SURFACE_RLEACCEL) { if (surface->internal_flags & SDL_INTERNAL_SURFACE_RLEACCEL) {
surface->internal_flags &= ~SDL_INTERNAL_SURFACE_RLEACCEL; // stop lying surface->internal_flags &= ~SDL_INTERNAL_SURFACE_RLEACCEL; // stop lying
@ -2276,7 +2276,7 @@ bool SDL_ConvertPixelsAndColorspace(int width, int height,
dst_colorspace = SDL_GetDefaultColorspaceForFormat(dst_format); dst_colorspace = SDL_GetDefaultColorspaceForFormat(dst_format);
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (SDL_ISPIXELFORMAT_FOURCC(src_format) && SDL_ISPIXELFORMAT_FOURCC(dst_format)) { if (SDL_ISPIXELFORMAT_FOURCC(src_format) && SDL_ISPIXELFORMAT_FOURCC(dst_format)) {
return SDL_ConvertPixels_YUV_to_YUV(width, height, src_format, src_colorspace, src_properties, src, src_pitch, dst_format, dst_colorspace, dst_properties, dst, dst_pitch); return SDL_ConvertPixels_YUV_to_YUV(width, height, src_format, src_colorspace, src_properties, src, src_pitch, dst_format, dst_colorspace, dst_properties, dst, dst_pitch);
} else if (SDL_ISPIXELFORMAT_FOURCC(src_format)) { } else if (SDL_ISPIXELFORMAT_FOURCC(src_format)) {
@ -2960,7 +2960,7 @@ void SDL_DestroySurface(SDL_Surface *surface)
while (surface->locked > 0) { while (surface->locked > 0) {
SDL_UnlockSurface(surface); SDL_UnlockSurface(surface);
} }
#if SDL_HAVE_RLE #ifdef SDL_HAVE_RLE
if (surface->internal_flags & SDL_INTERNAL_SURFACE_RLEACCEL) { if (surface->internal_flags & SDL_INTERNAL_SURFACE_RLEACCEL) {
SDL_UnRLESurface(surface, false); SDL_UnRLESurface(surface, false);
} }

View file

@ -26,7 +26,7 @@
#include "yuv2rgb/yuv_rgb.h" #include "yuv2rgb/yuv_rgb.h"
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
static bool IsPlanar2x2Format(SDL_PixelFormat format); static bool IsPlanar2x2Format(SDL_PixelFormat format);
#endif #endif
@ -36,7 +36,7 @@ static bool IsPlanar2x2Format(SDL_PixelFormat format);
*/ */
bool SDL_CalculateYUVSize(SDL_PixelFormat format, int w, int h, size_t *size, size_t *pitch) bool SDL_CalculateYUVSize(SDL_PixelFormat format, int w, int h, size_t *size, size_t *pitch)
{ {
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
int sz_plane = 0, sz_plane_chroma = 0, sz_plane_packed = 0; int sz_plane = 0, sz_plane_chroma = 0, sz_plane_packed = 0;
if (IsPlanar2x2Format(format) == true) { if (IsPlanar2x2Format(format) == true) {
@ -155,7 +155,7 @@ bool SDL_CalculateYUVSize(SDL_PixelFormat format, int w, int h, size_t *size, si
#endif #endif
} }
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
static bool GetYUVConversionType(SDL_Colorspace colorspace, YCbCrType *yuv_type) static bool GetYUVConversionType(SDL_Colorspace colorspace, YCbCrType *yuv_type)
{ {
@ -2561,7 +2561,7 @@ bool SDL_ConvertPixels_YUV_to_YUV(int width, int height,
SDL_PixelFormat src_format, SDL_Colorspace src_colorspace, SDL_PropertiesID src_properties, const void *src, int src_pitch, SDL_PixelFormat src_format, SDL_Colorspace src_colorspace, SDL_PropertiesID src_properties, const void *src, int src_pitch,
SDL_PixelFormat dst_format, SDL_Colorspace dst_colorspace, SDL_PropertiesID dst_properties, void *dst, int dst_pitch) SDL_PixelFormat dst_format, SDL_Colorspace dst_colorspace, SDL_PropertiesID dst_properties, void *dst, int dst_pitch)
{ {
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
if (src_colorspace != dst_colorspace) { if (src_colorspace != dst_colorspace) {
return SDL_SetError("SDL_ConvertPixels_YUV_to_YUV: colorspace conversion not supported"); return SDL_SetError("SDL_ConvertPixels_YUV_to_YUV: colorspace conversion not supported");
} }

View file

@ -114,7 +114,7 @@ sub open_file {
#include "SDL_internal.h" #include "SDL_internal.h"
#include "SDL_surface_c.h" #include "SDL_surface_c.h"
#if SDL_HAVE_BLIT_AUTO #ifdef SDL_HAVE_BLIT_AUTO
/* *INDENT-OFF* */ // clang-format off /* *INDENT-OFF* */ // clang-format off

View file

@ -2,7 +2,7 @@
// Distributed under BSD 3-Clause License // Distributed under BSD 3-Clause License
#include "SDL_internal.h" #include "SDL_internal.h"
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
#include "yuv_rgb_lsx.h" #include "yuv_rgb_lsx.h"
#include "yuv_rgb_internal.h" #include "yuv_rgb_internal.h"

View file

@ -2,7 +2,7 @@
// Distributed under BSD 3-Clause License // Distributed under BSD 3-Clause License
#include "SDL_internal.h" #include "SDL_internal.h"
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
#include "yuv_rgb_internal.h" #include "yuv_rgb_internal.h"
#ifdef SDL_SSE2_INTRINSICS #ifdef SDL_SSE2_INTRINSICS

View file

@ -2,7 +2,7 @@
// Distributed under BSD 3-Clause License // Distributed under BSD 3-Clause License
#include "SDL_internal.h" #include "SDL_internal.h"
#if SDL_HAVE_YUV #ifdef SDL_HAVE_YUV
#include "yuv_rgb_internal.h" #include "yuv_rgb_internal.h"