SDL  2.0
SDL_sysrender.h File Reference
#include "../SDL_internal.h"
#include "SDL_render.h"
#include "SDL_events.h"
#include "SDL_mutex.h"
#include "SDL_yuv_sw_c.h"
+ Include dependency graph for SDL_sysrender.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  SDL_Texture
 
struct  SDL_RenderCommand
 
struct  SDL_Renderer
 
struct  SDL_RenderDriver
 

Enumerations

enum  SDL_RenderCommandType {
  SDL_RENDERCMD_NO_OP,
  SDL_RENDERCMD_SETVIEWPORT,
  SDL_RENDERCMD_SETCLIPRECT,
  SDL_RENDERCMD_SETDRAWCOLOR,
  SDL_RENDERCMD_CLEAR,
  SDL_RENDERCMD_DRAW_POINTS,
  SDL_RENDERCMD_DRAW_LINES,
  SDL_RENDERCMD_FILL_RECTS,
  SDL_RENDERCMD_COPY,
  SDL_RENDERCMD_COPY_EX
}
 

Functions

SDL_BlendFactor SDL_GetBlendModeSrcColorFactor (SDL_BlendMode blendMode)
 
SDL_BlendFactor SDL_GetBlendModeDstColorFactor (SDL_BlendMode blendMode)
 
SDL_BlendOperation SDL_GetBlendModeColorOperation (SDL_BlendMode blendMode)
 
SDL_BlendFactor SDL_GetBlendModeSrcAlphaFactor (SDL_BlendMode blendMode)
 
SDL_BlendFactor SDL_GetBlendModeDstAlphaFactor (SDL_BlendMode blendMode)
 
SDL_BlendOperation SDL_GetBlendModeAlphaOperation (SDL_BlendMode blendMode)
 
voidSDL_AllocateRenderVertices (SDL_Renderer *renderer, const size_t numbytes, const size_t alignment, size_t *offset)
 

Variables

SDL_RenderDriver D3D_RenderDriver
 
SDL_RenderDriver D3D11_RenderDriver
 
SDL_RenderDriver GL_RenderDriver
 
SDL_RenderDriver GLES2_RenderDriver
 
SDL_RenderDriver GLES_RenderDriver
 
SDL_RenderDriver DirectFB_RenderDriver
 
SDL_RenderDriver METAL_RenderDriver
 
SDL_RenderDriver PSP_RenderDriver
 
SDL_RenderDriver SW_RenderDriver
 

Enumeration Type Documentation

◆ SDL_RenderCommandType

Enumerator
SDL_RENDERCMD_NO_OP 
SDL_RENDERCMD_SETVIEWPORT 
SDL_RENDERCMD_SETCLIPRECT 
SDL_RENDERCMD_SETDRAWCOLOR 
SDL_RENDERCMD_CLEAR 
SDL_RENDERCMD_DRAW_POINTS 
SDL_RENDERCMD_DRAW_LINES 
SDL_RENDERCMD_FILL_RECTS 
SDL_RENDERCMD_COPY 
SDL_RENDERCMD_COPY_EX 

Definition at line 66 of file SDL_sysrender.h.

Function Documentation

◆ SDL_AllocateRenderVertices()

void* SDL_AllocateRenderVertices ( SDL_Renderer renderer,
const size_t  numbytes,
const size_t  alignment,
size_t offset 
)

Definition at line 263 of file SDL_render.c.

264 {
265  const size_t needed = renderer->vertex_data_used + numbytes + alignment;
266  size_t current_offset = renderer->vertex_data_used;
267 
268  size_t aligner = (alignment && ((current_offset & (alignment - 1)) != 0)) ? (alignment - (current_offset & (alignment - 1))) : 0;
269  size_t aligned = current_offset + aligner;
270 
271  if (renderer->vertex_data_allocation < needed) {
272  const size_t current_allocation = renderer->vertex_data ? renderer->vertex_data_allocation : 1024;
273  size_t newsize = current_allocation * 2;
274  void *ptr;
275  while (newsize < needed) {
276  newsize *= 2;
277  }
278  ptr = SDL_realloc(renderer->vertex_data, newsize);
279  if (ptr == NULL) {
280  SDL_OutOfMemory();
281  return NULL;
282  }
284  renderer->vertex_data_allocation = newsize;
285  }
286 
287  if (offset) {
288  *offset = aligned;
289  }
290 
291  renderer->vertex_data_used += aligner + numbytes;
292 
293  return ((Uint8 *) renderer->vertex_data) + aligned;
294 }

References NULL, numbytes, ptr, renderer, SDL_OutOfMemory, SDL_realloc, SDL_Renderer::vertex_data, SDL_Renderer::vertex_data_allocation, and SDL_Renderer::vertex_data_used.

Referenced by SW_QueueCopy(), SW_QueueCopyEx(), SW_QueueDrawPoints(), and SW_QueueFillRects().

◆ SDL_GetBlendModeAlphaOperation()

SDL_BlendOperation SDL_GetBlendModeAlphaOperation ( SDL_BlendMode  blendMode)

Definition at line 3398 of file SDL_render.c.

3399 {
3401  return (SDL_BlendOperation)(((Uint32)blendMode >> 16) & 0xF);
3402 }

References blendMode, and SDL_GetLongBlendMode().

◆ SDL_GetBlendModeColorOperation()

SDL_BlendOperation SDL_GetBlendModeColorOperation ( SDL_BlendMode  blendMode)

Definition at line 3377 of file SDL_render.c.

3378 {
3380  return (SDL_BlendOperation)(((Uint32)blendMode >> 0) & 0xF);
3381 }

References blendMode, and SDL_GetLongBlendMode().

◆ SDL_GetBlendModeDstAlphaFactor()

SDL_BlendFactor SDL_GetBlendModeDstAlphaFactor ( SDL_BlendMode  blendMode)

Definition at line 3391 of file SDL_render.c.

3392 {
3394  return (SDL_BlendFactor)(((Uint32)blendMode >> 24) & 0xF);
3395 }

References blendMode, and SDL_GetLongBlendMode().

◆ SDL_GetBlendModeDstColorFactor()

SDL_BlendFactor SDL_GetBlendModeDstColorFactor ( SDL_BlendMode  blendMode)

Definition at line 3370 of file SDL_render.c.

3371 {
3373  return (SDL_BlendFactor)(((Uint32)blendMode >> 8) & 0xF);
3374 }

References blendMode, and SDL_GetLongBlendMode().

◆ SDL_GetBlendModeSrcAlphaFactor()

SDL_BlendFactor SDL_GetBlendModeSrcAlphaFactor ( SDL_BlendMode  blendMode)

Definition at line 3384 of file SDL_render.c.

3385 {
3387  return (SDL_BlendFactor)(((Uint32)blendMode >> 20) & 0xF);
3388 }

References blendMode, and SDL_GetLongBlendMode().

◆ SDL_GetBlendModeSrcColorFactor()

SDL_BlendFactor SDL_GetBlendModeSrcColorFactor ( SDL_BlendMode  blendMode)

Definition at line 3363 of file SDL_render.c.

3364 {
3366  return (SDL_BlendFactor)(((Uint32)blendMode >> 4) & 0xF);
3367 }

References blendMode, and SDL_GetLongBlendMode().

Variable Documentation

◆ D3D11_RenderDriver

SDL_RenderDriver D3D11_RenderDriver

◆ D3D_RenderDriver

SDL_RenderDriver D3D_RenderDriver

◆ DirectFB_RenderDriver

SDL_RenderDriver DirectFB_RenderDriver

◆ GL_RenderDriver

SDL_RenderDriver GL_RenderDriver

◆ GLES2_RenderDriver

SDL_RenderDriver GLES2_RenderDriver

◆ GLES_RenderDriver

SDL_RenderDriver GLES_RenderDriver

◆ METAL_RenderDriver

SDL_RenderDriver METAL_RenderDriver

◆ PSP_RenderDriver

SDL_RenderDriver PSP_RenderDriver

◆ SW_RenderDriver

SDL_RenderDriver SW_RenderDriver

Definition at line 872 of file SDL_render_sw.c.

Referenced by SW_CreateRendererForSurface().

Uint8
uint8_t Uint8
Definition: SDL_stdinc.h:179
offset
GLintptr offset
Definition: SDL_opengl_glext.h:541
blendMode
static SDL_BlendMode blendMode
Definition: testdraw2.c:34
NULL
#define NULL
Definition: begin_code.h:167
SDL_RenderCommandType
SDL_RenderCommandType
Definition: SDL_sysrender.h:67
SDL_BlendOperation
SDL_BlendOperation
The blend operation used when combining source and destination pixel components.
Definition: SDL_blendmode.h:66
SDL_realloc
#define SDL_realloc
Definition: SDL_dynapi_overrides.h:376
SDL_Renderer::vertex_data
void * vertex_data
Definition: SDL_sysrender.h:214
Uint32
uint32_t Uint32
Definition: SDL_stdinc.h:203
SDL_BlendFactor
SDL_BlendFactor
The normalized factor used to multiply pixel components.
Definition: SDL_blendmode.h:79
SDL_Renderer::vertex_data_used
size_t vertex_data_used
Definition: SDL_sysrender.h:215
SDL_RENDERCMD_COPY
@ SDL_RENDERCMD_COPY
Definition: SDL_sysrender.h:76
SDL_RENDERCMD_SETCLIPRECT
@ SDL_RENDERCMD_SETCLIPRECT
Definition: SDL_sysrender.h:70
SDL_RENDERCMD_SETVIEWPORT
@ SDL_RENDERCMD_SETVIEWPORT
Definition: SDL_sysrender.h:69
SDL_RENDERCMD_DRAW_POINTS
@ SDL_RENDERCMD_DRAW_POINTS
Definition: SDL_sysrender.h:73
SDL_Renderer::vertex_data_allocation
size_t vertex_data_allocation
Definition: SDL_sysrender.h:216
SDL_RENDERCMD_NO_OP
@ SDL_RENDERCMD_NO_OP
Definition: SDL_sysrender.h:68
SDL_RENDERCMD_DRAW_LINES
@ SDL_RENDERCMD_DRAW_LINES
Definition: SDL_sysrender.h:74
SDL_OutOfMemory
#define SDL_OutOfMemory()
Definition: SDL_error.h:52
SDL_RENDERCMD_FILL_RECTS
@ SDL_RENDERCMD_FILL_RECTS
Definition: SDL_sysrender.h:75
SDL_GetLongBlendMode
static SDL_BlendMode SDL_GetLongBlendMode(SDL_BlendMode blendMode)
Definition: SDL_render.c:3331
SDL_RENDERCMD_COPY_EX
@ SDL_RENDERCMD_COPY_EX
Definition: SDL_sysrender.h:77
renderer
static SDL_Renderer * renderer
Definition: testaudiocapture.c:21
numbytes
set set set set set set set macro pixldst1 abits if abits op else op endif endm macro pixldst2 abits if abits op else op endif endm macro pixldst4 abits if abits op else op endif endm macro pixldst0 abits op endm macro pixldst3 mem_operand op endm macro pixldst30 mem_operand op endm macro pixldst numbytes
Definition: pixman-arm-neon-asm.h:112
SDL_RENDERCMD_SETDRAWCOLOR
@ SDL_RENDERCMD_SETDRAWCOLOR
Definition: SDL_sysrender.h:71
ptr
set set set set set set set set set set set set set set set set set set set set *set set set macro pixldst op &r &cond WK op &r &cond WK op &r &cond WK else op &m &cond &ia op &r &cond WK else op &m &cond &ia elseif elseif else error unsupported base if elseif elseif else error unsupported unaligned pixldst unaligned endm macro pixst base base else pixldst base endif endm macro PF ptr
Definition: pixman-arm-simd-asm.h:171
SDL_RENDERCMD_CLEAR
@ SDL_RENDERCMD_CLEAR
Definition: SDL_sysrender.h:72