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.

67 {
SDL_RenderCommandType
Definition: SDL_sysrender.h:67
@ SDL_RENDERCMD_SETCLIPRECT
Definition: SDL_sysrender.h:70
@ SDL_RENDERCMD_DRAW_LINES
Definition: SDL_sysrender.h:74
@ SDL_RENDERCMD_SETVIEWPORT
Definition: SDL_sysrender.h:69
@ SDL_RENDERCMD_DRAW_POINTS
Definition: SDL_sysrender.h:73
@ SDL_RENDERCMD_NO_OP
Definition: SDL_sysrender.h:68
@ SDL_RENDERCMD_FILL_RECTS
Definition: SDL_sysrender.h:75
@ SDL_RENDERCMD_COPY
Definition: SDL_sysrender.h:76
@ SDL_RENDERCMD_CLEAR
Definition: SDL_sysrender.h:72
@ SDL_RENDERCMD_SETDRAWCOLOR
Definition: SDL_sysrender.h:71
@ SDL_RENDERCMD_COPY_EX
Definition: SDL_sysrender.h:77

Function Documentation

◆ SDL_AllocateRenderVertices()

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

Definition at line 262 of file SDL_render.c.

263 {
264  const size_t needed = renderer->vertex_data_used + numbytes + alignment;
265  size_t current_offset = renderer->vertex_data_used;
266 
267  size_t aligner = (alignment && ((current_offset & (alignment - 1)) != 0)) ? (alignment - (current_offset & (alignment - 1))) : 0;
268  size_t aligned = current_offset + aligner;
269 
270  if (renderer->vertex_data_allocation < needed) {
271  const size_t current_allocation = renderer->vertex_data ? renderer->vertex_data_allocation : 1024;
272  size_t newsize = current_allocation * 2;
273  void *ptr;
274  while (newsize < needed) {
275  newsize *= 2;
276  }
277  ptr = SDL_realloc(renderer->vertex_data, newsize);
278  if (ptr == NULL) {
279  SDL_OutOfMemory();
280  return NULL;
281  }
283  renderer->vertex_data_allocation = newsize;
284  }
285 
286  if (offset) {
287  *offset = aligned;
288  }
289 
290  renderer->vertex_data_used += aligner + numbytes;
291 
292  return ((Uint8 *) renderer->vertex_data) + aligned;
293 }
#define SDL_realloc
#define SDL_OutOfMemory()
Definition: SDL_error.h:88
GLintptr offset
uint8_t Uint8
Definition: SDL_stdinc.h:185
#define NULL
Definition: begin_code.h:163
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
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
size_t vertex_data_allocation
void * vertex_data
size_t vertex_data_used
static SDL_Renderer * renderer

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 3421 of file SDL_render.c.

3422 {
3424  return (SDL_BlendOperation)(((Uint32)blendMode >> 16) & 0xF);
3425 }
SDL_BlendOperation
The blend operation used when combining source and destination pixel components.
Definition: SDL_blendmode.h:66
static SDL_BlendMode SDL_GetLongBlendMode(SDL_BlendMode blendMode)
Definition: SDL_render.c:3354
uint32_t Uint32
Definition: SDL_stdinc.h:209
static SDL_BlendMode blendMode
Definition: testdraw2.c:34

References blendMode, and SDL_GetLongBlendMode().

◆ SDL_GetBlendModeColorOperation()

SDL_BlendOperation SDL_GetBlendModeColorOperation ( SDL_BlendMode  blendMode)

Definition at line 3400 of file SDL_render.c.

3401 {
3403  return (SDL_BlendOperation)(((Uint32)blendMode >> 0) & 0xF);
3404 }

References blendMode, and SDL_GetLongBlendMode().

◆ SDL_GetBlendModeDstAlphaFactor()

SDL_BlendFactor SDL_GetBlendModeDstAlphaFactor ( SDL_BlendMode  blendMode)

Definition at line 3414 of file SDL_render.c.

3415 {
3417  return (SDL_BlendFactor)(((Uint32)blendMode >> 24) & 0xF);
3418 }
SDL_BlendFactor
The normalized factor used to multiply pixel components.
Definition: SDL_blendmode.h:79

References blendMode, and SDL_GetLongBlendMode().

◆ SDL_GetBlendModeDstColorFactor()

SDL_BlendFactor SDL_GetBlendModeDstColorFactor ( SDL_BlendMode  blendMode)

Definition at line 3393 of file SDL_render.c.

3394 {
3396  return (SDL_BlendFactor)(((Uint32)blendMode >> 8) & 0xF);
3397 }

References blendMode, and SDL_GetLongBlendMode().

◆ SDL_GetBlendModeSrcAlphaFactor()

SDL_BlendFactor SDL_GetBlendModeSrcAlphaFactor ( SDL_BlendMode  blendMode)

Definition at line 3407 of file SDL_render.c.

3408 {
3410  return (SDL_BlendFactor)(((Uint32)blendMode >> 20) & 0xF);
3411 }

References blendMode, and SDL_GetLongBlendMode().

◆ SDL_GetBlendModeSrcColorFactor()

SDL_BlendFactor SDL_GetBlendModeSrcColorFactor ( SDL_BlendMode  blendMode)

Definition at line 3386 of file SDL_render.c.

3387 {
3389  return (SDL_BlendFactor)(((Uint32)blendMode >> 4) & 0xF);
3390 }

References blendMode, and SDL_GetLongBlendMode().

Variable Documentation

◆ D3D11_RenderDriver

SDL_RenderDriver D3D11_RenderDriver
extern

◆ D3D_RenderDriver

SDL_RenderDriver D3D_RenderDriver
extern

◆ DirectFB_RenderDriver

SDL_RenderDriver DirectFB_RenderDriver
extern

◆ GL_RenderDriver

SDL_RenderDriver GL_RenderDriver
extern

◆ GLES2_RenderDriver

SDL_RenderDriver GLES2_RenderDriver
extern

◆ GLES_RenderDriver

SDL_RenderDriver GLES_RenderDriver
extern

◆ METAL_RenderDriver

SDL_RenderDriver METAL_RenderDriver
extern

◆ PSP_RenderDriver

SDL_RenderDriver PSP_RenderDriver
extern

◆ SW_RenderDriver

SDL_RenderDriver SW_RenderDriver
extern

Definition at line 871 of file SDL_render_sw.c.

Referenced by SW_CreateRendererForSurface().