nim-sdl2/docs/sdl2_gpu.html
Joey Yakimowich-Payne 13bb7848ad Add docs
2020-04-26 15:20:37 -06:00

5723 lines
518 KiB
HTML

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- This file is generated by Nim. -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Favicon -->
<link rel="shortcut icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAUAAAAF////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAIAAABbAAAAlQAAAKIAAACbAAAAmwAAAKIAAACVAAAAWwAAAAL///8A////AP///wD///8A////AAAAABQAAADAAAAAYwAAAA3///8A////AP///wD///8AAAAADQAAAGMAAADAAAAAFP///wD///8A////AP///wAAAACdAAAAOv///wD///8A////AP///wD///8A////AP///wD///8AAAAAOgAAAJ3///8A////AP///wAAAAAnAAAAcP///wAAAAAoAAAASv///wD///8A////AP///wAAAABKAAAAKP///wAAAABwAAAAJ////wD///8AAAAAgQAAABwAAACIAAAAkAAAAJMAAACtAAAAFQAAABUAAACtAAAAkwAAAJAAAACIAAAAHAAAAIH///8A////AAAAAKQAAACrAAAAaP///wD///8AAAAARQAAANIAAADSAAAARf///wD///8AAAAAaAAAAKsAAACk////AAAAADMAAACcAAAAnQAAABj///8A////AP///wAAAAAYAAAAGP///wD///8A////AAAAABgAAACdAAAAnAAAADMAAAB1AAAAwwAAAP8AAADpAAAAsQAAAE4AAAAb////AP///wAAAAAbAAAATgAAALEAAADpAAAA/wAAAMMAAAB1AAAAtwAAAOkAAAD/AAAA/wAAAP8AAADvAAAA3gAAAN4AAADeAAAA3gAAAO8AAAD/AAAA/wAAAP8AAADpAAAAtwAAAGUAAAA/AAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADfAAAAPwAAAGX///8A////AAAAAEgAAADtAAAAvwAAAL0AAADGAAAA7wAAAO8AAADGAAAAvQAAAL8AAADtAAAASP///wD///8A////AP///wD///8AAAAAO////wD///8A////AAAAAIcAAACH////AP///wD///8AAAAAO////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//8AAP//AAD4HwAA7/cAAN/7AAD//wAAoYUAAJ55AACf+QAAh+EAAAAAAADAAwAA4AcAAP5/AAD//wAA//8AAA=="/>
<link rel="icon" type="image/png" sizes="32x32" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4QQQEwksSS9ZWwAAAk1JREFUWMPtll2ITVEUx39nn/O7Y5qR8f05wtCUUr6ZIS++8pEnkZInPImneaCQ5METNdOkeFBKUhMPRIkHKfEuUZSUlGlKPN2TrgfncpvmnntnmlEyq1Z7t89/rf9a6+y99oZxGZf/XeIq61EdtgKXgdXA0xrYAvBjOIF1AI9zvjcC74BSpndrJPkBWDScTF8Aa4E3wDlgHbASaANmVqlcCnwHvgDvgVfAJ+AikAAvgfVZwLnSVZHZaOuKoQi3ZOMi4NkYkpe1p4J7A8BpYAD49hfIy/oqG0+hLomiKP2L5L+1ubn5115S+3OAn4EnwBlgMzCjyt6ZAnQCJ4A7wOs88iRJHvw50HoujuPBoCKwHWiosy8MdfZnAdcHk8dxXFJ3VQbQlCTJvRBCGdRbD4M6uc5glpY3eAihpN5S5w12diSEcCCEcKUO4ljdr15T76ur1FDDLIQQ3qv71EdDOe3Kxj3leRXyk+pxdWnFWod6Wt2bY3de3aSuUHcPBVimHs7mK9WrmeOF6lR1o9qnzskh2ar2qm1qizpfXaPeVGdlmGN5pb09qMxz1Xb1kLqgzn1RyH7JUXW52lr5e/Kqi9qpto7V1atuUzfnARrV7jEib1T76gG2qxdGmXyiekkt1GswPTtek0aBfJp6YySGBfWg2tPQ0FAYgf1stUfdmdcjarbYJEniKIq6gY/Aw+zWHAC+p2labGpqiorFYgGYCEzN7oQdQClN07O1/EfDyGgC0ALMBdYAi4FyK+4H3gLPsxfR1zRNi+NP7nH5J+QntnXe5B5mpfQAAAAASUVORK5CYII=">
<!-- Google fonts -->
<link href='https://fonts.googleapis.com/css?family=Lato:400,600,900' rel='stylesheet' type='text/css'/>
<link href='https://fonts.googleapis.com/css?family=Source+Code+Pro:400,500,600' rel='stylesheet' type='text/css'/>
<!-- CSS -->
<title>sdl2_gpu</title>
<link rel="stylesheet" type="text/css" href="nimdoc.out.css">
<script type="text/javascript" src="dochack.js"></script>
<script type="text/javascript">
function main() {
var pragmaDots = document.getElementsByClassName("pragmadots");
for (var i = 0; i < pragmaDots.length; i++) {
pragmaDots[i].onclick = function(event) {
// Hide tease
event.target.parentNode.style.display = "none";
// Show actual
event.target.parentNode.nextElementSibling.style.display = "inline";
}
}
const toggleSwitch = document.querySelector('.theme-switch input[type="checkbox"]');
function switchTheme(e) {
if (e.target.checked) {
document.documentElement.setAttribute('data-theme', 'dark');
localStorage.setItem('theme', 'dark');
} else {
document.documentElement.setAttribute('data-theme', 'light');
localStorage.setItem('theme', 'light');
}
}
toggleSwitch.addEventListener('change', switchTheme, false);
if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.documentElement.setAttribute('data-theme', "dark");
toggleSwitch.checked = true;
} else if (window.matchMedia && window.matchMedia('(prefers-color-scheme: light)').matches) {
document.documentElement.setAttribute('data-theme', "light");
toggleSwitch.checked = false;
} else {
const currentTheme = localStorage.getItem('theme') ? localStorage.getItem('theme') : null;
if (currentTheme) {
document.documentElement.setAttribute('data-theme', currentTheme);
if (currentTheme === 'dark') {
toggleSwitch.checked = true;
}
}
}
}
</script>
</head>
<body onload="main()">
<div class="document" id="documentId">
<div class="container">
<h1 class="title">sdl2_gpu</h1>
<div class="row">
<div class="three columns">
<div class="theme-switch-wrapper">
<label class="theme-switch" for="checkbox">
<input type="checkbox" id="checkbox" />
<div class="slider round"></div>
</label>
&nbsp;&nbsp;&nbsp; <em>Dark Mode</em>
</div>
<div id="global-links">
<ul class="simple">
</ul>
</div>
<div id="searchInputDiv">
Search: <input type="text" id="searchInput"
onkeyup="search()" />
</div>
<div>
Group by:
<select onchange="groupBy(this.value)">
<option value="section">Section</option>
<option value="type">Type</option>
</select>
</div>
<ul class="simple simple-toc" id="toc-list">
<li>
<a class="reference reference-toplevel" href="#6" id="56">Imports</a>
<ul class="simple simple-toc-section">
</ul>
</li>
<li>
<a class="reference reference-toplevel" href="#7" id="57">Types</a>
<ul class="simple simple-toc-section">
<li><a class="reference" href="#ComparisonEnum"
title="ComparisonEnum = distinct cint"><wbr />Comparison<wbr />Enum<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BlendFuncEnum"
title="BlendFuncEnum = distinct cint"><wbr />Blend<wbr />Func<wbr />Enum<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BlendEqEnum"
title="BlendEqEnum = distinct cint"><wbr />Blend<wbr />Eq<wbr />Enum<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BlendPresetEnum"
title="BlendPresetEnum = distinct cint"><wbr />Blend<wbr />Preset<wbr />Enum<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FilterEnum"
title="FilterEnum = distinct cint"><wbr />Filter<wbr />Enum<span class="attachedType"></span></a></li>
<li><a class="reference" href="#SnapEnum"
title="SnapEnum = distinct cint"><wbr />Snap<wbr />Enum<span class="attachedType"></span></a></li>
<li><a class="reference" href="#WrapEnum"
title="WrapEnum = distinct cint"><wbr />Wrap<wbr />Enum<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FormatEnum"
title="FormatEnum = distinct cint"><wbr />Format<wbr />Enum<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FileFormatEnum"
title="FileFormatEnum = distinct cint"><wbr />File<wbr />Format<wbr />Enum<span class="attachedType"></span></a></li>
<li><a class="reference" href="#ShaderEnum"
title="ShaderEnum = distinct cint"><wbr />Shader<wbr />Enum<span class="attachedType"></span></a></li>
<li><a class="reference" href="#ShaderLanguageEnum"
title="ShaderLanguageEnum = distinct cint"><wbr />Shader<wbr />Language<wbr />Enum<span class="attachedType"></span></a></li>
<li><a class="reference" href="#ErrorEnum"
title="ErrorEnum = distinct cint"><wbr />Error<wbr />Enum<span class="attachedType"></span></a></li>
<li><a class="reference" href="#DebugLevelEnum"
title="DebugLevelEnum = distinct cint"><wbr />Debug<wbr />Level<wbr />Enum<span class="attachedType"></span></a></li>
<li><a class="reference" href="#LogLevelEnum"
title="LogLevelEnum = enum
LOG_LEVEL_INFO = 0, LOG_LEVEL_WARNING, LOG_LEVEL_ERROR"><wbr />Log<wbr />Level<wbr />Enum<span class="attachedType"></span></a></li>
<li><a class="reference" href="#WindowFlagEnum"
title="WindowFlagEnum = WindowFlags"><wbr />Window<wbr />Flag<wbr />Enum<span class="attachedType"></span></a></li>
<li><a class="reference" href="#Renderer"
title="Renderer {.bycopy.} = object
id*: RendererID
requestedId*: RendererID
sdlInitFlags*: WindowFlagEnum
gpuInitFlags*: InitFlagEnum
shaderLanguage*: ShaderLanguageEnum
minShaderVersion*: cint
maxShaderVersion*: cint
enabledFeatures*: FeatureEnum ## ::
## ! Current display target
currentContextTarget*: ptr Target ## ::
## ! 0 for inverted, 1 for mathematical
coordinateMode*: Bool ## ::
## ! Default is (0.5, 0.5) - images draw centered.
defaultImageAnchorX*: cfloat
defaultImageAnchorY*: cfloat
impl*: ptr RendererImpl"><wbr />Renderer<span class="attachedType"></span></a></li>
<li><a class="reference" href="#Target"
title="Target {.bycopy.} = object
renderer*: ptr Renderer
contextTarget*: ptr Target
image*: ptr Image
data*: pointer
w*: Uint16
h*: Uint16
usingVirtualResolution*: Bool
baseW*: Uint16 ## ::
## The true dimensions of the underlying image or window
baseH*: Uint16 ## ::
## The true dimensions of the underlying image or window
useClipRect*: Bool
clipRect*: Rect
useColor*: Bool
color*: Color
viewport*: Rect ## ::
## ! Perspective and object viewing transforms.
matrixMode*: cint
projectionMatrix*: MatrixStack
viewMatrix*: MatrixStack
modelMatrix*: MatrixStack
camera*: Camera
useCamera*: Bool
useDepthTest*: Bool
useDepthWrite*: Bool
depthFunction*: ComparisonEnum ## ::
## ! Renderer context data. NULL if the target does not represent a window or rendering context.
context*: ptr Context
refcount*: cint
isAlias*: Bool"><wbr />Target<span class="attachedType"></span></a></li>
<li><a class="reference" href="#Rect"
title="Rect {.bycopy.} = object
x*: cfloat
y*: cfloat
w*: cfloat
h*: cfloat"><wbr />Rect<span class="attachedType"></span></a></li>
<li><a class="reference" href="#RendererEnum"
title="RendererEnum = Uint32"><wbr />Renderer<wbr />Enum<span class="attachedType"></span></a></li>
<li><a class="reference" href="#RendererID"
title="RendererID {.bycopy.} = object
name*: cstring
renderer*: RendererEnum
majorVersion*: cint
minorVersion*: cint"><wbr />Renderer<wbr />ID<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BlendMode"
title="BlendMode {.bycopy.} = object
sourceColor*: BlendFuncEnum
destColor*: BlendFuncEnum
sourceAlpha*: BlendFuncEnum
destAlpha*: BlendFuncEnum
colorEquation*: BlendEqEnum
alphaEquation*: BlendEqEnum"><wbr />Blend<wbr />Mode<span class="attachedType"></span></a></li>
<li><a class="reference" href="#Image"
title="Image {.bycopy.} = object
renderer*: ptr Renderer
contextTarget*: ptr Target
target*: ptr Target
w*: Uint16
h*: Uint16
usingVirtualResolution*: Bool
format*: FormatEnum
numLayers*: cint
bytesPerPixel*: cint
baseW*: Uint16 ## ::
## Original image dimensions
baseH*: Uint16 ## ::
## Original image dimensions
textureW*: Uint16 ## ::
## Underlying texture dimensions
textureH*: Uint16 ## ::
## Underlying texture dimensions
hasMipmaps*: Bool
anchorX*: cfloat ## ::
## Normalized coords for the point at which the image is blitted. Default is (0.5, 0.5), that is, the image is drawn centered.
anchorY*: cfloat ## ::
## These are interpreted according to GPU_SetCoordinateMode() and range from (0.0 - 1.0) normally.
color*: Color
useBlending*: Bool
blendMode*: BlendMode
filterMode*: FilterEnum
snapMode*: SnapEnum
wrapModeX*: WrapEnum
wrapModeY*: WrapEnum
data*: pointer
refcount*: cint
isAlias*: Bool"><wbr />Image<span class="attachedType"></span></a></li>
<li><a class="reference" href="#TextureHandle"
title="TextureHandle = ptr uint"><wbr />Texture<wbr />Handle<span class="attachedType"></span></a></li>
<li><a class="reference" href="#Camera"
title="Camera {.bycopy.} = object
x*: cfloat
y*: cfloat
z*: cfloat
angle*: cfloat
zoomX*: cfloat
zoomY*: cfloat
zNear*: cfloat ## ::
## z clipping planes
zFar*: cfloat ## ::
## z clipping planes
useCenteredOrigin*: Bool ## ::
## move rotation/scaling origin to the center of the camera&apos;s view"><wbr />Camera<span class="attachedType"></span></a></li>
<li><a class="reference" href="#ShaderBlock"
title="ShaderBlock {.bycopy.} = object
positionLoc*: cint
texcoordLoc*: cint
colorLoc*: cint ## ::
## Uniforms
modelViewProjectionLoc*: cint"><wbr />Shader<wbr />Block<span class="attachedType"></span></a></li>
<li><a class="reference" href="#MatrixStack"
title="MatrixStack {.bycopy.} = object
storageSize*: cuint
size*: cuint
matrix*: ptr ptr cfloat"><wbr />Matrix<wbr />Stack<span class="attachedType"></span></a></li>
<li><a class="reference" href="#Context"
title="Context {.bycopy.} = object
context*: pointer
failed*: Bool ## ::
## ! SDL window ID
windowID*: Uint32 ## ::
## ! Actual window dimensions
windowW*: cint
windowH*: cint ## ::
## ! Drawable region dimensions
drawableW*: cint
drawableH*: cint ## ::
## ! Window dimensions for restoring windowed mode after GPU_SetFullscreen(1,1).
storedWindowW*: cint
storedWindowH*: cint ## ::
## ! Last target used
activeTarget*: ptr Target ## ::
## ! Internal state
currentShaderProgram*: Uint32
defaultTexturedShaderProgram*: Uint32
defaultUntexturedShaderProgram*: Uint32
currentShaderBlock*: ShaderBlock
defaultTexturedShaderBlock*: ShaderBlock
defaultUntexturedShaderBlock*: ShaderBlock
shapesUseBlending*: Bool
shapesBlendMode*: BlendMode
lineThickness*: cfloat
useTexturing*: Bool
refcount*: cint
data*: pointer"><wbr />Context<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FeatureEnum"
title="FeatureEnum = Uint32"><wbr />Feature<wbr />Enum<span class="attachedType"></span></a></li>
<li><a class="reference" href="#InitFlagEnum"
title="InitFlagEnum = Uint32"><wbr />Init<wbr />Flag<wbr />Enum<span class="attachedType"></span></a></li>
<li><a class="reference" href="#PrimitiveEnum"
title="PrimitiveEnum = Uint32"><wbr />Primitive<wbr />Enum<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BatchFlagEnum"
title="BatchFlagEnum = Uint32"><wbr />Batch<wbr />Flag<wbr />Enum<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FlipEnum"
title="FlipEnum = Uint32"><wbr />Flip<wbr />Enum<span class="attachedType"></span></a></li>
<li><a class="reference" href="#TypeEnum"
title="TypeEnum = Uint32"><wbr />Type<wbr />Enum<span class="attachedType"></span></a></li>
<li><a class="reference" href="#AttributeFormat"
title="AttributeFormat {.bycopy.} = object
isPerSprite*: Bool ## ::
## Per-sprite values are expanded to 4 vertices
numElemsPerValue*: cint
kind*: TypeEnum ## ::
## GPU_TYPE_FLOAT, GPU_TYPE_INT, GPU_TYPE_UNSIGNED_INT, etc.
normalize*: Bool
strideBytes*: cint ## ::
## Number of bytes between two vertex specifications
offsetBytes*: cint ## ::
## Number of bytes to skip at the beginning of &apos;values&apos;"><wbr />Attribute<wbr />Format<span class="attachedType"></span></a></li>
<li><a class="reference" href="#Attribute"
title="Attribute {.bycopy.} = object
location*: cint
values*: pointer ## ::
## Expect 4 values for each sprite
format*: AttributeFormat"><wbr />Attribute<span class="attachedType"></span></a></li>
<li><a class="reference" href="#AttributeSource"
title="AttributeSource {.bycopy.} = object
enabled*: Bool
numValues*: cint
nextValue*: pointer ## ::
## Automatic storage format
perVertexStorageStrideBytes*: cint
perVertexStorageOffsetBytes*: cint
perVertexStorageSize*: cint ## ::
## Over 0 means that the per-vertex storage has been automatically allocated
perVertexStorage*: pointer ## ::
## Could point to the attribute&apos;s values or to allocated storage
attribute*: Attribute"><wbr />Attribute<wbr />Source<span class="attachedType"></span></a></li>
<li><a class="reference" href="#ErrorObject"
title="ErrorObject {.bycopy.} = object
function*: cstring
error*: ErrorEnum
details*: cstring"><wbr />Error<wbr />Object<span class="attachedType"></span></a></li>
<li><a class="reference" href="#RendererImpl"
title="RendererImpl {.incompleteStruct.} = object"><wbr />Renderer<wbr />Impl<span class="attachedType"></span></a></li>
</ul>
</li>
<li>
<a class="reference reference-toplevel" href="#10" id="60">Consts</a>
<ul class="simple simple-toc-section">
<li><a class="reference" href="#SDLgpuStd"
title="SDLgpuStd = false"><wbr />SDLgpu<wbr />Std<span class="attachedType"></span></a></li>
<li><a class="reference" href="#SDLgpuGit"
title="SDLgpuGit = true"><wbr />SDLgpu<wbr />Git<span class="attachedType"></span></a></li>
<li><a class="reference" href="#SDLgpuDL"
title="SDLgpuDL = false"><wbr />SDLgpu<wbr />DL<span class="attachedType"></span></a></li>
<li><a class="reference" href="#SDLgpuStatic"
title="SDLgpuStatic = true"><wbr />SDLgpu<wbr />Static<span class="attachedType"></span></a></li>
<li><a class="reference" href="#SDLgpuSetVer"
title="SDLgpuSetVer = &quot;&quot;"><wbr />SDLgpu<wbr />Set<wbr />Ver<span class="attachedType"></span></a></li>
<li><a class="reference" href="#SDLgpuLPath"
title="SDLgpuLPath = &quot;/Users/joey/Projects/nim-sdl2/src/build/sdl2_gpu/buildcache/SDL_gpu-0.11.0/lib/libSDL2_gpu.a&quot;"><wbr />SDLgpu<wbr />LPath<span class="attachedType"></span></a></li>
<li><a class="reference" href="#SDLgpuPath"
title="SDLgpuPath = &quot;/Users/joey/Projects/nim-sdl2/src/build/sdl2_gpu/include/SDL_gpu.h&quot;"><wbr />SDLgpu<wbr />Path<span class="attachedType"></span></a></li>
<li><a class="reference" href="#NONE"
title="NONE = 0&apos;u"><wbr />NONE<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FEATURE_NON_POWER_OF_TWO"
title="FEATURE_NON_POWER_OF_TWO = 1&apos;u"><wbr />FEATURE_<wbr />NON_<wbr />POWER_<wbr />OF_<wbr />TWO<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FEATURE_RENDER_TARGETS"
title="FEATURE_RENDER_TARGETS = 2&apos;u"><wbr />FEATURE_<wbr />RENDER_<wbr />TARGETS<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FEATURE_BLEND_EQUATIONS"
title="FEATURE_BLEND_EQUATIONS = 4&apos;u"><wbr />FEATURE_<wbr />BLEND_<wbr />EQUATIONS<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FEATURE_BLEND_FUNC_SEPARATE"
title="FEATURE_BLEND_FUNC_SEPARATE = 8&apos;u"><wbr />FEATURE_<wbr />BLEND_<wbr />FUNC_<wbr />SEPARATE<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FEATURE_BLEND_EQUATIONS_SEPARATE"
title="FEATURE_BLEND_EQUATIONS_SEPARATE = 16&apos;u"><wbr />FEATURE_<wbr />BLEND_<wbr />EQUATIONS_<wbr />SEPARATE<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FEATURE_GL_BGR"
title="FEATURE_GL_BGR = 32&apos;u"><wbr />FEATURE_<wbr />GL_<wbr />BGR<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FEATURE_GL_BGRA"
title="FEATURE_GL_BGRA = 64&apos;u"><wbr />FEATURE_<wbr />GL_<wbr />BGRA<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FEATURE_GL_ABGR"
title="FEATURE_GL_ABGR = 128&apos;u"><wbr />FEATURE_<wbr />GL_<wbr />ABGR<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FEATURE_VERTEX_SHADER"
title="FEATURE_VERTEX_SHADER = 256&apos;u"><wbr />FEATURE_<wbr />VERTEX_<wbr />SHADER<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FEATURE_FRAGMENT_SHADER"
title="FEATURE_FRAGMENT_SHADER = 512&apos;u"><wbr />FEATURE_<wbr />FRAGMENT_<wbr />SHADER<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FEATURE_PIXEL_SHADER"
title="FEATURE_PIXEL_SHADER = 512&apos;u"><wbr />FEATURE_<wbr />PIXEL_<wbr />SHADER<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FEATURE_GEOMETRY_SHADER"
title="FEATURE_GEOMETRY_SHADER = 1024&apos;u"><wbr />FEATURE_<wbr />GEOMETRY_<wbr />SHADER<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FEATURE_WRAP_REPEAT_MIRRORED"
title="FEATURE_WRAP_REPEAT_MIRRORED = 2048&apos;u"><wbr />FEATURE_<wbr />WRAP_<wbr />REPEAT_<wbr />MIRRORED<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FEATURE_CORE_FRAMEBUFFER_OBJECTS"
title="FEATURE_CORE_FRAMEBUFFER_OBJECTS = 4096&apos;u"><wbr />FEATURE_<wbr />CORE_<wbr />FRAMEBUFFER_<wbr />OBJECTS<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FEATURE_ALL_BASE"
title="FEATURE_ALL_BASE = 2&apos;u"><wbr />FEATURE_<wbr />ALL_<wbr />BASE<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FEATURE_ALL_BLEND_PRESETS"
title="FEATURE_ALL_BLEND_PRESETS = 12&apos;u32"><wbr />FEATURE_<wbr />ALL_<wbr />BLEND_<wbr />PRESETS<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FEATURE_ALL_GL_FORMATS"
title="FEATURE_ALL_GL_FORMATS = 224&apos;u32"><wbr />FEATURE_<wbr />ALL_<wbr />GL_<wbr />FORMATS<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FEATURE_BASIC_SHADERS"
title="FEATURE_BASIC_SHADERS = 768&apos;u32"><wbr />FEATURE_<wbr />BASIC_<wbr />SHADERS<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FEATURE_ALL_SHADERS"
title="FEATURE_ALL_SHADERS = 1792&apos;u32"><wbr />FEATURE_<wbr />ALL_<wbr />SHADERS<span class="attachedType"></span></a></li>
<li><a class="reference" href="#INIT_ENABLE_VSYNC"
title="INIT_ENABLE_VSYNC = 1&apos;u"><wbr />INIT_<wbr />ENABLE_<wbr />VSYNC<span class="attachedType"></span></a></li>
<li><a class="reference" href="#INIT_DISABLE_VSYNC"
title="INIT_DISABLE_VSYNC = 2&apos;u"><wbr />INIT_<wbr />DISABLE_<wbr />VSYNC<span class="attachedType"></span></a></li>
<li><a class="reference" href="#INIT_DISABLE_DOUBLE_BUFFER"
title="INIT_DISABLE_DOUBLE_BUFFER = 4&apos;u"><wbr />INIT_<wbr />DISABLE_<wbr />DOUBLE_<wbr />BUFFER<span class="attachedType"></span></a></li>
<li><a class="reference" href="#INIT_DISABLE_AUTO_VIRTUAL_RESOLUTION"
title="INIT_DISABLE_AUTO_VIRTUAL_RESOLUTION = 8&apos;u"><wbr />INIT_<wbr />DISABLE_<wbr />AUTO_<wbr />VIRTUAL_<wbr />RESOLUTION<span class="attachedType"></span></a></li>
<li><a class="reference" href="#INIT_REQUEST_COMPATIBILITY_PROFILE"
title="INIT_REQUEST_COMPATIBILITY_PROFILE = 16&apos;u"><wbr />INIT_<wbr />REQUEST_<wbr />COMPATIBILITY_<wbr />PROFILE<span class="attachedType"></span></a></li>
<li><a class="reference" href="#INIT_USE_ROW_BY_ROW_TEXTURE_UPLOAD_FALLBACK"
title="INIT_USE_ROW_BY_ROW_TEXTURE_UPLOAD_FALLBACK = 32&apos;u"><wbr />INIT_<wbr />USE_<wbr />ROW_<wbr />BY_<wbr />ROW_<wbr />TEXTURE_<wbr />UPLOAD_<wbr />FALLBACK<span class="attachedType"></span></a></li>
<li><a class="reference" href="#INIT_USE_COPY_TEXTURE_UPLOAD_FALLBACK"
title="INIT_USE_COPY_TEXTURE_UPLOAD_FALLBACK = 64&apos;u"><wbr />INIT_<wbr />USE_<wbr />COPY_<wbr />TEXTURE_<wbr />UPLOAD_<wbr />FALLBACK<span class="attachedType"></span></a></li>
<li><a class="reference" href="#POINTS"
title="POINTS = 0&apos;u"><wbr />POINTS<span class="attachedType"></span></a></li>
<li><a class="reference" href="#LINES"
title="LINES = 1&apos;u"><wbr />LINES<span class="attachedType"></span></a></li>
<li><a class="reference" href="#LINE_LOOP"
title="LINE_LOOP = 2&apos;u"><wbr />LINE_<wbr />LOOP<span class="attachedType"></span></a></li>
<li><a class="reference" href="#LINE_STRIP"
title="LINE_STRIP = 3&apos;u"><wbr />LINE_<wbr />STRIP<span class="attachedType"></span></a></li>
<li><a class="reference" href="#TRIANGLES"
title="TRIANGLES = 4&apos;u"><wbr />TRIANGLES<span class="attachedType"></span></a></li>
<li><a class="reference" href="#TRIANGLE_STRIP"
title="TRIANGLE_STRIP = 5&apos;u"><wbr />TRIANGLE_<wbr />STRIP<span class="attachedType"></span></a></li>
<li><a class="reference" href="#TRIANGLE_FAN"
title="TRIANGLE_FAN = 6&apos;u"><wbr />TRIANGLE_<wbr />FAN<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BATCH_XY"
title="BATCH_XY = 1&apos;u"><wbr />BATCH_<wbr />XY<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BATCH_XYZ"
title="BATCH_XYZ = 2&apos;u"><wbr />BATCH_<wbr />XYZ<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BATCH_ST"
title="BATCH_ST = 4&apos;u"><wbr />BATCH_<wbr />ST<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BATCH_RGB"
title="BATCH_RGB = 8&apos;u"><wbr />BATCH_<wbr />RGB<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BATCH_RGBA"
title="BATCH_RGBA = 16&apos;u"><wbr />BATCH_<wbr />RGBA<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BATCH_RGB8"
title="BATCH_RGB8 = 32&apos;u"><wbr />BATCH_<wbr />RGB8<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BATCH_RGBA8"
title="BATCH_RGBA8 = 64&apos;u"><wbr />BATCH_<wbr />RGBA8<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BATCH_XY_ST"
title="BATCH_XY_ST = 5&apos;u32"><wbr />BATCH_<wbr />XY_<wbr />ST<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BATCH_XYZ_ST"
title="BATCH_XYZ_ST = 6&apos;u32"><wbr />BATCH_<wbr />XYZ_<wbr />ST<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BATCH_XY_RGB"
title="BATCH_XY_RGB = 9&apos;u32"><wbr />BATCH_<wbr />XY_<wbr />RGB<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BATCH_XYZ_RGB"
title="BATCH_XYZ_RGB = 10&apos;u32"><wbr />BATCH_<wbr />XYZ_<wbr />RGB<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BATCH_XY_RGBA"
title="BATCH_XY_RGBA = 17&apos;u32"><wbr />BATCH_<wbr />XY_<wbr />RGBA<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BATCH_XYZ_RGBA"
title="BATCH_XYZ_RGBA = 18&apos;u32"><wbr />BATCH_<wbr />XYZ_<wbr />RGBA<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BATCH_XY_ST_RGBA"
title="BATCH_XY_ST_RGBA = 21&apos;u32"><wbr />BATCH_<wbr />XY_<wbr />ST_<wbr />RGBA<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BATCH_XYZ_ST_RGBA"
title="BATCH_XYZ_ST_RGBA = 22&apos;u32"><wbr />BATCH_<wbr />XYZ_<wbr />ST_<wbr />RGBA<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BATCH_XY_RGB8"
title="BATCH_XY_RGB8 = 33&apos;u32"><wbr />BATCH_<wbr />XY_<wbr />RGB8<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BATCH_XYZ_RGB8"
title="BATCH_XYZ_RGB8 = 34&apos;u32"><wbr />BATCH_<wbr />XYZ_<wbr />RGB8<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BATCH_XY_RGBA8"
title="BATCH_XY_RGBA8 = 65&apos;u32"><wbr />BATCH_<wbr />XY_<wbr />RGBA8<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BATCH_XYZ_RGBA8"
title="BATCH_XYZ_RGBA8 = 66&apos;u32"><wbr />BATCH_<wbr />XYZ_<wbr />RGBA8<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BATCH_XY_ST_RGBA8"
title="BATCH_XY_ST_RGBA8 = 69&apos;u32"><wbr />BATCH_<wbr />XY_<wbr />ST_<wbr />RGBA8<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BATCH_XYZ_ST_RGBA8"
title="BATCH_XYZ_ST_RGBA8 = 70&apos;u32"><wbr />BATCH_<wbr />XYZ_<wbr />ST_<wbr />RGBA8<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FLIP_NONE"
title="FLIP_NONE = 0&apos;u"><wbr />FLIP_<wbr />NONE<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FLIP_HORIZONTAL"
title="FLIP_HORIZONTAL = 1&apos;u"><wbr />FLIP_<wbr />HORIZONTAL<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FLIP_VERTICAL"
title="FLIP_VERTICAL = 2&apos;u"><wbr />FLIP_<wbr />VERTICAL<span class="attachedType"></span></a></li>
<li><a class="reference" href="#TYPE_BYTE"
title="TYPE_BYTE = 5120&apos;u"><wbr />TYPE_<wbr />BYTE<span class="attachedType"></span></a></li>
<li><a class="reference" href="#TYPE_UNSIGNED_BYTE"
title="TYPE_UNSIGNED_BYTE = 5121&apos;u"><wbr />TYPE_<wbr />UNSIGNED_<wbr />BYTE<span class="attachedType"></span></a></li>
<li><a class="reference" href="#TYPE_SHORT"
title="TYPE_SHORT = 5122&apos;u"><wbr />TYPE_<wbr />SHORT<span class="attachedType"></span></a></li>
<li><a class="reference" href="#TYPE_UNSIGNED_SHORT"
title="TYPE_UNSIGNED_SHORT = 5123&apos;u"><wbr />TYPE_<wbr />UNSIGNED_<wbr />SHORT<span class="attachedType"></span></a></li>
<li><a class="reference" href="#TYPE_INT"
title="TYPE_INT = 5124&apos;u"><wbr />TYPE_<wbr />INT<span class="attachedType"></span></a></li>
<li><a class="reference" href="#TYPE_UNSIGNED_INT"
title="TYPE_UNSIGNED_INT = 5125&apos;u"><wbr />TYPE_<wbr />UNSIGNED_<wbr />INT<span class="attachedType"></span></a></li>
<li><a class="reference" href="#TYPE_FLOAT"
title="TYPE_FLOAT = 5126&apos;u"><wbr />TYPE_<wbr />FLOAT<span class="attachedType"></span></a></li>
<li><a class="reference" href="#TYPE_DOUBLE"
title="TYPE_DOUBLE = 5130&apos;u"><wbr />TYPE_<wbr />DOUBLE<span class="attachedType"></span></a></li>
<li><a class="reference" href="#RENDERER_UNKNOWN"
title="RENDERER_UNKNOWN = 0&apos;u"><wbr />RENDERER_<wbr />UNKNOWN<span class="attachedType"></span></a></li>
<li><a class="reference" href="#RENDERER_OPENGL_1_BASE"
title="RENDERER_OPENGL_1_BASE = 1&apos;u"><wbr />RENDERER_<wbr />OPENGL_<wbr />1_<wbr />BASE<span class="attachedType"></span></a></li>
<li><a class="reference" href="#RENDERER_OPENGL_1"
title="RENDERER_OPENGL_1 = 2&apos;u"><wbr />RENDERER_<wbr />OPENGL_<wbr />1<span class="attachedType"></span></a></li>
<li><a class="reference" href="#RENDERER_OPENGL_2"
title="RENDERER_OPENGL_2 = 3&apos;u"><wbr />RENDERER_<wbr />OPENGL_<wbr />2<span class="attachedType"></span></a></li>
<li><a class="reference" href="#RENDERER_OPENGL_3"
title="RENDERER_OPENGL_3 = 4&apos;u"><wbr />RENDERER_<wbr />OPENGL_<wbr />3<span class="attachedType"></span></a></li>
<li><a class="reference" href="#RENDERER_OPENGL_4"
title="RENDERER_OPENGL_4 = 5&apos;u"><wbr />RENDERER_<wbr />OPENGL_<wbr />4<span class="attachedType"></span></a></li>
<li><a class="reference" href="#RENDERER_GLES_1"
title="RENDERER_GLES_1 = 11&apos;u"><wbr />RENDERER_<wbr />GLES_<wbr />1<span class="attachedType"></span></a></li>
<li><a class="reference" href="#RENDERER_GLES_2"
title="RENDERER_GLES_2 = 12&apos;u"><wbr />RENDERER_<wbr />GLES_<wbr />2<span class="attachedType"></span></a></li>
<li><a class="reference" href="#RENDERER_GLES_3"
title="RENDERER_GLES_3 = 13&apos;u"><wbr />RENDERER_<wbr />GLES_<wbr />3<span class="attachedType"></span></a></li>
<li><a class="reference" href="#RENDERER_D3D9"
title="RENDERER_D3D9 = 21&apos;u"><wbr />RENDERER_<wbr />D3D9<span class="attachedType"></span></a></li>
<li><a class="reference" href="#RENDERER_D3D10"
title="RENDERER_D3D10 = 22&apos;u"><wbr />RENDERER_<wbr />D3D10<span class="attachedType"></span></a></li>
<li><a class="reference" href="#RENDERER_D3D11"
title="RENDERER_D3D11 = 23&apos;u"><wbr />RENDERER_<wbr />D3D11<span class="attachedType"></span></a></li>
<li><a class="reference" href="#GPU_VERSION_MAJOR"
title="GPU_VERSION_MAJOR = 0"><wbr />GPU_<wbr />VERSION_<wbr />MAJOR<span class="attachedType"></span></a></li>
<li><a class="reference" href="#GPU_VERSION_MINOR"
title="GPU_VERSION_MINOR = 11"><wbr />GPU_<wbr />VERSION_<wbr />MINOR<span class="attachedType"></span></a></li>
<li><a class="reference" href="#GPU_VERSION_PATCH"
title="GPU_VERSION_PATCH = 0"><wbr />GPU_<wbr />VERSION_<wbr />PATCH<span class="attachedType"></span></a></li>
<li><a class="reference" href="#HAVE_STDC"
title="HAVE_STDC = 1"><wbr />HAVE_<wbr />STDC<span class="attachedType"></span></a></li>
<li><a class="reference" href="#HAVE_GNUC"
title="HAVE_GNUC = 1"><wbr />HAVE_<wbr />GNUC<span class="attachedType"></span></a></li>
<li><a class="reference" href="#HAVE_MSVC"
title="HAVE_MSVC = 0"><wbr />HAVE_<wbr />MSVC<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FALSE"
title="FALSE = 0"><wbr />FALSE<span class="attachedType"></span></a></li>
<li><a class="reference" href="#TRUE"
title="TRUE = 1"><wbr />TRUE<span class="attachedType"></span></a></li>
<li><a class="reference" href="#RENDERER_ORDER_MAX"
title="RENDERER_ORDER_MAX = 10"><wbr />RENDERER_<wbr />ORDER_<wbr />MAX<span class="attachedType"></span></a></li>
<li><a class="reference" href="#RENDERER_CUSTOM_0"
title="RENDERER_CUSTOM_0 = 1000"><wbr />RENDERER_<wbr />CUSTOM_<wbr />0<span class="attachedType"></span></a></li>
<li><a class="reference" href="#NEVER"
title="NEVER = 512&apos;i32"><wbr />NEVER<span class="attachedType"></span></a></li>
<li><a class="reference" href="#LESS"
title="LESS = 513&apos;i32"><wbr />LESS<span class="attachedType"></span></a></li>
<li><a class="reference" href="#EQUAL"
title="EQUAL = 514&apos;i32"><wbr />EQUAL<span class="attachedType"></span></a></li>
<li><a class="reference" href="#LEQUAL"
title="LEQUAL = 515&apos;i32"><wbr />LEQUAL<span class="attachedType"></span></a></li>
<li><a class="reference" href="#GREATER"
title="GREATER = 516&apos;i32"><wbr />GREATER<span class="attachedType"></span></a></li>
<li><a class="reference" href="#NOTEQUAL"
title="NOTEQUAL = 517&apos;i32"><wbr />NOTEQUAL<span class="attachedType"></span></a></li>
<li><a class="reference" href="#GEQUAL"
title="GEQUAL = 518&apos;i32"><wbr />GEQUAL<span class="attachedType"></span></a></li>
<li><a class="reference" href="#ALWAYS"
title="ALWAYS = 519&apos;i32"><wbr />ALWAYS<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FUNC_ZERO"
title="FUNC_ZERO = 0&apos;i32"><wbr />FUNC_<wbr />ZERO<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FUNC_ONE"
title="FUNC_ONE = 1&apos;i32"><wbr />FUNC_<wbr />ONE<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FUNC_SRC_COLOR"
title="FUNC_SRC_COLOR = 768&apos;i32"><wbr />FUNC_<wbr />SRC_<wbr />COLOR<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FUNC_DST_COLOR"
title="FUNC_DST_COLOR = 774&apos;i32"><wbr />FUNC_<wbr />DST_<wbr />COLOR<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FUNC_ONE_MINUS_SRC"
title="FUNC_ONE_MINUS_SRC = 769&apos;i32"><wbr />FUNC_<wbr />ONE_<wbr />MINUS_<wbr />SRC<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FUNC_ONE_MINUS_DST"
title="FUNC_ONE_MINUS_DST = 775&apos;i32"><wbr />FUNC_<wbr />ONE_<wbr />MINUS_<wbr />DST<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FUNC_SRC_ALPHA"
title="FUNC_SRC_ALPHA = 770&apos;i32"><wbr />FUNC_<wbr />SRC_<wbr />ALPHA<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FUNC_DST_ALPHA"
title="FUNC_DST_ALPHA = 772&apos;i32"><wbr />FUNC_<wbr />DST_<wbr />ALPHA<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FUNC_ONE_MINUS_SRC_ALPHA"
title="FUNC_ONE_MINUS_SRC_ALPHA = 771&apos;i32"><wbr />FUNC_<wbr />ONE_<wbr />MINUS_<wbr />SRC_<wbr />ALPHA<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FUNC_ONE_MINUS_DST_ALPHA"
title="FUNC_ONE_MINUS_DST_ALPHA = 773&apos;i32"><wbr />FUNC_<wbr />ONE_<wbr />MINUS_<wbr />DST_<wbr />ALPHA<span class="attachedType"></span></a></li>
<li><a class="reference" href="#EQ_ADD"
title="EQ_ADD = 32774&apos;i32"><wbr />EQ_<wbr />ADD<span class="attachedType"></span></a></li>
<li><a class="reference" href="#EQ_SUBTRACT"
title="EQ_SUBTRACT = 32778&apos;i32"><wbr />EQ_<wbr />SUBTRACT<span class="attachedType"></span></a></li>
<li><a class="reference" href="#EQ_REVERSE_SUBTRACT"
title="EQ_REVERSE_SUBTRACT = 32779&apos;i32"><wbr />EQ_<wbr />REVERSE_<wbr />SUBTRACT<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BLEND_NORMAL"
title="BLEND_NORMAL = 0&apos;i32"><wbr />BLEND_<wbr />NORMAL<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BLEND_PREMULTIPLIED_ALPHA"
title="BLEND_PREMULTIPLIED_ALPHA = 1&apos;i32"><wbr />BLEND_<wbr />PREMULTIPLIED_<wbr />ALPHA<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BLEND_MULTIPLY"
title="BLEND_MULTIPLY = 2&apos;i32"><wbr />BLEND_<wbr />MULTIPLY<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BLEND_ADD"
title="BLEND_ADD = 3&apos;i32"><wbr />BLEND_<wbr />ADD<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BLEND_SUBTRACT"
title="BLEND_SUBTRACT = 4&apos;i32"><wbr />BLEND_<wbr />SUBTRACT<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BLEND_MOD_ALPHA"
title="BLEND_MOD_ALPHA = 5&apos;i32"><wbr />BLEND_<wbr />MOD_<wbr />ALPHA<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BLEND_SET_ALPHA"
title="BLEND_SET_ALPHA = 6&apos;i32"><wbr />BLEND_<wbr />SET_<wbr />ALPHA<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BLEND_SET"
title="BLEND_SET = 7&apos;i32"><wbr />BLEND_<wbr />SET<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BLEND_NORMAL_KEEP_ALPHA"
title="BLEND_NORMAL_KEEP_ALPHA = 8&apos;i32"><wbr />BLEND_<wbr />NORMAL_<wbr />KEEP_<wbr />ALPHA<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BLEND_NORMAL_ADD_ALPHA"
title="BLEND_NORMAL_ADD_ALPHA = 9&apos;i32"><wbr />BLEND_<wbr />NORMAL_<wbr />ADD_<wbr />ALPHA<span class="attachedType"></span></a></li>
<li><a class="reference" href="#BLEND_NORMAL_FACTOR_ALPHA"
title="BLEND_NORMAL_FACTOR_ALPHA = 10&apos;i32"><wbr />BLEND_<wbr />NORMAL_<wbr />FACTOR_<wbr />ALPHA<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FILTER_NEAREST"
title="FILTER_NEAREST = 0&apos;i32"><wbr />FILTER_<wbr />NEAREST<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FILTER_LINEAR"
title="FILTER_LINEAR = 1&apos;i32"><wbr />FILTER_<wbr />LINEAR<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FILTER_LINEAR_MIPMAP"
title="FILTER_LINEAR_MIPMAP = 2&apos;i32"><wbr />FILTER_<wbr />LINEAR_<wbr />MIPMAP<span class="attachedType"></span></a></li>
<li><a class="reference" href="#SNAP_NONE"
title="SNAP_NONE = 0&apos;i32"><wbr />SNAP_<wbr />NONE<span class="attachedType"></span></a></li>
<li><a class="reference" href="#SNAP_POSITION"
title="SNAP_POSITION = 1&apos;i32"><wbr />SNAP_<wbr />POSITION<span class="attachedType"></span></a></li>
<li><a class="reference" href="#SNAP_DIMENSIONS"
title="SNAP_DIMENSIONS = 2&apos;i32"><wbr />SNAP_<wbr />DIMENSIONS<span class="attachedType"></span></a></li>
<li><a class="reference" href="#SNAP_POSITION_AND_DIMENSIONS"
title="SNAP_POSITION_AND_DIMENSIONS = 3&apos;i32"><wbr />SNAP_<wbr />POSITION_<wbr />AND_<wbr />DIMENSIONS<span class="attachedType"></span></a></li>
<li><a class="reference" href="#WRAP_NONE"
title="WRAP_NONE = 0&apos;i32"><wbr />WRAP_<wbr />NONE<span class="attachedType"></span></a></li>
<li><a class="reference" href="#WRAP_REPEAT"
title="WRAP_REPEAT = 1&apos;i32"><wbr />WRAP_<wbr />REPEAT<span class="attachedType"></span></a></li>
<li><a class="reference" href="#WRAP_MIRRORED"
title="WRAP_MIRRORED = 2&apos;i32"><wbr />WRAP_<wbr />MIRRORED<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FORMAT_LUMINANCE"
title="FORMAT_LUMINANCE = 1&apos;i32"><wbr />FORMAT_<wbr />LUMINANCE<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FORMAT_LUMINANCE_ALPHA"
title="FORMAT_LUMINANCE_ALPHA = 2&apos;i32"><wbr />FORMAT_<wbr />LUMINANCE_<wbr />ALPHA<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FORMAT_RGB"
title="FORMAT_RGB = 3&apos;i32"><wbr />FORMAT_<wbr />RGB<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FORMAT_RGBA"
title="FORMAT_RGBA = 4&apos;i32"><wbr />FORMAT_<wbr />RGBA<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FORMAT_ALPHA"
title="FORMAT_ALPHA = 5&apos;i32"><wbr />FORMAT_<wbr />ALPHA<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FORMAT_RG"
title="FORMAT_RG = 6&apos;i32"><wbr />FORMAT_<wbr />RG<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FORMAT_YCbCr422"
title="FORMAT_YCbCr422 = 7&apos;i32"><wbr />FORMAT_<wbr />YCb<wbr />Cr422<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FORMAT_YCbCr420P"
title="FORMAT_YCbCr420P = 8&apos;i32"><wbr />FORMAT_<wbr />YCb<wbr />Cr420P<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FORMAT_BGR"
title="FORMAT_BGR = 9&apos;i32"><wbr />FORMAT_<wbr />BGR<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FORMAT_BGRA"
title="FORMAT_BGRA = 10&apos;i32"><wbr />FORMAT_<wbr />BGRA<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FORMAT_ABGR"
title="FORMAT_ABGR = 11&apos;i32"><wbr />FORMAT_<wbr />ABGR<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FILE_AUTO"
title="FILE_AUTO = 0&apos;i32"><wbr />FILE_<wbr />AUTO<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FILE_PNG"
title="FILE_PNG = 1"><wbr />FILE_<wbr />PNG<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FILE_BMP"
title="FILE_BMP = 2"><wbr />FILE_<wbr />BMP<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FILE_TGA"
title="FILE_TGA = 3"><wbr />FILE_<wbr />TGA<span class="attachedType"></span></a></li>
<li><a class="reference" href="#MODEL"
title="MODEL = 0"><wbr />MODEL<span class="attachedType"></span></a></li>
<li><a class="reference" href="#VIEW"
title="VIEW = 1"><wbr />VIEW<span class="attachedType"></span></a></li>
<li><a class="reference" href="#PROJECTION"
title="PROJECTION = 2"><wbr />PROJECTION<span class="attachedType"></span></a></li>
<li><a class="reference" href="#DEFAULT_INIT_FLAGS"
title="DEFAULT_INIT_FLAGS = 0"><wbr />DEFAULT_<wbr />INIT_<wbr />FLAGS<span class="attachedType"></span></a></li>
<li><a class="reference" href="#VERTEX_SHADER"
title="VERTEX_SHADER = 0&apos;i32"><wbr />VERTEX_<wbr />SHADER<span class="attachedType"></span></a></li>
<li><a class="reference" href="#FRAGMENT_SHADER"
title="FRAGMENT_SHADER = 1&apos;i32"><wbr />FRAGMENT_<wbr />SHADER<span class="attachedType"></span></a></li>
<li><a class="reference" href="#PIXEL_SHADER"
title="PIXEL_SHADER = 1&apos;i32"><wbr />PIXEL_<wbr />SHADER<span class="attachedType"></span></a></li>
<li><a class="reference" href="#GEOMETRY_SHADER"
title="GEOMETRY_SHADER = 2&apos;i32"><wbr />GEOMETRY_<wbr />SHADER<span class="attachedType"></span></a></li>
<li><a class="reference" href="#LANGUAGE_NONE"
title="LANGUAGE_NONE = 0&apos;i32"><wbr />LANGUAGE_<wbr />NONE<span class="attachedType"></span></a></li>
<li><a class="reference" href="#LANGUAGE_ARB_ASSEMBLY"
title="LANGUAGE_ARB_ASSEMBLY = 1&apos;i32"><wbr />LANGUAGE_<wbr />ARB_<wbr />ASSEMBLY<span class="attachedType"></span></a></li>
<li><a class="reference" href="#LANGUAGE_GLSL"
title="LANGUAGE_GLSL = 2&apos;i32"><wbr />LANGUAGE_<wbr />GLSL<span class="attachedType"></span></a></li>
<li><a class="reference" href="#LANGUAGE_GLSLES"
title="LANGUAGE_GLSLES = 3&apos;i32"><wbr />LANGUAGE_<wbr />GLSLES<span class="attachedType"></span></a></li>
<li><a class="reference" href="#LANGUAGE_HLSL"
title="LANGUAGE_HLSL = 4&apos;i32"><wbr />LANGUAGE_<wbr />HLSL<span class="attachedType"></span></a></li>
<li><a class="reference" href="#LANGUAGE_CG"
title="LANGUAGE_CG = 5&apos;i32"><wbr />LANGUAGE_<wbr />CG<span class="attachedType"></span></a></li>
<li><a class="reference" href="#ERROR_NONE"
title="ERROR_NONE = 0&apos;i32"><wbr />ERROR_<wbr />NONE<span class="attachedType"></span></a></li>
<li><a class="reference" href="#ERROR_BACKEND_ERROR"
title="ERROR_BACKEND_ERROR = 1&apos;i32"><wbr />ERROR_<wbr />BACKEND_<wbr />ERROR<span class="attachedType"></span></a></li>
<li><a class="reference" href="#ERROR_DATA_ERROR"
title="ERROR_DATA_ERROR = 2&apos;i32"><wbr />ERROR_<wbr />DATA_<wbr />ERROR<span class="attachedType"></span></a></li>
<li><a class="reference" href="#ERROR_USER_ERROR"
title="ERROR_USER_ERROR = 3&apos;i32"><wbr />ERROR_<wbr />USER_<wbr />ERROR<span class="attachedType"></span></a></li>
<li><a class="reference" href="#ERROR_UNSUPPORTED_FUNCTION"
title="ERROR_UNSUPPORTED_FUNCTION = 4&apos;i32"><wbr />ERROR_<wbr />UNSUPPORTED_<wbr />FUNCTION<span class="attachedType"></span></a></li>
<li><a class="reference" href="#ERROR_NULL_ARGUMENT"
title="ERROR_NULL_ARGUMENT = 5&apos;i32"><wbr />ERROR_<wbr />NULL_<wbr />ARGUMENT<span class="attachedType"></span></a></li>
<li><a class="reference" href="#ERROR_FILE_NOT_FOUND"
title="ERROR_FILE_NOT_FOUND = 6&apos;i32"><wbr />ERROR_<wbr />FILE_<wbr />NOT_<wbr />FOUND<span class="attachedType"></span></a></li>
<li><a class="reference" href="#DEBUG_LEVEL_0"
title="DEBUG_LEVEL_0 = 0&apos;i32"><wbr />DEBUG_<wbr />LEVEL_<wbr />0<span class="attachedType"></span></a></li>
<li><a class="reference" href="#DEBUG_LEVEL_1"
title="DEBUG_LEVEL_1 = 1&apos;i32"><wbr />DEBUG_<wbr />LEVEL_<wbr />1<span class="attachedType"></span></a></li>
<li><a class="reference" href="#DEBUG_LEVEL_2"
title="DEBUG_LEVEL_2 = 2&apos;i32"><wbr />DEBUG_<wbr />LEVEL_<wbr />2<span class="attachedType"></span></a></li>
<li><a class="reference" href="#DEBUG_LEVEL_3"
title="DEBUG_LEVEL_3 = 3&apos;i32"><wbr />DEBUG_<wbr />LEVEL_<wbr />3<span class="attachedType"></span></a></li>
<li><a class="reference" href="#DEBUG_LEVEL_MAX"
title="DEBUG_LEVEL_MAX = 3&apos;i32"><wbr />DEBUG_<wbr />LEVEL_<wbr />MAX<span class="attachedType"></span></a></li>
</ul>
</li>
<li>
<a class="reference reference-toplevel" href="#12" id="62">Procs</a>
<ul class="simple simple-toc-section">
<li><a class="reference" href="#getLinkedVersion"
title="getLinkedVersion(): Version"><wbr />get<wbr />Linked<wbr />Version<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setInitWindow%2CUint32"
title="setInitWindow(windowID: Uint32)"><wbr />set<wbr />Init<wbr />Window<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getInitWindow"
title="getInitWindow(): Uint32"><wbr />get<wbr />Init<wbr />Window<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setPreInitFlags%2CInitFlagEnum"
title="setPreInitFlags(flags: InitFlagEnum)"><wbr />set<wbr />Pre<wbr />Init<wbr />Flags<span class="attachedType">InitFlagEnum</span></a></li>
<li><a class="reference" href="#getPreInitFlags"
title="getPreInitFlags(): InitFlagEnum"><wbr />get<wbr />Pre<wbr />Init<wbr />Flags<span class="attachedType">InitFlagEnum</span></a></li>
<li><a class="reference" href="#setRequiredFeatures%2CFeatureEnum"
title="setRequiredFeatures(features: FeatureEnum)"><wbr />set<wbr />Required<wbr />Features<span class="attachedType">FeatureEnum</span></a></li>
<li><a class="reference" href="#getRequiredFeatures"
title="getRequiredFeatures(): FeatureEnum"><wbr />get<wbr />Required<wbr />Features<span class="attachedType">FeatureEnum</span></a></li>
<li><a class="reference" href="#getDefaultRendererOrder%2Cptr.cint%2Cptr.RendererID"
title="getDefaultRendererOrder(orderSize: ptr cint; order: ptr RendererID)"><wbr />get<wbr />Default<wbr />Renderer<wbr />Order<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getRendererOrder%2Cptr.cint%2Cptr.RendererID"
title="getRendererOrder(orderSize: ptr cint; order: ptr RendererID)"><wbr />get<wbr />Renderer<wbr />Order<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setRendererOrder%2Ccint%2Cptr.RendererID"
title="setRendererOrder(orderSize: cint; order: ptr RendererID)"><wbr />set<wbr />Renderer<wbr />Order<span class="attachedType"></span></a></li>
<li><a class="reference" href="#init%2CUint16%2CUint16%2CWindowFlags"
title="init(w: Uint16; h: Uint16; flags: WindowFlagEnum): ptr Target"><wbr />init<span class="attachedType">WindowFlagEnum</span></a></li>
<li><a class="reference" href="#initRenderer%2CRendererEnum%2CUint16%2CUint16%2CWindowFlags"
title="initRenderer(rendererEnum: RendererEnum; w: Uint16; h: Uint16; flags: WindowFlagEnum): ptr Target"><wbr />init<wbr />Renderer<span class="attachedType">RendererEnum</span></a></li>
<li><a class="reference" href="#initRendererByID%2CRendererID%2CUint16%2CUint16%2CWindowFlags"
title="initRendererByID(rendererRequest: RendererID; w: Uint16; h: Uint16;
flags: WindowFlagEnum): ptr Target"><wbr />init<wbr />Renderer<wbr />By<wbr />ID<span class="attachedType">WindowFlagEnum</span></a></li>
<li><a class="reference" href="#isFeatureEnabled%2CFeatureEnum"
title="isFeatureEnabled(feature: FeatureEnum): Bool"><wbr />is<wbr />Feature<wbr />Enabled<span class="attachedType">FeatureEnum</span></a></li>
<li><a class="reference" href="#closeCurrentRenderer"
title="closeCurrentRenderer()"><wbr />close<wbr />Current<wbr />Renderer<span class="attachedType"></span></a></li>
<li><a class="reference" href="#quit"
title="quit()"><wbr />quit<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setDebugLevel%2CDebugLevelEnum"
title="setDebugLevel(level: DebugLevelEnum)"><wbr />set<wbr />Debug<wbr />Level<span class="attachedType">DebugLevelEnum</span></a></li>
<li><a class="reference" href="#getDebugLevel"
title="getDebugLevel(): DebugLevelEnum"><wbr />get<wbr />Debug<wbr />Level<span class="attachedType">DebugLevelEnum</span></a></li>
<li><a class="reference" href="#logInfo%2Ccstring"
title="logInfo(format: cstring)"><wbr />log<wbr />Info<span class="attachedType"></span></a></li>
<li><a class="reference" href="#logWarning%2Ccstring"
title="logWarning(format: cstring)"><wbr />log<wbr />Warning<span class="attachedType"></span></a></li>
<li><a class="reference" href="#logError%2Ccstring"
title="logError(format: cstring)"><wbr />log<wbr />Error<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setLogCallback%2Cproc%28LogLevelEnum%2Ccstring%2Cva_list%29"
title="setLogCallback(callback: proc (logLevel: LogLevelEnum; format: cstring; args: va_list): cint {.
cdecl.})"><wbr />set<wbr />Log<wbr />Callback<span class="attachedType">LogLevelEnum</span></a></li>
<li><a class="reference" href="#pushErrorCode%2Ccstring%2CErrorEnum%2Ccstring"
title="pushErrorCode(function: cstring; error: ErrorEnum; details: cstring)"><wbr />push<wbr />Error<wbr />Code<span class="attachedType">ErrorEnum</span></a></li>
<li><a class="reference" href="#popErrorCode"
title="popErrorCode(): ErrorObject"><wbr />pop<wbr />Error<wbr />Code<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getErrorString%2CErrorEnum"
title="getErrorString(error: ErrorEnum): cstring"><wbr />get<wbr />Error<wbr />String<span class="attachedType">ErrorEnum</span></a></li>
<li><a class="reference" href="#setErrorQueueMax%2Ccuint"
title="setErrorQueueMax(max: cuint)"><wbr />set<wbr />Error<wbr />Queue<wbr />Max<span class="attachedType"></span></a></li>
<li><a class="reference" href="#makeRendererID%2Ccstring%2CRendererEnum%2Ccint%2Ccint"
title="makeRendererID(name: cstring; renderer: RendererEnum; majorVersion: cint;
minorVersion: cint): RendererID"><wbr />make<wbr />Renderer<wbr />ID<span class="attachedType">RendererEnum</span></a></li>
<li><a class="reference" href="#getRendererID%2CRendererEnum"
title="getRendererID(renderer: RendererEnum): RendererID"><wbr />get<wbr />Renderer<wbr />ID<span class="attachedType">RendererEnum</span></a></li>
<li><a class="reference" href="#getNumRegisteredRenderers"
title="getNumRegisteredRenderers(): cint"><wbr />get<wbr />Num<wbr />Registered<wbr />Renderers<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getRegisteredRendererList%2Cptr.RendererID"
title="getRegisteredRendererList(renderersArray: ptr RendererID)"><wbr />get<wbr />Registered<wbr />Renderer<wbr />List<span class="attachedType"></span></a></li>
<li><a class="reference" href="#registerRenderer%2CRendererID%2Cproc%28RendererID%29%2Cproc%28ptr.Renderer%29"
title="registerRenderer(id: RendererID; createRenderer: proc (request: RendererID): ptr Renderer {.
cdecl.}; freeRenderer: proc (renderer: ptr Renderer) {.cdecl.})"><wbr />register<wbr />Renderer<span class="attachedType"></span></a></li>
<li><a class="reference" href="#reserveNextRendererEnum"
title="reserveNextRendererEnum(): RendererEnum"><wbr />reserve<wbr />Next<wbr />Renderer<wbr />Enum<span class="attachedType">RendererEnum</span></a></li>
<li><a class="reference" href="#getNumActiveRenderers"
title="getNumActiveRenderers(): cint"><wbr />get<wbr />Num<wbr />Active<wbr />Renderers<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getActiveRendererList%2Cptr.RendererID"
title="getActiveRendererList(renderersArray: ptr RendererID)"><wbr />get<wbr />Active<wbr />Renderer<wbr />List<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getCurrentRenderer"
title="getCurrentRenderer(): ptr Renderer"><wbr />get<wbr />Current<wbr />Renderer<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setCurrentRenderer%2CRendererID"
title="setCurrentRenderer(id: RendererID)"><wbr />set<wbr />Current<wbr />Renderer<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getRenderer%2CRendererID"
title="getRenderer(id: RendererID): ptr Renderer"><wbr />get<wbr />Renderer<span class="attachedType"></span></a></li>
<li><a class="reference" href="#freeRenderer%2Cptr.Renderer"
title="freeRenderer(renderer: ptr Renderer)"><wbr />free<wbr />Renderer<span class="attachedType"></span></a></li>
<li><a class="reference" href="#resetRendererState"
title="resetRendererState()"><wbr />reset<wbr />Renderer<wbr />State<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setCoordinateMode%2CBool"
title="setCoordinateMode(useMathCoords: Bool)"><wbr />set<wbr />Coordinate<wbr />Mode<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getCoordinateMode"
title="getCoordinateMode(): Bool"><wbr />get<wbr />Coordinate<wbr />Mode<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setDefaultAnchor%2Ccfloat%2Ccfloat"
title="setDefaultAnchor(anchorX: cfloat; anchorY: cfloat)"><wbr />set<wbr />Default<wbr />Anchor<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getDefaultAnchor%2Cptr.cfloat%2Cptr.cfloat"
title="getDefaultAnchor(anchorX: ptr cfloat; anchorY: ptr cfloat)"><wbr />get<wbr />Default<wbr />Anchor<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getContextTarget"
title="getContextTarget(): ptr Target"><wbr />get<wbr />Context<wbr />Target<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getWindowTarget%2CUint32"
title="getWindowTarget(windowID: Uint32): ptr Target"><wbr />get<wbr />Window<wbr />Target<span class="attachedType"></span></a></li>
<li><a class="reference" href="#createTargetFromWindow%2CUint32"
title="createTargetFromWindow(windowID: Uint32): ptr Target"><wbr />create<wbr />Target<wbr />From<wbr />Window<span class="attachedType"></span></a></li>
<li><a class="reference" href="#makeCurrent%2Cptr.Target%2CUint32"
title="makeCurrent(target: ptr Target; windowID: Uint32)"><wbr />make<wbr />Current<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setWindowResolution%2CUint16%2CUint16"
title="setWindowResolution(w: Uint16; h: Uint16): Bool"><wbr />set<wbr />Window<wbr />Resolution<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setFullscreen%2CBool%2CBool"
title="setFullscreen(enableFullscreen: Bool; useDesktopResolution: Bool): Bool"><wbr />set<wbr />Fullscreen<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getFullscreen"
title="getFullscreen(): Bool"><wbr />get<wbr />Fullscreen<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getActiveTarget"
title="getActiveTarget(): ptr Target"><wbr />get<wbr />Active<wbr />Target<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setActiveTarget%2Cptr.Target"
title="setActiveTarget(target: ptr Target): Bool"><wbr />set<wbr />Active<wbr />Target<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setShapeBlending%2CBool"
title="setShapeBlending(enable: Bool)"><wbr />set<wbr />Shape<wbr />Blending<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getBlendModeFromPreset%2CBlendPresetEnum"
title="getBlendModeFromPreset(preset: BlendPresetEnum): BlendMode"><wbr />get<wbr />Blend<wbr />Mode<wbr />From<wbr />Preset<span class="attachedType">BlendPresetEnum</span></a></li>
<li><a class="reference" href="#setShapeBlendFunction%2CBlendFuncEnum%2CBlendFuncEnum%2CBlendFuncEnum%2CBlendFuncEnum"
title="setShapeBlendFunction(sourceColor: BlendFuncEnum; destColor: BlendFuncEnum;
sourceAlpha: BlendFuncEnum; destAlpha: BlendFuncEnum)"><wbr />set<wbr />Shape<wbr />Blend<wbr />Function<span class="attachedType">BlendFuncEnum</span></a></li>
<li><a class="reference" href="#setShapeBlendEquation%2CBlendEqEnum%2CBlendEqEnum"
title="setShapeBlendEquation(colorEquation: BlendEqEnum; alphaEquation: BlendEqEnum)"><wbr />set<wbr />Shape<wbr />Blend<wbr />Equation<span class="attachedType">BlendEqEnum</span></a></li>
<li><a class="reference" href="#setShapeBlendMode%2CBlendPresetEnum"
title="setShapeBlendMode(mode: BlendPresetEnum)"><wbr />set<wbr />Shape<wbr />Blend<wbr />Mode<span class="attachedType">BlendPresetEnum</span></a></li>
<li><a class="reference" href="#setLineThickness%2Ccfloat"
title="setLineThickness(thickness: cfloat): cfloat"><wbr />set<wbr />Line<wbr />Thickness<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getLineThickness"
title="getLineThickness(): cfloat"><wbr />get<wbr />Line<wbr />Thickness<span class="attachedType"></span></a></li>
<li><a class="reference" href="#createAliasTarget%2Cptr.Target"
title="createAliasTarget(target: ptr Target): ptr Target"><wbr />create<wbr />Alias<wbr />Target<span class="attachedType"></span></a></li>
<li><a class="reference" href="#loadTarget%2Cptr.Image"
title="loadTarget(image: ptr Image): ptr Target"><wbr />load<wbr />Target<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getTarget%2Cptr.Image"
title="getTarget(image: ptr Image): ptr Target"><wbr />get<wbr />Target<span class="attachedType"></span></a></li>
<li><a class="reference" href="#freeTarget%2Cptr.Target"
title="freeTarget(target: ptr Target)"><wbr />free<wbr />Target<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setVirtualResolution%2Cptr.Target%2CUint16%2CUint16"
title="setVirtualResolution(target: ptr Target; w: Uint16; h: Uint16)"><wbr />set<wbr />Virtual<wbr />Resolution<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getVirtualResolution%2Cptr.Target%2Cptr.Uint16%2Cptr.Uint16"
title="getVirtualResolution(target: ptr Target; w: ptr Uint16; h: ptr Uint16)"><wbr />get<wbr />Virtual<wbr />Resolution<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getVirtualCoords%2Cptr.Target%2Cptr.cfloat%2Cptr.cfloat%2Ccfloat%2Ccfloat"
title="getVirtualCoords(target: ptr Target; x: ptr cfloat; y: ptr cfloat; displayX: cfloat;
displayY: cfloat)"><wbr />get<wbr />Virtual<wbr />Coords<span class="attachedType"></span></a></li>
<li><a class="reference" href="#unsetVirtualResolution%2Cptr.Target"
title="unsetVirtualResolution(target: ptr Target)"><wbr />unset<wbr />Virtual<wbr />Resolution<span class="attachedType"></span></a></li>
<li><a class="reference" href="#makeRect%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"
title="makeRect(x: cfloat; y: cfloat; w: cfloat; h: cfloat): Rect"><wbr />make<wbr />Rect<span class="attachedType"></span></a></li>
<li><a class="reference" href="#makeColor%2CUint8%2CUint8%2CUint8%2CUint8"
title="makeColor(r: Uint8; g: Uint8; b: Uint8; a: Uint8): Color"><wbr />make<wbr />Color<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setViewport%2Cptr.Target%2CRect"
title="setViewport(target: ptr Target; viewport: Rect)"><wbr />set<wbr />Viewport<span class="attachedType"></span></a></li>
<li><a class="reference" href="#unsetViewport%2Cptr.Target"
title="unsetViewport(target: ptr Target)"><wbr />unset<wbr />Viewport<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getDefaultCamera"
title="getDefaultCamera(): Camera"><wbr />get<wbr />Default<wbr />Camera<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getCamera%2Cptr.Target"
title="getCamera(target: ptr Target): Camera"><wbr />get<wbr />Camera<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setCamera%2Cptr.Target%2Cptr.Camera"
title="setCamera(target: ptr Target; cam: ptr Camera): Camera"><wbr />set<wbr />Camera<span class="attachedType"></span></a></li>
<li><a class="reference" href="#enableCamera%2Cptr.Target%2CBool"
title="enableCamera(target: ptr Target; useCamera: Bool)"><wbr />enable<wbr />Camera<span class="attachedType"></span></a></li>
<li><a class="reference" href="#isCameraEnabled%2Cptr.Target"
title="isCameraEnabled(target: ptr Target): Bool"><wbr />is<wbr />Camera<wbr />Enabled<span class="attachedType"></span></a></li>
<li><a class="reference" href="#addDepthBuffer%2Cptr.Target"
title="addDepthBuffer(target: ptr Target): Bool"><wbr />add<wbr />Depth<wbr />Buffer<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setDepthTest%2Cptr.Target%2CBool"
title="setDepthTest(target: ptr Target; enable: Bool)"><wbr />set<wbr />Depth<wbr />Test<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setDepthWrite%2Cptr.Target%2CBool"
title="setDepthWrite(target: ptr Target; enable: Bool)"><wbr />set<wbr />Depth<wbr />Write<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setDepthFunction%2Cptr.Target%2CComparisonEnum"
title="setDepthFunction(target: ptr Target; compareOperation: ComparisonEnum)"><wbr />set<wbr />Depth<wbr />Function<span class="attachedType">ComparisonEnum</span></a></li>
<li><a class="reference" href="#getPixel%2Cptr.Target%2CSint16%2CSint16"
title="getPixel(target: ptr Target; x: Sint16; y: Sint16): Color"><wbr />get<wbr />Pixel<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setClipRect%2Cptr.Target%2CRect"
title="setClipRect(target: ptr Target; rect: Rect): Rect"><wbr />set<wbr />Clip<wbr />Rect<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setClip%2Cptr.Target%2CSint16%2CSint16%2CUint16%2CUint16"
title="setClip(target: ptr Target; x: Sint16; y: Sint16; w: Uint16; h: Uint16): Rect"><wbr />set<wbr />Clip<span class="attachedType"></span></a></li>
<li><a class="reference" href="#unsetClip%2Cptr.Target"
title="unsetClip(target: ptr Target)"><wbr />unset<wbr />Clip<span class="attachedType"></span></a></li>
<li><a class="reference" href="#intersectRect%2CRect%2CRect%2Cptr.Rect"
title="intersectRect(A: Rect; B: Rect; result: ptr Rect): Bool"><wbr />intersect<wbr />Rect<span class="attachedType"></span></a></li>
<li><a class="reference" href="#intersectClipRect%2Cptr.Target%2CRect%2Cptr.Rect"
title="intersectClipRect(target: ptr Target; B: Rect; result: ptr Rect): Bool"><wbr />intersect<wbr />Clip<wbr />Rect<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setTargetColor%2Cptr.Target%2CColor"
title="setTargetColor(target: ptr Target; color: Color)"><wbr />set<wbr />Target<wbr />Color<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setTargetRGB%2Cptr.Target%2CUint8%2CUint8%2CUint8"
title="setTargetRGB(target: ptr Target; r: Uint8; g: Uint8; b: Uint8)"><wbr />set<wbr />Target<wbr />RGB<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setTargetRGBA%2Cptr.Target%2CUint8%2CUint8%2CUint8%2CUint8"
title="setTargetRGBA(target: ptr Target; r: Uint8; g: Uint8; b: Uint8; a: Uint8)"><wbr />set<wbr />Target<wbr />RGBA<span class="attachedType"></span></a></li>
<li><a class="reference" href="#unsetTargetColor%2Cptr.Target"
title="unsetTargetColor(target: ptr Target)"><wbr />unset<wbr />Target<wbr />Color<span class="attachedType"></span></a></li>
<li><a class="reference" href="#loadSurface%2Ccstring"
title="loadSurface(filename: cstring): ptr Surface"><wbr />load<wbr />Surface<span class="attachedType"></span></a></li>
<li><a class="reference" href="#loadSurface_RW%2Cptr.RWops%2CBool"
title="loadSurface_RW(rwops: ptr RWops; freeRwops: Bool): ptr Surface"><wbr />load<wbr />Surface_<wbr />RW<span class="attachedType"></span></a></li>
<li><a class="reference" href="#saveSurface%2Cptr.Surface%2Ccstring%2CFileFormatEnum"
title="saveSurface(surface: ptr Surface; filename: cstring; format: FileFormatEnum): Bool"><wbr />save<wbr />Surface<span class="attachedType">FileFormatEnum</span></a></li>
<li><a class="reference" href="#saveSurface_RW%2Cptr.Surface%2Cptr.RWops%2CBool%2CFileFormatEnum"
title="saveSurface_RW(surface: ptr Surface; rwops: ptr RWops; freeRwops: Bool;
format: FileFormatEnum): Bool"><wbr />save<wbr />Surface_<wbr />RW<span class="attachedType">FileFormatEnum</span></a></li>
<li><a class="reference" href="#createImage%2CUint16%2CUint16%2CFormatEnum"
title="createImage(w: Uint16; h: Uint16; format: FormatEnum): ptr Image"><wbr />create<wbr />Image<span class="attachedType">FormatEnum</span></a></li>
<li><a class="reference" href="#createImageUsingTexture%2CTextureHandle%2CBool"
title="createImageUsingTexture(handle: TextureHandle; takeOwnership: Bool): ptr Image"><wbr />create<wbr />Image<wbr />Using<wbr />Texture<span class="attachedType">TextureHandle</span></a></li>
<li><a class="reference" href="#loadImage%2Ccstring"
title="loadImage(filename: cstring): ptr Image"><wbr />load<wbr />Image<span class="attachedType"></span></a></li>
<li><a class="reference" href="#loadImage_RW%2Cptr.RWops%2CBool"
title="loadImage_RW(rwops: ptr RWops; freeRwops: Bool): ptr Image"><wbr />load<wbr />Image_<wbr />RW<span class="attachedType"></span></a></li>
<li><a class="reference" href="#createAliasImage%2Cptr.Image"
title="createAliasImage(image: ptr Image): ptr Image"><wbr />create<wbr />Alias<wbr />Image<span class="attachedType"></span></a></li>
<li><a class="reference" href="#copyImage%2Cptr.Image"
title="copyImage(image: ptr Image): ptr Image"><wbr />copy<wbr />Image<span class="attachedType"></span></a></li>
<li><a class="reference" href="#freeImage%2Cptr.Image"
title="freeImage(image: ptr Image)"><wbr />free<wbr />Image<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setImageVirtualResolution%2Cptr.Image%2CUint16%2CUint16"
title="setImageVirtualResolution(image: ptr Image; w: Uint16; h: Uint16)"><wbr />set<wbr />Image<wbr />Virtual<wbr />Resolution<span class="attachedType"></span></a></li>
<li><a class="reference" href="#unsetImageVirtualResolution%2Cptr.Image"
title="unsetImageVirtualResolution(image: ptr Image)"><wbr />unset<wbr />Image<wbr />Virtual<wbr />Resolution<span class="attachedType"></span></a></li>
<li><a class="reference" href="#updateImage%2Cptr.Image%2Cptr.Rect%2Cptr.Surface%2Cptr.Rect"
title="updateImage(image: ptr Image; imageRect: ptr Rect; surface: ptr Surface;
surfaceRect: ptr Rect)"><wbr />update<wbr />Image<span class="attachedType"></span></a></li>
<li><a class="reference" href="#updateImageBytes%2Cptr.Image%2Cptr.Rect%2Cptr.cuchar%2Ccint"
title="updateImageBytes(image: ptr Image; imageRect: ptr Rect; bytes: ptr cuchar;
bytesPerRow: cint)"><wbr />update<wbr />Image<wbr />Bytes<span class="attachedType"></span></a></li>
<li><a class="reference" href="#replaceImage%2Cptr.Image%2Cptr.Surface%2Cptr.Rect"
title="replaceImage(image: ptr Image; surface: ptr Surface; surfaceRect: ptr Rect): Bool"><wbr />replace<wbr />Image<span class="attachedType"></span></a></li>
<li><a class="reference" href="#saveImage%2Cptr.Image%2Ccstring%2CFileFormatEnum"
title="saveImage(image: ptr Image; filename: cstring; format: FileFormatEnum): Bool"><wbr />save<wbr />Image<span class="attachedType">FileFormatEnum</span></a></li>
<li><a class="reference" href="#saveImage_RW%2Cptr.Image%2Cptr.RWops%2CBool%2CFileFormatEnum"
title="saveImage_RW(image: ptr Image; rwops: ptr RWops; freeRwops: Bool; format: FileFormatEnum): Bool"><wbr />save<wbr />Image_<wbr />RW<span class="attachedType">FileFormatEnum</span></a></li>
<li><a class="reference" href="#generateMipmaps%2Cptr.Image"
title="generateMipmaps(image: ptr Image)"><wbr />generate<wbr />Mipmaps<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setColor%2Cptr.Image%2CColor"
title="setColor(image: ptr Image; color: Color)"><wbr />set<wbr />Color<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setRGB%2Cptr.Image%2CUint8%2CUint8%2CUint8"
title="setRGB(image: ptr Image; r: Uint8; g: Uint8; b: Uint8)"><wbr />set<wbr />RGB<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setRGBA%2Cptr.Image%2CUint8%2CUint8%2CUint8%2CUint8"
title="setRGBA(image: ptr Image; r: Uint8; g: Uint8; b: Uint8; a: Uint8)"><wbr />set<wbr />RGBA<span class="attachedType"></span></a></li>
<li><a class="reference" href="#unsetColor%2Cptr.Image"
title="unsetColor(image: ptr Image)"><wbr />unset<wbr />Color<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getBlending%2Cptr.Image"
title="getBlending(image: ptr Image): Bool"><wbr />get<wbr />Blending<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setBlending%2Cptr.Image%2CBool"
title="setBlending(image: ptr Image; enable: Bool)"><wbr />set<wbr />Blending<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setBlendFunction%2Cptr.Image%2CBlendFuncEnum%2CBlendFuncEnum%2CBlendFuncEnum%2CBlendFuncEnum"
title="setBlendFunction(image: ptr Image; sourceColor: BlendFuncEnum;
destColor: BlendFuncEnum; sourceAlpha: BlendFuncEnum;
destAlpha: BlendFuncEnum)"><wbr />set<wbr />Blend<wbr />Function<span class="attachedType">BlendFuncEnum</span></a></li>
<li><a class="reference" href="#setBlendEquation%2Cptr.Image%2CBlendEqEnum%2CBlendEqEnum"
title="setBlendEquation(image: ptr Image; colorEquation: BlendEqEnum;
alphaEquation: BlendEqEnum)"><wbr />set<wbr />Blend<wbr />Equation<span class="attachedType">BlendEqEnum</span></a></li>
<li><a class="reference" href="#setBlendMode%2Cptr.Image%2CBlendPresetEnum"
title="setBlendMode(image: ptr Image; mode: BlendPresetEnum)"><wbr />set<wbr />Blend<wbr />Mode<span class="attachedType">BlendPresetEnum</span></a></li>
<li><a class="reference" href="#setImageFilter%2Cptr.Image%2CFilterEnum"
title="setImageFilter(image: ptr Image; filter: FilterEnum)"><wbr />set<wbr />Image<wbr />Filter<span class="attachedType">FilterEnum</span></a></li>
<li><a class="reference" href="#setAnchor%2Cptr.Image%2Ccfloat%2Ccfloat"
title="setAnchor(image: ptr Image; anchorX: cfloat; anchorY: cfloat)"><wbr />set<wbr />Anchor<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getAnchor%2Cptr.Image%2Cptr.cfloat%2Cptr.cfloat"
title="getAnchor(image: ptr Image; anchorX: ptr cfloat; anchorY: ptr cfloat)"><wbr />get<wbr />Anchor<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getSnapMode%2Cptr.Image"
title="getSnapMode(image: ptr Image): SnapEnum"><wbr />get<wbr />Snap<wbr />Mode<span class="attachedType">SnapEnum</span></a></li>
<li><a class="reference" href="#setSnapMode%2Cptr.Image%2CSnapEnum"
title="setSnapMode(image: ptr Image; mode: SnapEnum)"><wbr />set<wbr />Snap<wbr />Mode<span class="attachedType">SnapEnum</span></a></li>
<li><a class="reference" href="#setWrapMode%2Cptr.Image%2CWrapEnum%2CWrapEnum"
title="setWrapMode(image: ptr Image; wrapModeX: WrapEnum; wrapModeY: WrapEnum)"><wbr />set<wbr />Wrap<wbr />Mode<span class="attachedType">WrapEnum</span></a></li>
<li><a class="reference" href="#getTextureHandle%2Cptr.Image"
title="getTextureHandle(image: ptr Image): TextureHandle"><wbr />get<wbr />Texture<wbr />Handle<span class="attachedType">TextureHandle</span></a></li>
<li><a class="reference" href="#copyImageFromSurface%2Cptr.Surface"
title="copyImageFromSurface(surface: ptr Surface): ptr Image"><wbr />copy<wbr />Image<wbr />From<wbr />Surface<span class="attachedType"></span></a></li>
<li><a class="reference" href="#copyImageFromTarget%2Cptr.Target"
title="copyImageFromTarget(target: ptr Target): ptr Image"><wbr />copy<wbr />Image<wbr />From<wbr />Target<span class="attachedType"></span></a></li>
<li><a class="reference" href="#copySurfaceFromTarget%2Cptr.Target"
title="copySurfaceFromTarget(target: ptr Target): ptr Surface"><wbr />copy<wbr />Surface<wbr />From<wbr />Target<span class="attachedType"></span></a></li>
<li><a class="reference" href="#copySurfaceFromImage%2Cptr.Image"
title="copySurfaceFromImage(image: ptr Image): ptr Surface"><wbr />copy<wbr />Surface<wbr />From<wbr />Image<span class="attachedType"></span></a></li>
<li><a class="reference" href="#vectorLength%2Cptr.cfloat"
title="vectorLength(vec3: ptr cfloat): cfloat"><wbr />vector<wbr />Length<span class="attachedType"></span></a></li>
<li><a class="reference" href="#vectorNormalize%2Cptr.cfloat"
title="vectorNormalize(vec3: ptr cfloat)"><wbr />vector<wbr />Normalize<span class="attachedType"></span></a></li>
<li><a class="reference" href="#vectorDot%2Cptr.cfloat%2Cptr.cfloat"
title="vectorDot(A: ptr cfloat; B: ptr cfloat): cfloat"><wbr />vector<wbr />Dot<span class="attachedType"></span></a></li>
<li><a class="reference" href="#vectorCross%2Cptr.cfloat%2Cptr.cfloat%2Cptr.cfloat"
title="vectorCross(result: ptr cfloat; A: ptr cfloat; B: ptr cfloat)"><wbr />vector<wbr />Cross<span class="attachedType"></span></a></li>
<li><a class="reference" href="#vectorCopy%2Cptr.cfloat%2Cptr.cfloat"
title="vectorCopy(result: ptr cfloat; A: ptr cfloat)"><wbr />vector<wbr />Copy<span class="attachedType"></span></a></li>
<li><a class="reference" href="#vectorApplyMatrix%2Cptr.cfloat%2Cptr.cfloat"
title="vectorApplyMatrix(vec3: ptr cfloat; matrix4x4: ptr cfloat)"><wbr />vector<wbr />Apply<wbr />Matrix<span class="attachedType"></span></a></li>
<li><a class="reference" href="#vector4ApplyMatrix%2Cptr.cfloat%2Cptr.cfloat"
title="vector4ApplyMatrix(vec4: ptr cfloat; matrix4x4: ptr cfloat)"><wbr />vector4Apply<wbr />Matrix<span class="attachedType"></span></a></li>
<li><a class="reference" href="#matrixCopy%2Cptr.cfloat%2Cptr.cfloat"
title="matrixCopy(result: ptr cfloat; A: ptr cfloat)"><wbr />matrix<wbr />Copy<span class="attachedType"></span></a></li>
<li><a class="reference" href="#matrixIdentity%2Cptr.cfloat"
title="matrixIdentity(result: ptr cfloat)"><wbr />matrix<wbr />Identity<span class="attachedType"></span></a></li>
<li><a class="reference" href="#matrixOrtho%2Cptr.cfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"
title="matrixOrtho(result: ptr cfloat; left: cfloat; right: cfloat; bottom: cfloat; top: cfloat;
zNear: cfloat; zFar: cfloat)"><wbr />matrix<wbr />Ortho<span class="attachedType"></span></a></li>
<li><a class="reference" href="#matrixFrustum%2Cptr.cfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"
title="matrixFrustum(result: ptr cfloat; left: cfloat; right: cfloat; bottom: cfloat;
top: cfloat; zNear: cfloat; zFar: cfloat)"><wbr />matrix<wbr />Frustum<span class="attachedType"></span></a></li>
<li><a class="reference" href="#matrixPerspective%2Cptr.cfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"
title="matrixPerspective(result: ptr cfloat; fovy: cfloat; aspect: cfloat; zNear: cfloat;
zFar: cfloat)"><wbr />matrix<wbr />Perspective<span class="attachedType"></span></a></li>
<li><a class="reference" href="#matrixLookAt%2Cptr.cfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"
title="matrixLookAt(matrix: ptr cfloat; eyeX: cfloat; eyeY: cfloat; eyeZ: cfloat;
targetX: cfloat; targetY: cfloat; targetZ: cfloat; upX: cfloat;
upY: cfloat; upZ: cfloat)"><wbr />matrix<wbr />Look<wbr />At<span class="attachedType"></span></a></li>
<li><a class="reference" href="#matrixTranslate%2Cptr.cfloat%2Ccfloat%2Ccfloat%2Ccfloat"
title="matrixTranslate(result: ptr cfloat; x: cfloat; y: cfloat; z: cfloat)"><wbr />matrix<wbr />Translate<span class="attachedType"></span></a></li>
<li><a class="reference" href="#matrixScale%2Cptr.cfloat%2Ccfloat%2Ccfloat%2Ccfloat"
title="matrixScale(result: ptr cfloat; sx: cfloat; sy: cfloat; sz: cfloat)"><wbr />matrix<wbr />Scale<span class="attachedType"></span></a></li>
<li><a class="reference" href="#matrixRotate%2Cptr.cfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"
title="matrixRotate(result: ptr cfloat; degrees: cfloat; x: cfloat; y: cfloat; z: cfloat)"><wbr />matrix<wbr />Rotate<span class="attachedType"></span></a></li>
<li><a class="reference" href="#matrixMultiply%2Cptr.cfloat%2Cptr.cfloat%2Cptr.cfloat"
title="matrixMultiply(result: ptr cfloat; A: ptr cfloat; B: ptr cfloat)"><wbr />matrix<wbr />Multiply<span class="attachedType"></span></a></li>
<li><a class="reference" href="#multiplyAndAssign%2Cptr.cfloat%2Cptr.cfloat"
title="multiplyAndAssign(result: ptr cfloat; B: ptr cfloat)"><wbr />multiply<wbr />And<wbr />Assign<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getMatrixString%2Cptr.cfloat"
title="getMatrixString(A: ptr cfloat): cstring"><wbr />get<wbr />Matrix<wbr />String<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getCurrentMatrix"
title="getCurrentMatrix(): ptr cfloat"><wbr />get<wbr />Current<wbr />Matrix<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getTopMatrix%2Cptr.MatrixStack"
title="getTopMatrix(stack: ptr MatrixStack): ptr cfloat"><wbr />get<wbr />Top<wbr />Matrix<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getModel"
title="getModel(): ptr cfloat"><wbr />get<wbr />Model<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getView"
title="getView(): ptr cfloat"><wbr />get<wbr />View<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getProjection"
title="getProjection(): ptr cfloat"><wbr />get<wbr />Projection<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getModelViewProjection%2Cptr.cfloat"
title="getModelViewProjection(result: ptr cfloat)"><wbr />get<wbr />Model<wbr />View<wbr />Projection<span class="attachedType"></span></a></li>
<li><a class="reference" href="#createMatrixStack"
title="createMatrixStack(): ptr MatrixStack"><wbr />create<wbr />Matrix<wbr />Stack<span class="attachedType"></span></a></li>
<li><a class="reference" href="#freeMatrixStack%2Cptr.MatrixStack"
title="freeMatrixStack(stack: ptr MatrixStack)"><wbr />free<wbr />Matrix<wbr />Stack<span class="attachedType"></span></a></li>
<li><a class="reference" href="#initMatrixStack%2Cptr.MatrixStack"
title="initMatrixStack(stack: ptr MatrixStack)"><wbr />init<wbr />Matrix<wbr />Stack<span class="attachedType"></span></a></li>
<li><a class="reference" href="#copyMatrixStack%2Cptr.MatrixStack%2Cptr.MatrixStack"
title="copyMatrixStack(source: ptr MatrixStack; dest: ptr MatrixStack)"><wbr />copy<wbr />Matrix<wbr />Stack<span class="attachedType"></span></a></li>
<li><a class="reference" href="#clearMatrixStack%2Cptr.MatrixStack"
title="clearMatrixStack(stack: ptr MatrixStack)"><wbr />clear<wbr />Matrix<wbr />Stack<span class="attachedType"></span></a></li>
<li><a class="reference" href="#resetProjection%2Cptr.Target"
title="resetProjection(target: ptr Target)"><wbr />reset<wbr />Projection<span class="attachedType"></span></a></li>
<li><a class="reference" href="#matrixMode%2Cptr.Target%2Ccint"
title="matrixMode(target: ptr Target; matrixMode: cint)"><wbr />matrix<wbr />Mode<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setProjection%2Cptr.cfloat"
title="setProjection(A: ptr cfloat)"><wbr />set<wbr />Projection<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setView%2Cptr.cfloat"
title="setView(A: ptr cfloat)"><wbr />set<wbr />View<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setModel%2Cptr.cfloat"
title="setModel(A: ptr cfloat)"><wbr />set<wbr />Model<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setProjectionFromStack%2Cptr.MatrixStack"
title="setProjectionFromStack(stack: ptr MatrixStack)"><wbr />set<wbr />Projection<wbr />From<wbr />Stack<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setViewFromStack%2Cptr.MatrixStack"
title="setViewFromStack(stack: ptr MatrixStack)"><wbr />set<wbr />View<wbr />From<wbr />Stack<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setModelFromStack%2Cptr.MatrixStack"
title="setModelFromStack(stack: ptr MatrixStack)"><wbr />set<wbr />Model<wbr />From<wbr />Stack<span class="attachedType"></span></a></li>
<li><a class="reference" href="#pushMatrix"
title="pushMatrix()"><wbr />push<wbr />Matrix<span class="attachedType"></span></a></li>
<li><a class="reference" href="#popMatrix"
title="popMatrix()"><wbr />pop<wbr />Matrix<span class="attachedType"></span></a></li>
<li><a class="reference" href="#loadIdentity"
title="loadIdentity()"><wbr />load<wbr />Identity<span class="attachedType"></span></a></li>
<li><a class="reference" href="#loadMatrix%2Cptr.cfloat"
title="loadMatrix(matrix4x4: ptr cfloat)"><wbr />load<wbr />Matrix<span class="attachedType"></span></a></li>
<li><a class="reference" href="#ortho%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"
title="ortho(left: cfloat; right: cfloat; bottom: cfloat; top: cfloat; zNear: cfloat;
zFar: cfloat)"><wbr />ortho<span class="attachedType"></span></a></li>
<li><a class="reference" href="#frustum%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"
title="frustum(left: cfloat; right: cfloat; bottom: cfloat; top: cfloat; zNear: cfloat;
zFar: cfloat)"><wbr />frustum<span class="attachedType"></span></a></li>
<li><a class="reference" href="#perspective%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"
title="perspective(fovy: cfloat; aspect: cfloat; zNear: cfloat; zFar: cfloat)"><wbr />perspective<span class="attachedType"></span></a></li>
<li><a class="reference" href="#lookAt%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"
title="lookAt(eyeX: cfloat; eyeY: cfloat; eyeZ: cfloat; targetX: cfloat; targetY: cfloat;
targetZ: cfloat; upX: cfloat; upY: cfloat; upZ: cfloat)"><wbr />look<wbr />At<span class="attachedType"></span></a></li>
<li><a class="reference" href="#translate%2Ccfloat%2Ccfloat%2Ccfloat"
title="translate(x: cfloat; y: cfloat; z: cfloat)"><wbr />translate<span class="attachedType"></span></a></li>
<li><a class="reference" href="#scale%2Ccfloat%2Ccfloat%2Ccfloat"
title="scale(sx: cfloat; sy: cfloat; sz: cfloat)"><wbr />scale<span class="attachedType"></span></a></li>
<li><a class="reference" href="#rotate%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"
title="rotate(degrees: cfloat; x: cfloat; y: cfloat; z: cfloat)"><wbr />rotate<span class="attachedType"></span></a></li>
<li><a class="reference" href="#multMatrix%2Cptr.cfloat"
title="multMatrix(matrix4x4: ptr cfloat)"><wbr />mult<wbr />Matrix<span class="attachedType"></span></a></li>
<li><a class="reference" href="#clear%2Cptr.Target"
title="clear(target: ptr Target)"><wbr />clear<span class="attachedType"></span></a></li>
<li><a class="reference" href="#clearColor%2Cptr.Target%2CColor"
title="clearColor(target: ptr Target; color: Color)"><wbr />clear<wbr />Color<span class="attachedType"></span></a></li>
<li><a class="reference" href="#clearRGB%2Cptr.Target%2CUint8%2CUint8%2CUint8"
title="clearRGB(target: ptr Target; r: Uint8; g: Uint8; b: Uint8)"><wbr />clear<wbr />RGB<span class="attachedType"></span></a></li>
<li><a class="reference" href="#clearRGBA%2Cptr.Target%2CUint8%2CUint8%2CUint8%2CUint8"
title="clearRGBA(target: ptr Target; r: Uint8; g: Uint8; b: Uint8; a: Uint8)"><wbr />clear<wbr />RGBA<span class="attachedType"></span></a></li>
<li><a class="reference" href="#blit%2Cptr.Image%2Cptr.Rect%2Cptr.Target%2Ccfloat%2Ccfloat"
title="blit(image: ptr Image; srcRect: ptr Rect; target: ptr Target; x: cfloat; y: cfloat)"><wbr />blit<span class="attachedType"></span></a></li>
<li><a class="reference" href="#blitRotate%2Cptr.Image%2Cptr.Rect%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat"
title="blitRotate(image: ptr Image; srcRect: ptr Rect; target: ptr Target; x: cfloat; y: cfloat;
degrees: cfloat)"><wbr />blit<wbr />Rotate<span class="attachedType"></span></a></li>
<li><a class="reference" href="#blitScale%2Cptr.Image%2Cptr.Rect%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"
title="blitScale(image: ptr Image; srcRect: ptr Rect; target: ptr Target; x: cfloat; y: cfloat;
scaleX: cfloat; scaleY: cfloat)"><wbr />blit<wbr />Scale<span class="attachedType"></span></a></li>
<li><a class="reference" href="#blitTransform%2Cptr.Image%2Cptr.Rect%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"
title="blitTransform(image: ptr Image; srcRect: ptr Rect; target: ptr Target; x: cfloat;
y: cfloat; degrees: cfloat; scaleX: cfloat; scaleY: cfloat)"><wbr />blit<wbr />Transform<span class="attachedType"></span></a></li>
<li><a class="reference" href="#blitTransformX%2Cptr.Image%2Cptr.Rect%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"
title="blitTransformX(image: ptr Image; srcRect: ptr Rect; target: ptr Target; x: cfloat;
y: cfloat; pivotX: cfloat; pivotY: cfloat; degrees: cfloat;
scaleX: cfloat; scaleY: cfloat)"><wbr />blit<wbr />Transform<wbr />X<span class="attachedType"></span></a></li>
<li><a class="reference" href="#blitRect%2Cptr.Image%2Cptr.Rect%2Cptr.Target%2Cptr.Rect"
title="blitRect(image: ptr Image; srcRect: ptr Rect; target: ptr Target; destRect: ptr Rect)"><wbr />blit<wbr />Rect<span class="attachedType"></span></a></li>
<li><a class="reference" href="#blitRectX%2Cptr.Image%2Cptr.Rect%2Cptr.Target%2Cptr.Rect%2Ccfloat%2Ccfloat%2Ccfloat%2CFlipEnum"
title="blitRectX(image: ptr Image; srcRect: ptr Rect; target: ptr Target; destRect: ptr Rect;
degrees: cfloat; pivotX: cfloat; pivotY: cfloat; flipDirection: FlipEnum)"><wbr />blit<wbr />Rect<wbr />X<span class="attachedType">FlipEnum</span></a></li>
<li><a class="reference" href="#triangleBatch%2Cptr.Image%2Cptr.Target%2Ccushort%2Cptr.cfloat%2Ccuint%2Cptr.cushort%2CBatchFlagEnum"
title="triangleBatch(image: ptr Image; target: ptr Target; numVertices: cushort;
values: ptr cfloat; numIndices: cuint; indices: ptr cushort;
flags: BatchFlagEnum)"><wbr />triangle<wbr />Batch<span class="attachedType">BatchFlagEnum</span></a></li>
<li><a class="reference" href="#triangleBatchX%2Cptr.Image%2Cptr.Target%2Ccushort%2Cpointer%2Ccuint%2Cptr.cushort%2CBatchFlagEnum"
title="triangleBatchX(image: ptr Image; target: ptr Target; numVertices: cushort;
values: pointer; numIndices: cuint; indices: ptr cushort;
flags: BatchFlagEnum)"><wbr />triangle<wbr />Batch<wbr />X<span class="attachedType">BatchFlagEnum</span></a></li>
<li><a class="reference" href="#primitiveBatch%2Cptr.Image%2Cptr.Target%2CPrimitiveEnum%2Ccushort%2Cptr.cfloat%2Ccuint%2Cptr.cushort%2CBatchFlagEnum"
title="primitiveBatch(image: ptr Image; target: ptr Target; primitiveType: PrimitiveEnum;
numVertices: cushort; values: ptr cfloat; numIndices: cuint;
indices: ptr cushort; flags: BatchFlagEnum)"><wbr />primitive<wbr />Batch<span class="attachedType">PrimitiveEnum</span></a></li>
<li><a class="reference" href="#primitiveBatchV%2Cptr.Image%2Cptr.Target%2CPrimitiveEnum%2Ccushort%2Cpointer%2Ccuint%2Cptr.cushort%2CBatchFlagEnum"
title="primitiveBatchV(image: ptr Image; target: ptr Target; primitiveType: PrimitiveEnum;
numVertices: cushort; values: pointer; numIndices: cuint;
indices: ptr cushort; flags: BatchFlagEnum)"><wbr />primitive<wbr />Batch<wbr />V<span class="attachedType">PrimitiveEnum</span></a></li>
<li><a class="reference" href="#flushBlitBuffer"
title="flushBlitBuffer()"><wbr />flush<wbr />Blit<wbr />Buffer<span class="attachedType"></span></a></li>
<li><a class="reference" href="#flip%2Cptr.Target"
title="flip(target: ptr Target)"><wbr />flip<span class="attachedType"></span></a></li>
<li><a class="reference" href="#pixel%2Cptr.Target%2Ccfloat%2Ccfloat%2CColor"
title="pixel(target: ptr Target; x: cfloat; y: cfloat; color: Color)"><wbr />pixel<span class="attachedType"></span></a></li>
<li><a class="reference" href="#line%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"
title="line(target: ptr Target; x1: cfloat; y1: cfloat; x2: cfloat; y2: cfloat; color: Color)"><wbr />line<span class="attachedType"></span></a></li>
<li><a class="reference" href="#arc%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"
title="arc(target: ptr Target; x: cfloat; y: cfloat; radius: cfloat; startAngle: cfloat;
endAngle: cfloat; color: Color)"><wbr />arc<span class="attachedType"></span></a></li>
<li><a class="reference" href="#arcFilled%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"
title="arcFilled(target: ptr Target; x: cfloat; y: cfloat; radius: cfloat; startAngle: cfloat;
endAngle: cfloat; color: Color)"><wbr />arc<wbr />Filled<span class="attachedType"></span></a></li>
<li><a class="reference" href="#circle%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"
title="circle(target: ptr Target; x: cfloat; y: cfloat; radius: cfloat; color: Color)"><wbr />circle<span class="attachedType"></span></a></li>
<li><a class="reference" href="#circleFilled%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"
title="circleFilled(target: ptr Target; x: cfloat; y: cfloat; radius: cfloat; color: Color)"><wbr />circle<wbr />Filled<span class="attachedType"></span></a></li>
<li><a class="reference" href="#ellipse%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"
title="ellipse(target: ptr Target; x: cfloat; y: cfloat; rx: cfloat; ry: cfloat; degrees: cfloat;
color: Color)"><wbr />ellipse<span class="attachedType"></span></a></li>
<li><a class="reference" href="#ellipseFilled%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"
title="ellipseFilled(target: ptr Target; x: cfloat; y: cfloat; rx: cfloat; ry: cfloat;
degrees: cfloat; color: Color)"><wbr />ellipse<wbr />Filled<span class="attachedType"></span></a></li>
<li><a class="reference" href="#sector%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"
title="sector(target: ptr Target; x: cfloat; y: cfloat; innerRadius: cfloat;
outerRadius: cfloat; startAngle: cfloat; endAngle: cfloat; color: Color)"><wbr />sector<span class="attachedType"></span></a></li>
<li><a class="reference" href="#sectorFilled%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"
title="sectorFilled(target: ptr Target; x: cfloat; y: cfloat; innerRadius: cfloat;
outerRadius: cfloat; startAngle: cfloat; endAngle: cfloat; color: Color)"><wbr />sector<wbr />Filled<span class="attachedType"></span></a></li>
<li><a class="reference" href="#tri%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"
title="tri(target: ptr Target; x1: cfloat; y1: cfloat; x2: cfloat; y2: cfloat; x3: cfloat;
y3: cfloat; color: Color)"><wbr />tri<span class="attachedType"></span></a></li>
<li><a class="reference" href="#triFilled%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"
title="triFilled(target: ptr Target; x1: cfloat; y1: cfloat; x2: cfloat; y2: cfloat; x3: cfloat;
y3: cfloat; color: Color)"><wbr />tri<wbr />Filled<span class="attachedType"></span></a></li>
<li><a class="reference" href="#rectangle%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"
title="rectangle(target: ptr Target; x1: cfloat; y1: cfloat; x2: cfloat; y2: cfloat; color: Color)"><wbr />rectangle<span class="attachedType"></span></a></li>
<li><a class="reference" href="#rectangle2%2Cptr.Target%2CRect%2CColor"
title="rectangle2(target: ptr Target; rect: Rect; color: Color)"><wbr />rectangle2<span class="attachedType"></span></a></li>
<li><a class="reference" href="#rectangleFilled%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"
title="rectangleFilled(target: ptr Target; x1: cfloat; y1: cfloat; x2: cfloat; y2: cfloat;
color: Color)"><wbr />rectangle<wbr />Filled<span class="attachedType"></span></a></li>
<li><a class="reference" href="#rectangleFilled2%2Cptr.Target%2CRect%2CColor"
title="rectangleFilled2(target: ptr Target; rect: Rect; color: Color)"><wbr />rectangle<wbr />Filled2<span class="attachedType"></span></a></li>
<li><a class="reference" href="#rectangleRound%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"
title="rectangleRound(target: ptr Target; x1: cfloat; y1: cfloat; x2: cfloat; y2: cfloat;
radius: cfloat; color: Color)"><wbr />rectangle<wbr />Round<span class="attachedType"></span></a></li>
<li><a class="reference" href="#rectangleRound2%2Cptr.Target%2CRect%2Ccfloat%2CColor"
title="rectangleRound2(target: ptr Target; rect: Rect; radius: cfloat; color: Color)"><wbr />rectangle<wbr />Round2<span class="attachedType"></span></a></li>
<li><a class="reference" href="#rectangleRoundFilled%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"
title="rectangleRoundFilled(target: ptr Target; x1: cfloat; y1: cfloat; x2: cfloat; y2: cfloat;
radius: cfloat; color: Color)"><wbr />rectangle<wbr />Round<wbr />Filled<span class="attachedType"></span></a></li>
<li><a class="reference" href="#rectangleRoundFilled2%2Cptr.Target%2CRect%2Ccfloat%2CColor"
title="rectangleRoundFilled2(target: ptr Target; rect: Rect; radius: cfloat; color: Color)"><wbr />rectangle<wbr />Round<wbr />Filled2<span class="attachedType"></span></a></li>
<li><a class="reference" href="#polygon%2Cptr.Target%2Ccuint%2Cptr.cfloat%2CColor"
title="polygon(target: ptr Target; numVertices: cuint; vertices: ptr cfloat; color: Color)"><wbr />polygon<span class="attachedType"></span></a></li>
<li><a class="reference" href="#polyline%2Cptr.Target%2Ccuint%2Cptr.cfloat%2CColor%2CBool"
title="polyline(target: ptr Target; numVertices: cuint; vertices: ptr cfloat; color: Color;
closeLoop: Bool)"><wbr />polyline<span class="attachedType"></span></a></li>
<li><a class="reference" href="#polygonFilled%2Cptr.Target%2Ccuint%2Cptr.cfloat%2CColor"
title="polygonFilled(target: ptr Target; numVertices: cuint; vertices: ptr cfloat; color: Color)"><wbr />polygon<wbr />Filled<span class="attachedType"></span></a></li>
<li><a class="reference" href="#createShaderProgram"
title="createShaderProgram(): Uint32"><wbr />create<wbr />Shader<wbr />Program<span class="attachedType"></span></a></li>
<li><a class="reference" href="#freeShaderProgram%2CUint32"
title="freeShaderProgram(programObject: Uint32)"><wbr />free<wbr />Shader<wbr />Program<span class="attachedType"></span></a></li>
<li><a class="reference" href="#compileShader_RW%2CShaderEnum%2Cptr.RWops%2CBool"
title="compileShader_RW(shaderType: ShaderEnum; shaderSource: ptr RWops; freeRwops: Bool): Uint32"><wbr />compile<wbr />Shader_<wbr />RW<span class="attachedType">ShaderEnum</span></a></li>
<li><a class="reference" href="#compileShader%2CShaderEnum%2Ccstring"
title="compileShader(shaderType: ShaderEnum; shaderSource: cstring): Uint32"><wbr />compile<wbr />Shader<span class="attachedType">ShaderEnum</span></a></li>
<li><a class="reference" href="#loadShader%2CShaderEnum%2Ccstring"
title="loadShader(shaderType: ShaderEnum; filename: cstring): Uint32"><wbr />load<wbr />Shader<span class="attachedType">ShaderEnum</span></a></li>
<li><a class="reference" href="#linkShaders%2CUint32%2CUint32"
title="linkShaders(shaderObject1: Uint32; shaderObject2: Uint32): Uint32"><wbr />link<wbr />Shaders<span class="attachedType"></span></a></li>
<li><a class="reference" href="#linkManyShaders%2Cptr.Uint32%2Ccint"
title="linkManyShaders(shaderObjects: ptr Uint32; count: cint): Uint32"><wbr />link<wbr />Many<wbr />Shaders<span class="attachedType"></span></a></li>
<li><a class="reference" href="#freeShader%2CUint32"
title="freeShader(shaderObject: Uint32)"><wbr />free<wbr />Shader<span class="attachedType"></span></a></li>
<li><a class="reference" href="#attachShader%2CUint32%2CUint32"
title="attachShader(programObject: Uint32; shaderObject: Uint32)"><wbr />attach<wbr />Shader<span class="attachedType"></span></a></li>
<li><a class="reference" href="#detachShader%2CUint32%2CUint32"
title="detachShader(programObject: Uint32; shaderObject: Uint32)"><wbr />detach<wbr />Shader<span class="attachedType"></span></a></li>
<li><a class="reference" href="#linkShaderProgram%2CUint32"
title="linkShaderProgram(programObject: Uint32): Bool"><wbr />link<wbr />Shader<wbr />Program<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getCurrentShaderProgram"
title="getCurrentShaderProgram(): Uint32"><wbr />get<wbr />Current<wbr />Shader<wbr />Program<span class="attachedType"></span></a></li>
<li><a class="reference" href="#isDefaultShaderProgram%2CUint32"
title="isDefaultShaderProgram(programObject: Uint32): Bool"><wbr />is<wbr />Default<wbr />Shader<wbr />Program<span class="attachedType"></span></a></li>
<li><a class="reference" href="#activateShaderProgram%2CUint32%2Cptr.ShaderBlock"
title="activateShaderProgram(programObject: Uint32; `block`: ptr ShaderBlock)"><wbr />activate<wbr />Shader<wbr />Program<span class="attachedType"></span></a></li>
<li><a class="reference" href="#deactivateShaderProgram"
title="deactivateShaderProgram()"><wbr />deactivate<wbr />Shader<wbr />Program<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getShaderMessage"
title="getShaderMessage(): cstring"><wbr />get<wbr />Shader<wbr />Message<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getAttributeLocation%2CUint32%2Ccstring"
title="getAttributeLocation(programObject: Uint32; attribName: cstring): cint"><wbr />get<wbr />Attribute<wbr />Location<span class="attachedType"></span></a></li>
<li><a class="reference" href="#makeAttributeFormat%2Ccint%2CTypeEnum%2CBool%2Ccint%2Ccint"
title="makeAttributeFormat(numElemsPerVertex: cint; kind: TypeEnum; normalize: Bool;
strideBytes: cint; offsetBytes: cint): AttributeFormat"><wbr />make<wbr />Attribute<wbr />Format<span class="attachedType">TypeEnum</span></a></li>
<li><a class="reference" href="#makeAttribute%2Ccint%2Cpointer%2CAttributeFormat"
title="makeAttribute(location: cint; values: pointer; format: AttributeFormat): Attribute"><wbr />make<wbr />Attribute<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getUniformLocation%2CUint32%2Ccstring"
title="getUniformLocation(programObject: Uint32; uniformName: cstring): cint"><wbr />get<wbr />Uniform<wbr />Location<span class="attachedType"></span></a></li>
<li><a class="reference" href="#loadShaderBlock%2CUint32%2Ccstring%2Ccstring%2Ccstring%2Ccstring"
title="loadShaderBlock(programObject: Uint32; positionName: cstring; texcoordName: cstring;
colorName: cstring; modelViewMatrixName: cstring): ShaderBlock"><wbr />load<wbr />Shader<wbr />Block<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setShaderBlock%2CShaderBlock"
title="setShaderBlock(`block`: ShaderBlock)"><wbr />set<wbr />Shader<wbr />Block<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getShaderBlock"
title="getShaderBlock(): ShaderBlock"><wbr />get<wbr />Shader<wbr />Block<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setShaderImage%2Cptr.Image%2Ccint%2Ccint"
title="setShaderImage(image: ptr Image; location: cint; imageUnit: cint)"><wbr />set<wbr />Shader<wbr />Image<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getUniformiv%2CUint32%2Ccint%2Cptr.cint"
title="getUniformiv(programObject: Uint32; location: cint; values: ptr cint)"><wbr />get<wbr />Uniformiv<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setUniformi%2Ccint%2Ccint"
title="setUniformi(location: cint; value: cint)"><wbr />set<wbr />Uniformi<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setUniformiv%2Ccint%2Ccint%2Ccint%2Cptr.cint"
title="setUniformiv(location: cint; numElementsPerValue: cint; numValues: cint;
values: ptr cint)"><wbr />set<wbr />Uniformiv<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getUniformuiv%2CUint32%2Ccint%2Cptr.cuint"
title="getUniformuiv(programObject: Uint32; location: cint; values: ptr cuint)"><wbr />get<wbr />Uniformuiv<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setUniformui%2Ccint%2Ccuint"
title="setUniformui(location: cint; value: cuint)"><wbr />set<wbr />Uniformui<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setUniformuiv%2Ccint%2Ccint%2Ccint%2Cptr.cuint"
title="setUniformuiv(location: cint; numElementsPerValue: cint; numValues: cint;
values: ptr cuint)"><wbr />set<wbr />Uniformuiv<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getUniformfv%2CUint32%2Ccint%2Cptr.cfloat"
title="getUniformfv(programObject: Uint32; location: cint; values: ptr cfloat)"><wbr />get<wbr />Uniformfv<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setUniformf%2Ccint%2Ccfloat"
title="setUniformf(location: cint; value: cfloat)"><wbr />set<wbr />Uniformf<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setUniformfv%2Ccint%2Ccint%2Ccint%2Cptr.cfloat"
title="setUniformfv(location: cint; numElementsPerValue: cint; numValues: cint;
values: ptr cfloat)"><wbr />set<wbr />Uniformfv<span class="attachedType"></span></a></li>
<li><a class="reference" href="#getUniformMatrixfv%2CUint32%2Ccint%2Cptr.cfloat"
title="getUniformMatrixfv(programObject: Uint32; location: cint; values: ptr cfloat)"><wbr />get<wbr />Uniform<wbr />Matrixfv<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setUniformMatrixfv%2Ccint%2Ccint%2Ccint%2Ccint%2CBool%2Cptr.cfloat"
title="setUniformMatrixfv(location: cint; numMatrices: cint; numRows: cint; numColumns: cint;
transpose: Bool; values: ptr cfloat)"><wbr />set<wbr />Uniform<wbr />Matrixfv<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setAttributef%2Ccint%2Ccfloat"
title="setAttributef(location: cint; value: cfloat)"><wbr />set<wbr />Attributef<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setAttributei%2Ccint%2Ccint"
title="setAttributei(location: cint; value: cint)"><wbr />set<wbr />Attributei<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setAttributeui%2Ccint%2Ccuint"
title="setAttributeui(location: cint; value: cuint)"><wbr />set<wbr />Attributeui<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setAttributefv%2Ccint%2Ccint%2Cptr.cfloat"
title="setAttributefv(location: cint; numElements: cint; value: ptr cfloat)"><wbr />set<wbr />Attributefv<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setAttributeiv%2Ccint%2Ccint%2Cptr.cint"
title="setAttributeiv(location: cint; numElements: cint; value: ptr cint)"><wbr />set<wbr />Attributeiv<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setAttributeuiv%2Ccint%2Ccint%2Cptr.cuint"
title="setAttributeuiv(location: cint; numElements: cint; value: ptr cuint)"><wbr />set<wbr />Attributeuiv<span class="attachedType"></span></a></li>
<li><a class="reference" href="#setAttributeSource%2Ccint%2CAttribute"
title="setAttributeSource(numValues: cint; source: Attribute)"><wbr />set<wbr />Attribute<wbr />Source<span class="attachedType"></span></a></li>
</ul>
</li>
</ul>
</div>
<div class="nine columns" id="content">
<div id="tocRoot"></div>
<p class="module-desc"></p>
<div class="section" id="6">
<h1><a class="toc-backref" href="#6">Imports</a></h1>
<dl class="item">
<a class="reference external" href="sdl2.html">sdl2</a>
</dl></div>
<div class="section" id="7">
<h1><a class="toc-backref" href="#7">Types</a></h1>
<dl class="item">
<a id="ComparisonEnum"></a>
<dt><pre><a href="sdl2_gpu.html#ComparisonEnum"><span class="Identifier">ComparisonEnum</span></a> <span class="Other">=</span> <span class="Keyword">distinct</span> <span class="Identifier">cint</span></pre></dt>
<dd>
</dd>
<a id="BlendFuncEnum"></a>
<dt><pre><a href="sdl2_gpu.html#BlendFuncEnum"><span class="Identifier">BlendFuncEnum</span></a> <span class="Other">=</span> <span class="Keyword">distinct</span> <span class="Identifier">cint</span></pre></dt>
<dd>
</dd>
<a id="BlendEqEnum"></a>
<dt><pre><a href="sdl2_gpu.html#BlendEqEnum"><span class="Identifier">BlendEqEnum</span></a> <span class="Other">=</span> <span class="Keyword">distinct</span> <span class="Identifier">cint</span></pre></dt>
<dd>
</dd>
<a id="BlendPresetEnum"></a>
<dt><pre><a href="sdl2_gpu.html#BlendPresetEnum"><span class="Identifier">BlendPresetEnum</span></a> <span class="Other">=</span> <span class="Keyword">distinct</span> <span class="Identifier">cint</span></pre></dt>
<dd>
</dd>
<a id="FilterEnum"></a>
<dt><pre><a href="sdl2_gpu.html#FilterEnum"><span class="Identifier">FilterEnum</span></a> <span class="Other">=</span> <span class="Keyword">distinct</span> <span class="Identifier">cint</span></pre></dt>
<dd>
</dd>
<a id="SnapEnum"></a>
<dt><pre><a href="sdl2_gpu.html#SnapEnum"><span class="Identifier">SnapEnum</span></a> <span class="Other">=</span> <span class="Keyword">distinct</span> <span class="Identifier">cint</span></pre></dt>
<dd>
</dd>
<a id="WrapEnum"></a>
<dt><pre><a href="sdl2_gpu.html#WrapEnum"><span class="Identifier">WrapEnum</span></a> <span class="Other">=</span> <span class="Keyword">distinct</span> <span class="Identifier">cint</span></pre></dt>
<dd>
</dd>
<a id="FormatEnum"></a>
<dt><pre><a href="sdl2_gpu.html#FormatEnum"><span class="Identifier">FormatEnum</span></a> <span class="Other">=</span> <span class="Keyword">distinct</span> <span class="Identifier">cint</span></pre></dt>
<dd>
</dd>
<a id="FileFormatEnum"></a>
<dt><pre><a href="sdl2_gpu.html#FileFormatEnum"><span class="Identifier">FileFormatEnum</span></a> <span class="Other">=</span> <span class="Keyword">distinct</span> <span class="Identifier">cint</span></pre></dt>
<dd>
</dd>
<a id="ShaderEnum"></a>
<dt><pre><a href="sdl2_gpu.html#ShaderEnum"><span class="Identifier">ShaderEnum</span></a> <span class="Other">=</span> <span class="Keyword">distinct</span> <span class="Identifier">cint</span></pre></dt>
<dd>
</dd>
<a id="ShaderLanguageEnum"></a>
<dt><pre><a href="sdl2_gpu.html#ShaderLanguageEnum"><span class="Identifier">ShaderLanguageEnum</span></a> <span class="Other">=</span> <span class="Keyword">distinct</span> <span class="Identifier">cint</span></pre></dt>
<dd>
</dd>
<a id="ErrorEnum"></a>
<dt><pre><a href="sdl2_gpu.html#ErrorEnum"><span class="Identifier">ErrorEnum</span></a> <span class="Other">=</span> <span class="Keyword">distinct</span> <span class="Identifier">cint</span></pre></dt>
<dd>
</dd>
<a id="DebugLevelEnum"></a>
<dt><pre><a href="sdl2_gpu.html#DebugLevelEnum"><span class="Identifier">DebugLevelEnum</span></a> <span class="Other">=</span> <span class="Keyword">distinct</span> <span class="Identifier">cint</span></pre></dt>
<dd>
</dd>
<a id="LogLevelEnum"></a>
<dt><pre><a href="sdl2_gpu.html#LogLevelEnum"><span class="Identifier">LogLevelEnum</span></a> <span class="Other">=</span> <span class="Keyword">enum</span>
<span class="Identifier">LOG_LEVEL_INFO</span> <span class="Other">=</span> <span class="DecNumber">0</span><span class="Other">,</span> <span class="Identifier">LOG_LEVEL_WARNING</span><span class="Other">,</span> <span class="Identifier">LOG_LEVEL_ERROR</span></pre></dt>
<dd>
</dd>
<a id="WindowFlagEnum"></a>
<dt><pre><a href="sdl2_gpu.html#WindowFlagEnum"><span class="Identifier">WindowFlagEnum</span></a> <span class="Other">=</span> <a href="sdl2.html#WindowFlags"><span class="Identifier">WindowFlags</span></a></pre></dt>
<dd>
</dd>
<a id="Renderer"></a>
<dt><pre><a href="sdl2_gpu.html#Renderer"><span class="Identifier">Renderer</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">bycopy</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">id</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#RendererID"><span class="Identifier">RendererID</span></a>
<span class="Identifier">requestedId</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#RendererID"><span class="Identifier">RendererID</span></a>
<span class="Identifier">sdlInitFlags</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#WindowFlagEnum"><span class="Identifier">WindowFlagEnum</span></a>
<span class="Identifier">gpuInitFlags</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#InitFlagEnum"><span class="Identifier">InitFlagEnum</span></a>
<span class="Identifier">shaderLanguage</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#ShaderLanguageEnum"><span class="Identifier">ShaderLanguageEnum</span></a>
<span class="Identifier">minShaderVersion</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span>
<span class="Identifier">maxShaderVersion</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span>
<span class="Identifier">enabledFeatures</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#FeatureEnum"><span class="Identifier">FeatureEnum</span></a> <span class="Comment">## ::</span>
<span class="Comment">## ! Current display target</span>
<span class="Identifier">currentContextTarget</span><span class="Operator">*</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a> <span class="Comment">## ::</span>
<span class="Comment">## ! 0 for inverted, 1 for mathematical</span>
<span class="Identifier">coordinateMode</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a> <span class="Comment">## ::</span>
<span class="Comment">## ! Default is (0.5, 0.5) - images draw centered.</span>
<span class="Identifier">defaultImageAnchorX</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cfloat</span>
<span class="Identifier">defaultImageAnchorY</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cfloat</span>
<span class="Identifier">impl</span><span class="Operator">*</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#RendererImpl"><span class="Identifier">RendererImpl</span></a>
</pre></dt>
<dd>
<pre>! \ingroup Initialization
@{</pre>
</dd>
<a id="Target"></a>
<dt><pre><a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">bycopy</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">renderer</span><span class="Operator">*</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Renderer"><span class="Identifier">Renderer</span></a>
<span class="Identifier">contextTarget</span><span class="Operator">*</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a>
<span class="Identifier">image</span><span class="Operator">*</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a>
<span class="Identifier">data</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">pointer</span>
<span class="Identifier">w</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a>
<span class="Identifier">h</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a>
<span class="Identifier">usingVirtualResolution</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a>
<span class="Identifier">baseW</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a> <span class="Comment">## ::</span>
<span class="Comment">## The true dimensions of the underlying image or window</span>
<span class="Identifier">baseH</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a> <span class="Comment">## ::</span>
<span class="Comment">## The true dimensions of the underlying image or window</span>
<span class="Identifier">useClipRect</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a>
<span class="Identifier">clipRect</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a>
<span class="Identifier">useColor</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a>
<span class="Identifier">color</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a>
<span class="Identifier">viewport</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a> <span class="Comment">## ::</span>
<span class="Comment">## ! Perspective and object viewing transforms.</span>
<span class="Identifier">matrixMode</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span>
<span class="Identifier">projectionMatrix</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#MatrixStack"><span class="Identifier">MatrixStack</span></a>
<span class="Identifier">viewMatrix</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#MatrixStack"><span class="Identifier">MatrixStack</span></a>
<span class="Identifier">modelMatrix</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#MatrixStack"><span class="Identifier">MatrixStack</span></a>
<span class="Identifier">camera</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#Camera"><span class="Identifier">Camera</span></a>
<span class="Identifier">useCamera</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a>
<span class="Identifier">useDepthTest</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a>
<span class="Identifier">useDepthWrite</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a>
<span class="Identifier">depthFunction</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#ComparisonEnum"><span class="Identifier">ComparisonEnum</span></a> <span class="Comment">## ::</span>
<span class="Comment">## ! Renderer context data. NULL if the target does not represent a window or rendering context.</span>
<span class="Identifier">context</span><span class="Operator">*</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Context"><span class="Identifier">Context</span></a>
<span class="Identifier">refcount</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span>
<span class="Identifier">isAlias</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a>
</pre></dt>
<dd>
<pre>! \ingroup Initialization
Important GPU features which may not be supported depending on a device's extension support. Can be bitwise OR'd together.
\see GPU_IsFeatureEnabled()
\see GPU_SetRequiredFeatures()</pre>
</dd>
<a id="Rect"></a>
<dt><pre><a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">bycopy</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">x</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cfloat</span>
<span class="Identifier">y</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cfloat</span>
<span class="Identifier">w</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cfloat</span>
<span class="Identifier">h</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cfloat</span>
</pre></dt>
<dd>
<pre>!
\defgroup Initialization Initialization
\defgroup Logging Debugging, Logging, and Error Handling
\defgroup RendererSetup Renderer Setup
\defgroup RendererControls Renderer Controls
\defgroup ContextControls Context Controls
\defgroup TargetControls Target Controls
\defgroup SurfaceControls Surface Controls
\defgroup ImageControls Image Controls
\defgroup Conversions Surface, Image, and Target Conversions
\defgroup Matrix Matrix Controls
\defgroup Rendering Rendering
\defgroup Shapes Shapes
\defgroup ShaderInterface Shader Interface
! \ingroup Rendering
A struct representing a rectangular area with floating point precision.
\see GPU_MakeRect()</pre>
</dd>
<a id="RendererEnum"></a>
<dt><pre><a href="sdl2_gpu.html#RendererEnum"><span class="Identifier">RendererEnum</span></a> <span class="Other">=</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a></pre></dt>
<dd>
</dd>
<a id="RendererID"></a>
<dt><pre><a href="sdl2_gpu.html#RendererID"><span class="Identifier">RendererID</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">bycopy</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">name</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cstring</span>
<span class="Identifier">renderer</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#RendererEnum"><span class="Identifier">RendererEnum</span></a>
<span class="Identifier">majorVersion</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span>
<span class="Identifier">minorVersion</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span>
</pre></dt>
<dd>
<pre>! \ingroup Initialization
\ingroup RendererSetup
\ingroup RendererControls
Renderer ID object for identifying a specific renderer.
\see GPU_MakeRendererID()
\see GPU_InitRendererByID()</pre>
</dd>
<a id="BlendMode"></a>
<dt><pre><a href="sdl2_gpu.html#BlendMode"><span class="Identifier">BlendMode</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">bycopy</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">sourceColor</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#BlendFuncEnum"><span class="Identifier">BlendFuncEnum</span></a>
<span class="Identifier">destColor</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#BlendFuncEnum"><span class="Identifier">BlendFuncEnum</span></a>
<span class="Identifier">sourceAlpha</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#BlendFuncEnum"><span class="Identifier">BlendFuncEnum</span></a>
<span class="Identifier">destAlpha</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#BlendFuncEnum"><span class="Identifier">BlendFuncEnum</span></a>
<span class="Identifier">colorEquation</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#BlendEqEnum"><span class="Identifier">BlendEqEnum</span></a>
<span class="Identifier">alphaEquation</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#BlendEqEnum"><span class="Identifier">BlendEqEnum</span></a>
</pre></dt>
<dd>
<pre>! \ingroup ImageControls
Blend mode storage struct</pre>
</dd>
<a id="Image"></a>
<dt><pre><a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">bycopy</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">renderer</span><span class="Operator">*</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Renderer"><span class="Identifier">Renderer</span></a>
<span class="Identifier">contextTarget</span><span class="Operator">*</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a>
<span class="Identifier">target</span><span class="Operator">*</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a>
<span class="Identifier">w</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a>
<span class="Identifier">h</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a>
<span class="Identifier">usingVirtualResolution</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a>
<span class="Identifier">format</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#FormatEnum"><span class="Identifier">FormatEnum</span></a>
<span class="Identifier">numLayers</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span>
<span class="Identifier">bytesPerPixel</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span>
<span class="Identifier">baseW</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a> <span class="Comment">## ::</span>
<span class="Comment">## Original image dimensions</span>
<span class="Identifier">baseH</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a> <span class="Comment">## ::</span>
<span class="Comment">## Original image dimensions</span>
<span class="Identifier">textureW</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a> <span class="Comment">## ::</span>
<span class="Comment">## Underlying texture dimensions</span>
<span class="Identifier">textureH</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a> <span class="Comment">## ::</span>
<span class="Comment">## Underlying texture dimensions</span>
<span class="Identifier">hasMipmaps</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a>
<span class="Identifier">anchorX</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cfloat</span> <span class="Comment">## ::</span>
<span class="Comment">## Normalized coords for the point at which the image is blitted. Default is (0.5, 0.5), that is, the image is drawn centered.</span>
<span class="Identifier">anchorY</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cfloat</span> <span class="Comment">## ::</span>
<span class="Comment">## These are interpreted according to GPU_SetCoordinateMode() and range from (0.0 - 1.0) normally.</span>
<span class="Identifier">color</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a>
<span class="Identifier">useBlending</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a>
<span class="Identifier">blendMode</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#BlendMode"><span class="Identifier">BlendMode</span></a>
<span class="Identifier">filterMode</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#FilterEnum"><span class="Identifier">FilterEnum</span></a>
<span class="Identifier">snapMode</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#SnapEnum"><span class="Identifier">SnapEnum</span></a>
<span class="Identifier">wrapModeX</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#WrapEnum"><span class="Identifier">WrapEnum</span></a>
<span class="Identifier">wrapModeY</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#WrapEnum"><span class="Identifier">WrapEnum</span></a>
<span class="Identifier">data</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">pointer</span>
<span class="Identifier">refcount</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span>
<span class="Identifier">isAlias</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a>
</pre></dt>
<dd>
<pre>! \ingroup ImageControls
Image object for containing pixel/texture data.
A GPU_Image can be created with GPU_CreateImage(), GPU_LoadImage(), GPU_CopyImage(), or GPU_CopyImageFromSurface().
Free the memory with GPU_FreeImage() when you're done.
\see GPU_CreateImage()
\see GPU_LoadImage()
\see GPU_CopyImage()
\see GPU_CopyImageFromSurface()
\see GPU_Target</pre>
</dd>
<a id="TextureHandle"></a>
<dt><pre><a href="sdl2_gpu.html#TextureHandle"><span class="Identifier">TextureHandle</span></a> <span class="Other">=</span> <span class="Keyword">ptr</span> <span class="Identifier">uint</span></pre></dt>
<dd>
<pre>! \ingroup ImageControls
A backend-neutral type that is intended to hold a backend-specific handle/pointer to a texture.
\see GPU_CreateImageUsingTexture()
\see GPU_GetTextureHandle()</pre>
</dd>
<a id="Camera"></a>
<dt><pre><a href="sdl2_gpu.html#Camera"><span class="Identifier">Camera</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">bycopy</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">x</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cfloat</span>
<span class="Identifier">y</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cfloat</span>
<span class="Identifier">z</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cfloat</span>
<span class="Identifier">angle</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cfloat</span>
<span class="Identifier">zoomX</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cfloat</span>
<span class="Identifier">zoomY</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cfloat</span>
<span class="Identifier">zNear</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cfloat</span> <span class="Comment">## ::</span>
<span class="Comment">## z clipping planes</span>
<span class="Identifier">zFar</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cfloat</span> <span class="Comment">## ::</span>
<span class="Comment">## z clipping planes</span>
<span class="Identifier">useCenteredOrigin</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a> <span class="Comment">## ::</span>
<span class="Comment">## move rotation/scaling origin to the center of the camera's view</span>
</pre></dt>
<dd>
<pre>! \ingroup TargetControls
Camera object that determines viewing transform.
\see GPU_SetCamera()
\see GPU_GetDefaultCamera()
\see GPU_GetCamera()</pre>
</dd>
<a id="ShaderBlock"></a>
<dt><pre><a href="sdl2_gpu.html#ShaderBlock"><span class="Identifier">ShaderBlock</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">bycopy</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">positionLoc</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span>
<span class="Identifier">texcoordLoc</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span>
<span class="Identifier">colorLoc</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span> <span class="Comment">## ::</span>
<span class="Comment">## Uniforms</span>
<span class="Identifier">modelViewProjectionLoc</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span>
</pre></dt>
<dd>
<pre>! \ingroup ShaderInterface
Container for the built-in shader attribute and uniform locations (indices).
\see GPU_LoadShaderBlock()
\see GPU_SetShaderBlock()</pre>
</dd>
<a id="MatrixStack"></a>
<dt><pre><a href="sdl2_gpu.html#MatrixStack"><span class="Identifier">MatrixStack</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">bycopy</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">storageSize</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cuint</span>
<span class="Identifier">size</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cuint</span>
<span class="Identifier">matrix</span><span class="Operator">*</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span>
</pre></dt>
<dd>
<pre>! \ingroup Matrix
Matrix stack data structure for global vertex transforms.</pre>
</dd>
<a id="Context"></a>
<dt><pre><a href="sdl2_gpu.html#Context"><span class="Identifier">Context</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">bycopy</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">context</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">pointer</span>
<span class="Identifier">failed</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a> <span class="Comment">## ::</span>
<span class="Comment">## ! SDL window ID</span>
<span class="Identifier">windowID</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a> <span class="Comment">## ::</span>
<span class="Comment">## ! Actual window dimensions</span>
<span class="Identifier">windowW</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span>
<span class="Identifier">windowH</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span> <span class="Comment">## ::</span>
<span class="Comment">## ! Drawable region dimensions</span>
<span class="Identifier">drawableW</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span>
<span class="Identifier">drawableH</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span> <span class="Comment">## ::</span>
<span class="Comment">## ! Window dimensions for restoring windowed mode after GPU_SetFullscreen(1,1).</span>
<span class="Identifier">storedWindowW</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span>
<span class="Identifier">storedWindowH</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span> <span class="Comment">## ::</span>
<span class="Comment">## ! Last target used</span>
<span class="Identifier">activeTarget</span><span class="Operator">*</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a> <span class="Comment">## ::</span>
<span class="Comment">## ! Internal state</span>
<span class="Identifier">currentShaderProgram</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a>
<span class="Identifier">defaultTexturedShaderProgram</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a>
<span class="Identifier">defaultUntexturedShaderProgram</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a>
<span class="Identifier">currentShaderBlock</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#ShaderBlock"><span class="Identifier">ShaderBlock</span></a>
<span class="Identifier">defaultTexturedShaderBlock</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#ShaderBlock"><span class="Identifier">ShaderBlock</span></a>
<span class="Identifier">defaultUntexturedShaderBlock</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#ShaderBlock"><span class="Identifier">ShaderBlock</span></a>
<span class="Identifier">shapesUseBlending</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a>
<span class="Identifier">shapesBlendMode</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#BlendMode"><span class="Identifier">BlendMode</span></a>
<span class="Identifier">lineThickness</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cfloat</span>
<span class="Identifier">useTexturing</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a>
<span class="Identifier">refcount</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span>
<span class="Identifier">data</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">pointer</span>
</pre></dt>
<dd>
<pre>! \ingroup ContextControls
Rendering context data. Only GPU_Targets which represent windows will store this.</pre>
</dd>
<a id="FeatureEnum"></a>
<dt><pre><a href="sdl2_gpu.html#FeatureEnum"><span class="Identifier">FeatureEnum</span></a> <span class="Other">=</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a></pre></dt>
<dd>
<pre>! \ingroup Initialization
Important GPU features which may not be supported depending on a device's extension support. Can be bitwise OR'd together.
\see GPU_IsFeatureEnabled()
\see GPU_SetRequiredFeatures()</pre>
</dd>
<a id="InitFlagEnum"></a>
<dt><pre><a href="sdl2_gpu.html#InitFlagEnum"><span class="Identifier">InitFlagEnum</span></a> <span class="Other">=</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a></pre></dt>
<dd>
<pre>! \ingroup Initialization
Initialization flags for changing default init parameters. Can be bitwise OR'ed together.
Default (0) is to use late swap vsync and double buffering.
\see GPU_SetPreInitFlags()
\see GPU_GetPreInitFlags()</pre>
</dd>
<a id="PrimitiveEnum"></a>
<dt><pre><a href="sdl2_gpu.html#PrimitiveEnum"><span class="Identifier">PrimitiveEnum</span></a> <span class="Other">=</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a></pre></dt>
<dd>
<pre>! \ingroup Rendering
Primitive types for rendering arbitrary geometry. The values are intentionally identical to the GL_ primitives.
\see GPU_PrimitiveBatch()
\see GPU_PrimitiveBatchV()</pre>
</dd>
<a id="BatchFlagEnum"></a>
<dt><pre><a href="sdl2_gpu.html#BatchFlagEnum"><span class="Identifier">BatchFlagEnum</span></a> <span class="Other">=</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a></pre></dt>
<dd>
<pre>! Bit flags for geometry batching.
\see GPU_TriangleBatch()
\see GPU_TriangleBatchX()
\see GPU_PrimitiveBatch()
\see GPU_PrimitiveBatchV()</pre>
</dd>
<a id="FlipEnum"></a>
<dt><pre><a href="sdl2_gpu.html#FlipEnum"><span class="Identifier">FlipEnum</span></a> <span class="Other">=</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a></pre></dt>
<dd>
<pre>! Bit flags for blitting into a rectangular region.
\see GPU_BlitRect
\see GPU_BlitRectX</pre>
</dd>
<a id="TypeEnum"></a>
<dt><pre><a href="sdl2_gpu.html#TypeEnum"><span class="Identifier">TypeEnum</span></a> <span class="Other">=</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a></pre></dt>
<dd>
<pre>! \ingroup ShaderInterface
Type enumeration for GPU_AttributeFormat specifications.</pre>
</dd>
<a id="AttributeFormat"></a>
<dt><pre><a href="sdl2_gpu.html#AttributeFormat"><span class="Identifier">AttributeFormat</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">bycopy</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">isPerSprite</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a> <span class="Comment">## ::</span>
<span class="Comment">## Per-sprite values are expanded to 4 vertices</span>
<span class="Identifier">numElemsPerValue</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span>
<span class="Identifier">kind</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#TypeEnum"><span class="Identifier">TypeEnum</span></a> <span class="Comment">## ::</span>
<span class="Comment">## GPU_TYPE_FLOAT, GPU_TYPE_INT, GPU_TYPE_UNSIGNED_INT, etc.</span>
<span class="Identifier">normalize</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a>
<span class="Identifier">strideBytes</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span> <span class="Comment">## ::</span>
<span class="Comment">## Number of bytes between two vertex specifications</span>
<span class="Identifier">offsetBytes</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span> <span class="Comment">## ::</span>
<span class="Comment">## Number of bytes to skip at the beginning of 'values'</span>
</pre></dt>
<dd>
<pre>! \ingroup ShaderInterface</pre>
</dd>
<a id="Attribute"></a>
<dt><pre><a href="sdl2_gpu.html#Attribute"><span class="Identifier">Attribute</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">bycopy</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">location</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span>
<span class="Identifier">values</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">pointer</span> <span class="Comment">## ::</span>
<span class="Comment">## Expect 4 values for each sprite</span>
<span class="Identifier">format</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#AttributeFormat"><span class="Identifier">AttributeFormat</span></a>
</pre></dt>
<dd>
<pre>! \ingroup ShaderInterface</pre>
</dd>
<a id="AttributeSource"></a>
<dt><pre><a href="sdl2_gpu.html#AttributeSource"><span class="Identifier">AttributeSource</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">bycopy</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">enabled</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a>
<span class="Identifier">numValues</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span>
<span class="Identifier">nextValue</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">pointer</span> <span class="Comment">## ::</span>
<span class="Comment">## Automatic storage format</span>
<span class="Identifier">perVertexStorageStrideBytes</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span>
<span class="Identifier">perVertexStorageOffsetBytes</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span>
<span class="Identifier">perVertexStorageSize</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cint</span> <span class="Comment">## ::</span>
<span class="Comment">## Over 0 means that the per-vertex storage has been automatically allocated</span>
<span class="Identifier">perVertexStorage</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">pointer</span> <span class="Comment">## ::</span>
<span class="Comment">## Could point to the attribute's values or to allocated storage</span>
<span class="Identifier">attribute</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#Attribute"><span class="Identifier">Attribute</span></a>
</pre></dt>
<dd>
<pre>! \ingroup ShaderInterface</pre>
</dd>
<a id="ErrorObject"></a>
<dt><pre><a href="sdl2_gpu.html#ErrorObject"><span class="Identifier">ErrorObject</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">bycopy</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <span class="Keyword">object</span>
<span class="Identifier">function</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cstring</span>
<span class="Identifier">error</span><span class="Operator">*</span><span class="Other">:</span> <a href="sdl2_gpu.html#ErrorEnum"><span class="Identifier">ErrorEnum</span></a>
<span class="Identifier">details</span><span class="Operator">*</span><span class="Other">:</span> <span class="Identifier">cstring</span>
</pre></dt>
<dd>
<pre>! \ingroup Logging</pre>
</dd>
<a id="RendererImpl"></a>
<dt><pre><a href="sdl2_gpu.html#RendererImpl"><span class="Identifier">RendererImpl</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">incompleteStruct</span></span><span class="Other">.}</span></span> <span class="Other">=</span> <span class="Keyword">object</span></pre></dt>
<dd>
</dd>
</dl></div>
<div class="section" id="10">
<h1><a class="toc-backref" href="#10">Consts</a></h1>
<dl class="item">
<a id="SDLgpuStd"></a>
<dt><pre><a href="sdl2_gpu.html#SDLgpuStd"><span class="Identifier">SDLgpuStd</span></a> <span class="Other">=</span> <span class="DecNumber">false</span></pre></dt>
<dd>
</dd>
<a id="SDLgpuGit"></a>
<dt><pre><a href="sdl2_gpu.html#SDLgpuGit"><span class="Identifier">SDLgpuGit</span></a> <span class="Other">=</span> <span class="DecNumber">true</span></pre></dt>
<dd>
</dd>
<a id="SDLgpuDL"></a>
<dt><pre><a href="sdl2_gpu.html#SDLgpuDL"><span class="Identifier">SDLgpuDL</span></a> <span class="Other">=</span> <span class="DecNumber">false</span></pre></dt>
<dd>
</dd>
<a id="SDLgpuStatic"></a>
<dt><pre><a href="sdl2_gpu.html#SDLgpuStatic"><span class="Identifier">SDLgpuStatic</span></a> <span class="Other">=</span> <span class="DecNumber">true</span></pre></dt>
<dd>
</dd>
<a id="SDLgpuSetVer"></a>
<dt><pre><a href="sdl2_gpu.html#SDLgpuSetVer"><span class="Identifier">SDLgpuSetVer</span></a> <span class="Other">=</span> <span class="StringLit">&quot;&quot;</span></pre></dt>
<dd>
</dd>
<a id="SDLgpuLPath"></a>
<dt><pre><a href="sdl2_gpu.html#SDLgpuLPath"><span class="Identifier">SDLgpuLPath</span></a> <span class="Other">=</span> <span class="StringLit">&quot;/Users/joey/Projects/nim-sdl2/src/build/sdl2_gpu/buildcache/SDL_gpu-0.11.0/lib/libSDL2_gpu.a&quot;</span></pre></dt>
<dd>
</dd>
<a id="SDLgpuPath"></a>
<dt><pre><a href="sdl2_gpu.html#SDLgpuPath"><span class="Identifier">SDLgpuPath</span></a> <span class="Other">=</span> <span class="StringLit">&quot;/Users/joey/Projects/nim-sdl2/src/build/sdl2_gpu/include/SDL_gpu.h&quot;</span></pre></dt>
<dd>
</dd>
<a id="NONE"></a>
<dt><pre><a href="sdl2_gpu.html#NONE"><span class="Identifier">NONE</span></a> <span class="Other">=</span> <span class="DecNumber">0'u</span></pre></dt>
<dd>
</dd>
<a id="FEATURE_NON_POWER_OF_TWO"></a>
<dt><pre><a href="sdl2_gpu.html#FEATURE_NON_POWER_OF_TWO"><span class="Identifier">FEATURE_NON_POWER_OF_TWO</span></a> <span class="Other">=</span> <span class="DecNumber">1'u</span></pre></dt>
<dd>
</dd>
<a id="FEATURE_RENDER_TARGETS"></a>
<dt><pre><a href="sdl2_gpu.html#FEATURE_RENDER_TARGETS"><span class="Identifier">FEATURE_RENDER_TARGETS</span></a> <span class="Other">=</span> <span class="DecNumber">2'u</span></pre></dt>
<dd>
</dd>
<a id="FEATURE_BLEND_EQUATIONS"></a>
<dt><pre><a href="sdl2_gpu.html#FEATURE_BLEND_EQUATIONS"><span class="Identifier">FEATURE_BLEND_EQUATIONS</span></a> <span class="Other">=</span> <span class="DecNumber">4'u</span></pre></dt>
<dd>
</dd>
<a id="FEATURE_BLEND_FUNC_SEPARATE"></a>
<dt><pre><a href="sdl2_gpu.html#FEATURE_BLEND_FUNC_SEPARATE"><span class="Identifier">FEATURE_BLEND_FUNC_SEPARATE</span></a> <span class="Other">=</span> <span class="DecNumber">8'u</span></pre></dt>
<dd>
</dd>
<a id="FEATURE_BLEND_EQUATIONS_SEPARATE"></a>
<dt><pre><a href="sdl2_gpu.html#FEATURE_BLEND_EQUATIONS_SEPARATE"><span class="Identifier">FEATURE_BLEND_EQUATIONS_SEPARATE</span></a> <span class="Other">=</span> <span class="DecNumber">16'u</span></pre></dt>
<dd>
</dd>
<a id="FEATURE_GL_BGR"></a>
<dt><pre><a href="sdl2_gpu.html#FEATURE_GL_BGR"><span class="Identifier">FEATURE_GL_BGR</span></a> <span class="Other">=</span> <span class="DecNumber">32'u</span></pre></dt>
<dd>
</dd>
<a id="FEATURE_GL_BGRA"></a>
<dt><pre><a href="sdl2_gpu.html#FEATURE_GL_BGRA"><span class="Identifier">FEATURE_GL_BGRA</span></a> <span class="Other">=</span> <span class="DecNumber">64'u</span></pre></dt>
<dd>
</dd>
<a id="FEATURE_GL_ABGR"></a>
<dt><pre><a href="sdl2_gpu.html#FEATURE_GL_ABGR"><span class="Identifier">FEATURE_GL_ABGR</span></a> <span class="Other">=</span> <span class="DecNumber">128'u</span></pre></dt>
<dd>
</dd>
<a id="FEATURE_VERTEX_SHADER"></a>
<dt><pre><a href="sdl2_gpu.html#FEATURE_VERTEX_SHADER"><span class="Identifier">FEATURE_VERTEX_SHADER</span></a> <span class="Other">=</span> <span class="DecNumber">256'u</span></pre></dt>
<dd>
</dd>
<a id="FEATURE_FRAGMENT_SHADER"></a>
<dt><pre><a href="sdl2_gpu.html#FEATURE_FRAGMENT_SHADER"><span class="Identifier">FEATURE_FRAGMENT_SHADER</span></a> <span class="Other">=</span> <span class="DecNumber">512'u</span></pre></dt>
<dd>
</dd>
<a id="FEATURE_PIXEL_SHADER"></a>
<dt><pre><a href="sdl2_gpu.html#FEATURE_PIXEL_SHADER"><span class="Identifier">FEATURE_PIXEL_SHADER</span></a> <span class="Other">=</span> <span class="DecNumber">512'u</span></pre></dt>
<dd>
</dd>
<a id="FEATURE_GEOMETRY_SHADER"></a>
<dt><pre><a href="sdl2_gpu.html#FEATURE_GEOMETRY_SHADER"><span class="Identifier">FEATURE_GEOMETRY_SHADER</span></a> <span class="Other">=</span> <span class="DecNumber">1024'u</span></pre></dt>
<dd>
</dd>
<a id="FEATURE_WRAP_REPEAT_MIRRORED"></a>
<dt><pre><a href="sdl2_gpu.html#FEATURE_WRAP_REPEAT_MIRRORED"><span class="Identifier">FEATURE_WRAP_REPEAT_MIRRORED</span></a> <span class="Other">=</span> <span class="DecNumber">2048'u</span></pre></dt>
<dd>
</dd>
<a id="FEATURE_CORE_FRAMEBUFFER_OBJECTS"></a>
<dt><pre><a href="sdl2_gpu.html#FEATURE_CORE_FRAMEBUFFER_OBJECTS"><span class="Identifier">FEATURE_CORE_FRAMEBUFFER_OBJECTS</span></a> <span class="Other">=</span> <span class="DecNumber">4096'u</span></pre></dt>
<dd>
</dd>
<a id="FEATURE_ALL_BASE"></a>
<dt><pre><a href="sdl2_gpu.html#FEATURE_ALL_BASE"><span class="Identifier">FEATURE_ALL_BASE</span></a> <span class="Other">=</span> <span class="DecNumber">2'u</span></pre></dt>
<dd>
</dd>
<a id="FEATURE_ALL_BLEND_PRESETS"></a>
<dt><pre><a href="sdl2_gpu.html#FEATURE_ALL_BLEND_PRESETS"><span class="Identifier">FEATURE_ALL_BLEND_PRESETS</span></a> <span class="Other">=</span> <span class="DecNumber">12'u32</span></pre></dt>
<dd>
</dd>
<a id="FEATURE_ALL_GL_FORMATS"></a>
<dt><pre><a href="sdl2_gpu.html#FEATURE_ALL_GL_FORMATS"><span class="Identifier">FEATURE_ALL_GL_FORMATS</span></a> <span class="Other">=</span> <span class="DecNumber">224'u32</span></pre></dt>
<dd>
</dd>
<a id="FEATURE_BASIC_SHADERS"></a>
<dt><pre><a href="sdl2_gpu.html#FEATURE_BASIC_SHADERS"><span class="Identifier">FEATURE_BASIC_SHADERS</span></a> <span class="Other">=</span> <span class="DecNumber">768'u32</span></pre></dt>
<dd>
</dd>
<a id="FEATURE_ALL_SHADERS"></a>
<dt><pre><a href="sdl2_gpu.html#FEATURE_ALL_SHADERS"><span class="Identifier">FEATURE_ALL_SHADERS</span></a> <span class="Other">=</span> <span class="DecNumber">1792'u32</span></pre></dt>
<dd>
</dd>
<a id="INIT_ENABLE_VSYNC"></a>
<dt><pre><a href="sdl2_gpu.html#INIT_ENABLE_VSYNC"><span class="Identifier">INIT_ENABLE_VSYNC</span></a> <span class="Other">=</span> <span class="DecNumber">1'u</span></pre></dt>
<dd>
</dd>
<a id="INIT_DISABLE_VSYNC"></a>
<dt><pre><a href="sdl2_gpu.html#INIT_DISABLE_VSYNC"><span class="Identifier">INIT_DISABLE_VSYNC</span></a> <span class="Other">=</span> <span class="DecNumber">2'u</span></pre></dt>
<dd>
</dd>
<a id="INIT_DISABLE_DOUBLE_BUFFER"></a>
<dt><pre><a href="sdl2_gpu.html#INIT_DISABLE_DOUBLE_BUFFER"><span class="Identifier">INIT_DISABLE_DOUBLE_BUFFER</span></a> <span class="Other">=</span> <span class="DecNumber">4'u</span></pre></dt>
<dd>
</dd>
<a id="INIT_DISABLE_AUTO_VIRTUAL_RESOLUTION"></a>
<dt><pre><a href="sdl2_gpu.html#INIT_DISABLE_AUTO_VIRTUAL_RESOLUTION"><span class="Identifier">INIT_DISABLE_AUTO_VIRTUAL_RESOLUTION</span></a> <span class="Other">=</span> <span class="DecNumber">8'u</span></pre></dt>
<dd>
</dd>
<a id="INIT_REQUEST_COMPATIBILITY_PROFILE"></a>
<dt><pre><a href="sdl2_gpu.html#INIT_REQUEST_COMPATIBILITY_PROFILE"><span class="Identifier">INIT_REQUEST_COMPATIBILITY_PROFILE</span></a> <span class="Other">=</span> <span class="DecNumber">16'u</span></pre></dt>
<dd>
</dd>
<a id="INIT_USE_ROW_BY_ROW_TEXTURE_UPLOAD_FALLBACK"></a>
<dt><pre><a href="sdl2_gpu.html#INIT_USE_ROW_BY_ROW_TEXTURE_UPLOAD_FALLBACK"><span class="Identifier">INIT_USE_ROW_BY_ROW_TEXTURE_UPLOAD_FALLBACK</span></a> <span class="Other">=</span> <span class="DecNumber">32'u</span></pre></dt>
<dd>
</dd>
<a id="INIT_USE_COPY_TEXTURE_UPLOAD_FALLBACK"></a>
<dt><pre><a href="sdl2_gpu.html#INIT_USE_COPY_TEXTURE_UPLOAD_FALLBACK"><span class="Identifier">INIT_USE_COPY_TEXTURE_UPLOAD_FALLBACK</span></a> <span class="Other">=</span> <span class="DecNumber">64'u</span></pre></dt>
<dd>
</dd>
<a id="POINTS"></a>
<dt><pre><a href="sdl2_gpu.html#POINTS"><span class="Identifier">POINTS</span></a> <span class="Other">=</span> <span class="DecNumber">0'u</span></pre></dt>
<dd>
</dd>
<a id="LINES"></a>
<dt><pre><a href="sdl2_gpu.html#LINES"><span class="Identifier">LINES</span></a> <span class="Other">=</span> <span class="DecNumber">1'u</span></pre></dt>
<dd>
</dd>
<a id="LINE_LOOP"></a>
<dt><pre><a href="sdl2_gpu.html#LINE_LOOP"><span class="Identifier">LINE_LOOP</span></a> <span class="Other">=</span> <span class="DecNumber">2'u</span></pre></dt>
<dd>
</dd>
<a id="LINE_STRIP"></a>
<dt><pre><a href="sdl2_gpu.html#LINE_STRIP"><span class="Identifier">LINE_STRIP</span></a> <span class="Other">=</span> <span class="DecNumber">3'u</span></pre></dt>
<dd>
</dd>
<a id="TRIANGLES"></a>
<dt><pre><a href="sdl2_gpu.html#TRIANGLES"><span class="Identifier">TRIANGLES</span></a> <span class="Other">=</span> <span class="DecNumber">4'u</span></pre></dt>
<dd>
</dd>
<a id="TRIANGLE_STRIP"></a>
<dt><pre><a href="sdl2_gpu.html#TRIANGLE_STRIP"><span class="Identifier">TRIANGLE_STRIP</span></a> <span class="Other">=</span> <span class="DecNumber">5'u</span></pre></dt>
<dd>
</dd>
<a id="TRIANGLE_FAN"></a>
<dt><pre><a href="sdl2_gpu.html#TRIANGLE_FAN"><span class="Identifier">TRIANGLE_FAN</span></a> <span class="Other">=</span> <span class="DecNumber">6'u</span></pre></dt>
<dd>
</dd>
<a id="BATCH_XY"></a>
<dt><pre><a href="sdl2_gpu.html#BATCH_XY"><span class="Identifier">BATCH_XY</span></a> <span class="Other">=</span> <span class="DecNumber">1'u</span></pre></dt>
<dd>
</dd>
<a id="BATCH_XYZ"></a>
<dt><pre><a href="sdl2_gpu.html#BATCH_XYZ"><span class="Identifier">BATCH_XYZ</span></a> <span class="Other">=</span> <span class="DecNumber">2'u</span></pre></dt>
<dd>
</dd>
<a id="BATCH_ST"></a>
<dt><pre><a href="sdl2_gpu.html#BATCH_ST"><span class="Identifier">BATCH_ST</span></a> <span class="Other">=</span> <span class="DecNumber">4'u</span></pre></dt>
<dd>
</dd>
<a id="BATCH_RGB"></a>
<dt><pre><a href="sdl2_gpu.html#BATCH_RGB"><span class="Identifier">BATCH_RGB</span></a> <span class="Other">=</span> <span class="DecNumber">8'u</span></pre></dt>
<dd>
</dd>
<a id="BATCH_RGBA"></a>
<dt><pre><a href="sdl2_gpu.html#BATCH_RGBA"><span class="Identifier">BATCH_RGBA</span></a> <span class="Other">=</span> <span class="DecNumber">16'u</span></pre></dt>
<dd>
</dd>
<a id="BATCH_RGB8"></a>
<dt><pre><a href="sdl2_gpu.html#BATCH_RGB8"><span class="Identifier">BATCH_RGB8</span></a> <span class="Other">=</span> <span class="DecNumber">32'u</span></pre></dt>
<dd>
</dd>
<a id="BATCH_RGBA8"></a>
<dt><pre><a href="sdl2_gpu.html#BATCH_RGBA8"><span class="Identifier">BATCH_RGBA8</span></a> <span class="Other">=</span> <span class="DecNumber">64'u</span></pre></dt>
<dd>
</dd>
<a id="BATCH_XY_ST"></a>
<dt><pre><a href="sdl2_gpu.html#BATCH_XY_ST"><span class="Identifier">BATCH_XY_ST</span></a> <span class="Other">=</span> <span class="DecNumber">5'u32</span></pre></dt>
<dd>
</dd>
<a id="BATCH_XYZ_ST"></a>
<dt><pre><a href="sdl2_gpu.html#BATCH_XYZ_ST"><span class="Identifier">BATCH_XYZ_ST</span></a> <span class="Other">=</span> <span class="DecNumber">6'u32</span></pre></dt>
<dd>
</dd>
<a id="BATCH_XY_RGB"></a>
<dt><pre><a href="sdl2_gpu.html#BATCH_XY_RGB"><span class="Identifier">BATCH_XY_RGB</span></a> <span class="Other">=</span> <span class="DecNumber">9'u32</span></pre></dt>
<dd>
</dd>
<a id="BATCH_XYZ_RGB"></a>
<dt><pre><a href="sdl2_gpu.html#BATCH_XYZ_RGB"><span class="Identifier">BATCH_XYZ_RGB</span></a> <span class="Other">=</span> <span class="DecNumber">10'u32</span></pre></dt>
<dd>
</dd>
<a id="BATCH_XY_RGBA"></a>
<dt><pre><a href="sdl2_gpu.html#BATCH_XY_RGBA"><span class="Identifier">BATCH_XY_RGBA</span></a> <span class="Other">=</span> <span class="DecNumber">17'u32</span></pre></dt>
<dd>
</dd>
<a id="BATCH_XYZ_RGBA"></a>
<dt><pre><a href="sdl2_gpu.html#BATCH_XYZ_RGBA"><span class="Identifier">BATCH_XYZ_RGBA</span></a> <span class="Other">=</span> <span class="DecNumber">18'u32</span></pre></dt>
<dd>
</dd>
<a id="BATCH_XY_ST_RGBA"></a>
<dt><pre><a href="sdl2_gpu.html#BATCH_XY_ST_RGBA"><span class="Identifier">BATCH_XY_ST_RGBA</span></a> <span class="Other">=</span> <span class="DecNumber">21'u32</span></pre></dt>
<dd>
</dd>
<a id="BATCH_XYZ_ST_RGBA"></a>
<dt><pre><a href="sdl2_gpu.html#BATCH_XYZ_ST_RGBA"><span class="Identifier">BATCH_XYZ_ST_RGBA</span></a> <span class="Other">=</span> <span class="DecNumber">22'u32</span></pre></dt>
<dd>
</dd>
<a id="BATCH_XY_RGB8"></a>
<dt><pre><a href="sdl2_gpu.html#BATCH_XY_RGB8"><span class="Identifier">BATCH_XY_RGB8</span></a> <span class="Other">=</span> <span class="DecNumber">33'u32</span></pre></dt>
<dd>
</dd>
<a id="BATCH_XYZ_RGB8"></a>
<dt><pre><a href="sdl2_gpu.html#BATCH_XYZ_RGB8"><span class="Identifier">BATCH_XYZ_RGB8</span></a> <span class="Other">=</span> <span class="DecNumber">34'u32</span></pre></dt>
<dd>
</dd>
<a id="BATCH_XY_RGBA8"></a>
<dt><pre><a href="sdl2_gpu.html#BATCH_XY_RGBA8"><span class="Identifier">BATCH_XY_RGBA8</span></a> <span class="Other">=</span> <span class="DecNumber">65'u32</span></pre></dt>
<dd>
</dd>
<a id="BATCH_XYZ_RGBA8"></a>
<dt><pre><a href="sdl2_gpu.html#BATCH_XYZ_RGBA8"><span class="Identifier">BATCH_XYZ_RGBA8</span></a> <span class="Other">=</span> <span class="DecNumber">66'u32</span></pre></dt>
<dd>
</dd>
<a id="BATCH_XY_ST_RGBA8"></a>
<dt><pre><a href="sdl2_gpu.html#BATCH_XY_ST_RGBA8"><span class="Identifier">BATCH_XY_ST_RGBA8</span></a> <span class="Other">=</span> <span class="DecNumber">69'u32</span></pre></dt>
<dd>
</dd>
<a id="BATCH_XYZ_ST_RGBA8"></a>
<dt><pre><a href="sdl2_gpu.html#BATCH_XYZ_ST_RGBA8"><span class="Identifier">BATCH_XYZ_ST_RGBA8</span></a> <span class="Other">=</span> <span class="DecNumber">70'u32</span></pre></dt>
<dd>
</dd>
<a id="FLIP_NONE"></a>
<dt><pre><a href="sdl2_gpu.html#FLIP_NONE"><span class="Identifier">FLIP_NONE</span></a> <span class="Other">=</span> <span class="DecNumber">0'u</span></pre></dt>
<dd>
</dd>
<a id="FLIP_HORIZONTAL"></a>
<dt><pre><a href="sdl2_gpu.html#FLIP_HORIZONTAL"><span class="Identifier">FLIP_HORIZONTAL</span></a> <span class="Other">=</span> <span class="DecNumber">1'u</span></pre></dt>
<dd>
</dd>
<a id="FLIP_VERTICAL"></a>
<dt><pre><a href="sdl2_gpu.html#FLIP_VERTICAL"><span class="Identifier">FLIP_VERTICAL</span></a> <span class="Other">=</span> <span class="DecNumber">2'u</span></pre></dt>
<dd>
</dd>
<a id="TYPE_BYTE"></a>
<dt><pre><a href="sdl2_gpu.html#TYPE_BYTE"><span class="Identifier">TYPE_BYTE</span></a> <span class="Other">=</span> <span class="DecNumber">5120'u</span></pre></dt>
<dd>
</dd>
<a id="TYPE_UNSIGNED_BYTE"></a>
<dt><pre><a href="sdl2_gpu.html#TYPE_UNSIGNED_BYTE"><span class="Identifier">TYPE_UNSIGNED_BYTE</span></a> <span class="Other">=</span> <span class="DecNumber">5121'u</span></pre></dt>
<dd>
</dd>
<a id="TYPE_SHORT"></a>
<dt><pre><a href="sdl2_gpu.html#TYPE_SHORT"><span class="Identifier">TYPE_SHORT</span></a> <span class="Other">=</span> <span class="DecNumber">5122'u</span></pre></dt>
<dd>
</dd>
<a id="TYPE_UNSIGNED_SHORT"></a>
<dt><pre><a href="sdl2_gpu.html#TYPE_UNSIGNED_SHORT"><span class="Identifier">TYPE_UNSIGNED_SHORT</span></a> <span class="Other">=</span> <span class="DecNumber">5123'u</span></pre></dt>
<dd>
</dd>
<a id="TYPE_INT"></a>
<dt><pre><a href="sdl2_gpu.html#TYPE_INT"><span class="Identifier">TYPE_INT</span></a> <span class="Other">=</span> <span class="DecNumber">5124'u</span></pre></dt>
<dd>
</dd>
<a id="TYPE_UNSIGNED_INT"></a>
<dt><pre><a href="sdl2_gpu.html#TYPE_UNSIGNED_INT"><span class="Identifier">TYPE_UNSIGNED_INT</span></a> <span class="Other">=</span> <span class="DecNumber">5125'u</span></pre></dt>
<dd>
</dd>
<a id="TYPE_FLOAT"></a>
<dt><pre><a href="sdl2_gpu.html#TYPE_FLOAT"><span class="Identifier">TYPE_FLOAT</span></a> <span class="Other">=</span> <span class="DecNumber">5126'u</span></pre></dt>
<dd>
</dd>
<a id="TYPE_DOUBLE"></a>
<dt><pre><a href="sdl2_gpu.html#TYPE_DOUBLE"><span class="Identifier">TYPE_DOUBLE</span></a> <span class="Other">=</span> <span class="DecNumber">5130'u</span></pre></dt>
<dd>
</dd>
<a id="RENDERER_UNKNOWN"></a>
<dt><pre><a href="sdl2_gpu.html#RENDERER_UNKNOWN"><span class="Identifier">RENDERER_UNKNOWN</span></a> <span class="Other">=</span> <span class="DecNumber">0'u</span></pre></dt>
<dd>
</dd>
<a id="RENDERER_OPENGL_1_BASE"></a>
<dt><pre><a href="sdl2_gpu.html#RENDERER_OPENGL_1_BASE"><span class="Identifier">RENDERER_OPENGL_1_BASE</span></a> <span class="Other">=</span> <span class="DecNumber">1'u</span></pre></dt>
<dd>
</dd>
<a id="RENDERER_OPENGL_1"></a>
<dt><pre><a href="sdl2_gpu.html#RENDERER_OPENGL_1"><span class="Identifier">RENDERER_OPENGL_1</span></a> <span class="Other">=</span> <span class="DecNumber">2'u</span></pre></dt>
<dd>
</dd>
<a id="RENDERER_OPENGL_2"></a>
<dt><pre><a href="sdl2_gpu.html#RENDERER_OPENGL_2"><span class="Identifier">RENDERER_OPENGL_2</span></a> <span class="Other">=</span> <span class="DecNumber">3'u</span></pre></dt>
<dd>
</dd>
<a id="RENDERER_OPENGL_3"></a>
<dt><pre><a href="sdl2_gpu.html#RENDERER_OPENGL_3"><span class="Identifier">RENDERER_OPENGL_3</span></a> <span class="Other">=</span> <span class="DecNumber">4'u</span></pre></dt>
<dd>
</dd>
<a id="RENDERER_OPENGL_4"></a>
<dt><pre><a href="sdl2_gpu.html#RENDERER_OPENGL_4"><span class="Identifier">RENDERER_OPENGL_4</span></a> <span class="Other">=</span> <span class="DecNumber">5'u</span></pre></dt>
<dd>
</dd>
<a id="RENDERER_GLES_1"></a>
<dt><pre><a href="sdl2_gpu.html#RENDERER_GLES_1"><span class="Identifier">RENDERER_GLES_1</span></a> <span class="Other">=</span> <span class="DecNumber">11'u</span></pre></dt>
<dd>
</dd>
<a id="RENDERER_GLES_2"></a>
<dt><pre><a href="sdl2_gpu.html#RENDERER_GLES_2"><span class="Identifier">RENDERER_GLES_2</span></a> <span class="Other">=</span> <span class="DecNumber">12'u</span></pre></dt>
<dd>
</dd>
<a id="RENDERER_GLES_3"></a>
<dt><pre><a href="sdl2_gpu.html#RENDERER_GLES_3"><span class="Identifier">RENDERER_GLES_3</span></a> <span class="Other">=</span> <span class="DecNumber">13'u</span></pre></dt>
<dd>
</dd>
<a id="RENDERER_D3D9"></a>
<dt><pre><a href="sdl2_gpu.html#RENDERER_D3D9"><span class="Identifier">RENDERER_D3D9</span></a> <span class="Other">=</span> <span class="DecNumber">21'u</span></pre></dt>
<dd>
</dd>
<a id="RENDERER_D3D10"></a>
<dt><pre><a href="sdl2_gpu.html#RENDERER_D3D10"><span class="Identifier">RENDERER_D3D10</span></a> <span class="Other">=</span> <span class="DecNumber">22'u</span></pre></dt>
<dd>
</dd>
<a id="RENDERER_D3D11"></a>
<dt><pre><a href="sdl2_gpu.html#RENDERER_D3D11"><span class="Identifier">RENDERER_D3D11</span></a> <span class="Other">=</span> <span class="DecNumber">23'u</span></pre></dt>
<dd>
</dd>
<a id="GPU_VERSION_MAJOR"></a>
<dt><pre><a href="sdl2_gpu.html#GPU_VERSION_MAJOR"><span class="Identifier">GPU_VERSION_MAJOR</span></a> <span class="Other">=</span> <span class="DecNumber">0</span></pre></dt>
<dd>
</dd>
<a id="GPU_VERSION_MINOR"></a>
<dt><pre><a href="sdl2_gpu.html#GPU_VERSION_MINOR"><span class="Identifier">GPU_VERSION_MINOR</span></a> <span class="Other">=</span> <span class="DecNumber">11</span></pre></dt>
<dd>
</dd>
<a id="GPU_VERSION_PATCH"></a>
<dt><pre><a href="sdl2_gpu.html#GPU_VERSION_PATCH"><span class="Identifier">GPU_VERSION_PATCH</span></a> <span class="Other">=</span> <span class="DecNumber">0</span></pre></dt>
<dd>
</dd>
<a id="HAVE_STDC"></a>
<dt><pre><a href="sdl2_gpu.html#HAVE_STDC"><span class="Identifier">HAVE_STDC</span></a> <span class="Other">=</span> <span class="DecNumber">1</span></pre></dt>
<dd>
</dd>
<a id="HAVE_GNUC"></a>
<dt><pre><a href="sdl2_gpu.html#HAVE_GNUC"><span class="Identifier">HAVE_GNUC</span></a> <span class="Other">=</span> <span class="DecNumber">1</span></pre></dt>
<dd>
</dd>
<a id="HAVE_MSVC"></a>
<dt><pre><a href="sdl2_gpu.html#HAVE_MSVC"><span class="Identifier">HAVE_MSVC</span></a> <span class="Other">=</span> <span class="DecNumber">0</span></pre></dt>
<dd>
</dd>
<a id="FALSE"></a>
<dt><pre><a href="sdl2_gpu.html#FALSE"><span class="Identifier">FALSE</span></a> <span class="Other">=</span> <span class="DecNumber">0</span></pre></dt>
<dd>
</dd>
<a id="TRUE"></a>
<dt><pre><a href="sdl2_gpu.html#TRUE"><span class="Identifier">TRUE</span></a> <span class="Other">=</span> <span class="DecNumber">1</span></pre></dt>
<dd>
</dd>
<a id="RENDERER_ORDER_MAX"></a>
<dt><pre><a href="sdl2_gpu.html#RENDERER_ORDER_MAX"><span class="Identifier">RENDERER_ORDER_MAX</span></a> <span class="Other">=</span> <span class="DecNumber">10</span></pre></dt>
<dd>
</dd>
<a id="RENDERER_CUSTOM_0"></a>
<dt><pre><a href="sdl2_gpu.html#RENDERER_CUSTOM_0"><span class="Identifier">RENDERER_CUSTOM_0</span></a> <span class="Other">=</span> <span class="DecNumber">1000</span></pre></dt>
<dd>
</dd>
<a id="NEVER"></a>
<dt><pre><a href="sdl2_gpu.html#NEVER"><span class="Identifier">NEVER</span></a> <span class="Other">=</span> <span class="DecNumber">512'i32</span></pre></dt>
<dd>
</dd>
<a id="LESS"></a>
<dt><pre><a href="sdl2_gpu.html#LESS"><span class="Identifier">LESS</span></a> <span class="Other">=</span> <span class="DecNumber">513'i32</span></pre></dt>
<dd>
</dd>
<a id="EQUAL"></a>
<dt><pre><a href="sdl2_gpu.html#EQUAL"><span class="Identifier">EQUAL</span></a> <span class="Other">=</span> <span class="DecNumber">514'i32</span></pre></dt>
<dd>
</dd>
<a id="LEQUAL"></a>
<dt><pre><a href="sdl2_gpu.html#LEQUAL"><span class="Identifier">LEQUAL</span></a> <span class="Other">=</span> <span class="DecNumber">515'i32</span></pre></dt>
<dd>
</dd>
<a id="GREATER"></a>
<dt><pre><a href="sdl2_gpu.html#GREATER"><span class="Identifier">GREATER</span></a> <span class="Other">=</span> <span class="DecNumber">516'i32</span></pre></dt>
<dd>
</dd>
<a id="NOTEQUAL"></a>
<dt><pre><a href="sdl2_gpu.html#NOTEQUAL"><span class="Identifier">NOTEQUAL</span></a> <span class="Other">=</span> <span class="DecNumber">517'i32</span></pre></dt>
<dd>
</dd>
<a id="GEQUAL"></a>
<dt><pre><a href="sdl2_gpu.html#GEQUAL"><span class="Identifier">GEQUAL</span></a> <span class="Other">=</span> <span class="DecNumber">518'i32</span></pre></dt>
<dd>
</dd>
<a id="ALWAYS"></a>
<dt><pre><a href="sdl2_gpu.html#ALWAYS"><span class="Identifier">ALWAYS</span></a> <span class="Other">=</span> <span class="DecNumber">519'i32</span></pre></dt>
<dd>
</dd>
<a id="FUNC_ZERO"></a>
<dt><pre><a href="sdl2_gpu.html#FUNC_ZERO"><span class="Identifier">FUNC_ZERO</span></a> <span class="Other">=</span> <span class="DecNumber">0'i32</span></pre></dt>
<dd>
</dd>
<a id="FUNC_ONE"></a>
<dt><pre><a href="sdl2_gpu.html#FUNC_ONE"><span class="Identifier">FUNC_ONE</span></a> <span class="Other">=</span> <span class="DecNumber">1'i32</span></pre></dt>
<dd>
</dd>
<a id="FUNC_SRC_COLOR"></a>
<dt><pre><a href="sdl2_gpu.html#FUNC_SRC_COLOR"><span class="Identifier">FUNC_SRC_COLOR</span></a> <span class="Other">=</span> <span class="DecNumber">768'i32</span></pre></dt>
<dd>
</dd>
<a id="FUNC_DST_COLOR"></a>
<dt><pre><a href="sdl2_gpu.html#FUNC_DST_COLOR"><span class="Identifier">FUNC_DST_COLOR</span></a> <span class="Other">=</span> <span class="DecNumber">774'i32</span></pre></dt>
<dd>
</dd>
<a id="FUNC_ONE_MINUS_SRC"></a>
<dt><pre><a href="sdl2_gpu.html#FUNC_ONE_MINUS_SRC"><span class="Identifier">FUNC_ONE_MINUS_SRC</span></a> <span class="Other">=</span> <span class="DecNumber">769'i32</span></pre></dt>
<dd>
</dd>
<a id="FUNC_ONE_MINUS_DST"></a>
<dt><pre><a href="sdl2_gpu.html#FUNC_ONE_MINUS_DST"><span class="Identifier">FUNC_ONE_MINUS_DST</span></a> <span class="Other">=</span> <span class="DecNumber">775'i32</span></pre></dt>
<dd>
</dd>
<a id="FUNC_SRC_ALPHA"></a>
<dt><pre><a href="sdl2_gpu.html#FUNC_SRC_ALPHA"><span class="Identifier">FUNC_SRC_ALPHA</span></a> <span class="Other">=</span> <span class="DecNumber">770'i32</span></pre></dt>
<dd>
</dd>
<a id="FUNC_DST_ALPHA"></a>
<dt><pre><a href="sdl2_gpu.html#FUNC_DST_ALPHA"><span class="Identifier">FUNC_DST_ALPHA</span></a> <span class="Other">=</span> <span class="DecNumber">772'i32</span></pre></dt>
<dd>
</dd>
<a id="FUNC_ONE_MINUS_SRC_ALPHA"></a>
<dt><pre><a href="sdl2_gpu.html#FUNC_ONE_MINUS_SRC_ALPHA"><span class="Identifier">FUNC_ONE_MINUS_SRC_ALPHA</span></a> <span class="Other">=</span> <span class="DecNumber">771'i32</span></pre></dt>
<dd>
</dd>
<a id="FUNC_ONE_MINUS_DST_ALPHA"></a>
<dt><pre><a href="sdl2_gpu.html#FUNC_ONE_MINUS_DST_ALPHA"><span class="Identifier">FUNC_ONE_MINUS_DST_ALPHA</span></a> <span class="Other">=</span> <span class="DecNumber">773'i32</span></pre></dt>
<dd>
</dd>
<a id="EQ_ADD"></a>
<dt><pre><a href="sdl2_gpu.html#EQ_ADD"><span class="Identifier">EQ_ADD</span></a> <span class="Other">=</span> <span class="DecNumber">32774'i32</span></pre></dt>
<dd>
</dd>
<a id="EQ_SUBTRACT"></a>
<dt><pre><a href="sdl2_gpu.html#EQ_SUBTRACT"><span class="Identifier">EQ_SUBTRACT</span></a> <span class="Other">=</span> <span class="DecNumber">32778'i32</span></pre></dt>
<dd>
</dd>
<a id="EQ_REVERSE_SUBTRACT"></a>
<dt><pre><a href="sdl2_gpu.html#EQ_REVERSE_SUBTRACT"><span class="Identifier">EQ_REVERSE_SUBTRACT</span></a> <span class="Other">=</span> <span class="DecNumber">32779'i32</span></pre></dt>
<dd>
</dd>
<a id="BLEND_NORMAL"></a>
<dt><pre><a href="sdl2_gpu.html#BLEND_NORMAL"><span class="Identifier">BLEND_NORMAL</span></a> <span class="Other">=</span> <span class="DecNumber">0'i32</span></pre></dt>
<dd>
</dd>
<a id="BLEND_PREMULTIPLIED_ALPHA"></a>
<dt><pre><a href="sdl2_gpu.html#BLEND_PREMULTIPLIED_ALPHA"><span class="Identifier">BLEND_PREMULTIPLIED_ALPHA</span></a> <span class="Other">=</span> <span class="DecNumber">1'i32</span></pre></dt>
<dd>
</dd>
<a id="BLEND_MULTIPLY"></a>
<dt><pre><a href="sdl2_gpu.html#BLEND_MULTIPLY"><span class="Identifier">BLEND_MULTIPLY</span></a> <span class="Other">=</span> <span class="DecNumber">2'i32</span></pre></dt>
<dd>
</dd>
<a id="BLEND_ADD"></a>
<dt><pre><a href="sdl2_gpu.html#BLEND_ADD"><span class="Identifier">BLEND_ADD</span></a> <span class="Other">=</span> <span class="DecNumber">3'i32</span></pre></dt>
<dd>
</dd>
<a id="BLEND_SUBTRACT"></a>
<dt><pre><a href="sdl2_gpu.html#BLEND_SUBTRACT"><span class="Identifier">BLEND_SUBTRACT</span></a> <span class="Other">=</span> <span class="DecNumber">4'i32</span></pre></dt>
<dd>
</dd>
<a id="BLEND_MOD_ALPHA"></a>
<dt><pre><a href="sdl2_gpu.html#BLEND_MOD_ALPHA"><span class="Identifier">BLEND_MOD_ALPHA</span></a> <span class="Other">=</span> <span class="DecNumber">5'i32</span></pre></dt>
<dd>
</dd>
<a id="BLEND_SET_ALPHA"></a>
<dt><pre><a href="sdl2_gpu.html#BLEND_SET_ALPHA"><span class="Identifier">BLEND_SET_ALPHA</span></a> <span class="Other">=</span> <span class="DecNumber">6'i32</span></pre></dt>
<dd>
</dd>
<a id="BLEND_SET"></a>
<dt><pre><a href="sdl2_gpu.html#BLEND_SET"><span class="Identifier">BLEND_SET</span></a> <span class="Other">=</span> <span class="DecNumber">7'i32</span></pre></dt>
<dd>
</dd>
<a id="BLEND_NORMAL_KEEP_ALPHA"></a>
<dt><pre><a href="sdl2_gpu.html#BLEND_NORMAL_KEEP_ALPHA"><span class="Identifier">BLEND_NORMAL_KEEP_ALPHA</span></a> <span class="Other">=</span> <span class="DecNumber">8'i32</span></pre></dt>
<dd>
</dd>
<a id="BLEND_NORMAL_ADD_ALPHA"></a>
<dt><pre><a href="sdl2_gpu.html#BLEND_NORMAL_ADD_ALPHA"><span class="Identifier">BLEND_NORMAL_ADD_ALPHA</span></a> <span class="Other">=</span> <span class="DecNumber">9'i32</span></pre></dt>
<dd>
</dd>
<a id="BLEND_NORMAL_FACTOR_ALPHA"></a>
<dt><pre><a href="sdl2_gpu.html#BLEND_NORMAL_FACTOR_ALPHA"><span class="Identifier">BLEND_NORMAL_FACTOR_ALPHA</span></a> <span class="Other">=</span> <span class="DecNumber">10'i32</span></pre></dt>
<dd>
</dd>
<a id="FILTER_NEAREST"></a>
<dt><pre><a href="sdl2_gpu.html#FILTER_NEAREST"><span class="Identifier">FILTER_NEAREST</span></a> <span class="Other">=</span> <span class="DecNumber">0'i32</span></pre></dt>
<dd>
</dd>
<a id="FILTER_LINEAR"></a>
<dt><pre><a href="sdl2_gpu.html#FILTER_LINEAR"><span class="Identifier">FILTER_LINEAR</span></a> <span class="Other">=</span> <span class="DecNumber">1'i32</span></pre></dt>
<dd>
</dd>
<a id="FILTER_LINEAR_MIPMAP"></a>
<dt><pre><a href="sdl2_gpu.html#FILTER_LINEAR_MIPMAP"><span class="Identifier">FILTER_LINEAR_MIPMAP</span></a> <span class="Other">=</span> <span class="DecNumber">2'i32</span></pre></dt>
<dd>
</dd>
<a id="SNAP_NONE"></a>
<dt><pre><a href="sdl2_gpu.html#SNAP_NONE"><span class="Identifier">SNAP_NONE</span></a> <span class="Other">=</span> <span class="DecNumber">0'i32</span></pre></dt>
<dd>
</dd>
<a id="SNAP_POSITION"></a>
<dt><pre><a href="sdl2_gpu.html#SNAP_POSITION"><span class="Identifier">SNAP_POSITION</span></a> <span class="Other">=</span> <span class="DecNumber">1'i32</span></pre></dt>
<dd>
</dd>
<a id="SNAP_DIMENSIONS"></a>
<dt><pre><a href="sdl2_gpu.html#SNAP_DIMENSIONS"><span class="Identifier">SNAP_DIMENSIONS</span></a> <span class="Other">=</span> <span class="DecNumber">2'i32</span></pre></dt>
<dd>
</dd>
<a id="SNAP_POSITION_AND_DIMENSIONS"></a>
<dt><pre><a href="sdl2_gpu.html#SNAP_POSITION_AND_DIMENSIONS"><span class="Identifier">SNAP_POSITION_AND_DIMENSIONS</span></a> <span class="Other">=</span> <span class="DecNumber">3'i32</span></pre></dt>
<dd>
</dd>
<a id="WRAP_NONE"></a>
<dt><pre><a href="sdl2_gpu.html#WRAP_NONE"><span class="Identifier">WRAP_NONE</span></a> <span class="Other">=</span> <span class="DecNumber">0'i32</span></pre></dt>
<dd>
</dd>
<a id="WRAP_REPEAT"></a>
<dt><pre><a href="sdl2_gpu.html#WRAP_REPEAT"><span class="Identifier">WRAP_REPEAT</span></a> <span class="Other">=</span> <span class="DecNumber">1'i32</span></pre></dt>
<dd>
</dd>
<a id="WRAP_MIRRORED"></a>
<dt><pre><a href="sdl2_gpu.html#WRAP_MIRRORED"><span class="Identifier">WRAP_MIRRORED</span></a> <span class="Other">=</span> <span class="DecNumber">2'i32</span></pre></dt>
<dd>
</dd>
<a id="FORMAT_LUMINANCE"></a>
<dt><pre><a href="sdl2_gpu.html#FORMAT_LUMINANCE"><span class="Identifier">FORMAT_LUMINANCE</span></a> <span class="Other">=</span> <span class="DecNumber">1'i32</span></pre></dt>
<dd>
</dd>
<a id="FORMAT_LUMINANCE_ALPHA"></a>
<dt><pre><a href="sdl2_gpu.html#FORMAT_LUMINANCE_ALPHA"><span class="Identifier">FORMAT_LUMINANCE_ALPHA</span></a> <span class="Other">=</span> <span class="DecNumber">2'i32</span></pre></dt>
<dd>
</dd>
<a id="FORMAT_RGB"></a>
<dt><pre><a href="sdl2_gpu.html#FORMAT_RGB"><span class="Identifier">FORMAT_RGB</span></a> <span class="Other">=</span> <span class="DecNumber">3'i32</span></pre></dt>
<dd>
</dd>
<a id="FORMAT_RGBA"></a>
<dt><pre><a href="sdl2_gpu.html#FORMAT_RGBA"><span class="Identifier">FORMAT_RGBA</span></a> <span class="Other">=</span> <span class="DecNumber">4'i32</span></pre></dt>
<dd>
</dd>
<a id="FORMAT_ALPHA"></a>
<dt><pre><a href="sdl2_gpu.html#FORMAT_ALPHA"><span class="Identifier">FORMAT_ALPHA</span></a> <span class="Other">=</span> <span class="DecNumber">5'i32</span></pre></dt>
<dd>
</dd>
<a id="FORMAT_RG"></a>
<dt><pre><a href="sdl2_gpu.html#FORMAT_RG"><span class="Identifier">FORMAT_RG</span></a> <span class="Other">=</span> <span class="DecNumber">6'i32</span></pre></dt>
<dd>
</dd>
<a id="FORMAT_YCbCr422"></a>
<dt><pre><a href="sdl2_gpu.html#FORMAT_YCbCr422"><span class="Identifier">FORMAT_YCbCr422</span></a> <span class="Other">=</span> <span class="DecNumber">7'i32</span></pre></dt>
<dd>
</dd>
<a id="FORMAT_YCbCr420P"></a>
<dt><pre><a href="sdl2_gpu.html#FORMAT_YCbCr420P"><span class="Identifier">FORMAT_YCbCr420P</span></a> <span class="Other">=</span> <span class="DecNumber">8'i32</span></pre></dt>
<dd>
</dd>
<a id="FORMAT_BGR"></a>
<dt><pre><a href="sdl2_gpu.html#FORMAT_BGR"><span class="Identifier">FORMAT_BGR</span></a> <span class="Other">=</span> <span class="DecNumber">9'i32</span></pre></dt>
<dd>
</dd>
<a id="FORMAT_BGRA"></a>
<dt><pre><a href="sdl2_gpu.html#FORMAT_BGRA"><span class="Identifier">FORMAT_BGRA</span></a> <span class="Other">=</span> <span class="DecNumber">10'i32</span></pre></dt>
<dd>
</dd>
<a id="FORMAT_ABGR"></a>
<dt><pre><a href="sdl2_gpu.html#FORMAT_ABGR"><span class="Identifier">FORMAT_ABGR</span></a> <span class="Other">=</span> <span class="DecNumber">11'i32</span></pre></dt>
<dd>
</dd>
<a id="FILE_AUTO"></a>
<dt><pre><a href="sdl2_gpu.html#FILE_AUTO"><span class="Identifier">FILE_AUTO</span></a> <span class="Other">=</span> <span class="DecNumber">0'i32</span></pre></dt>
<dd>
</dd>
<a id="FILE_PNG"></a>
<dt><pre><a href="sdl2_gpu.html#FILE_PNG"><span class="Identifier">FILE_PNG</span></a> <span class="Other">=</span> <span class="DecNumber">1</span></pre></dt>
<dd>
</dd>
<a id="FILE_BMP"></a>
<dt><pre><a href="sdl2_gpu.html#FILE_BMP"><span class="Identifier">FILE_BMP</span></a> <span class="Other">=</span> <span class="DecNumber">2</span></pre></dt>
<dd>
</dd>
<a id="FILE_TGA"></a>
<dt><pre><a href="sdl2_gpu.html#FILE_TGA"><span class="Identifier">FILE_TGA</span></a> <span class="Other">=</span> <span class="DecNumber">3</span></pre></dt>
<dd>
</dd>
<a id="MODEL"></a>
<dt><pre><a href="sdl2_gpu.html#MODEL"><span class="Identifier">MODEL</span></a> <span class="Other">=</span> <span class="DecNumber">0</span></pre></dt>
<dd>
</dd>
<a id="VIEW"></a>
<dt><pre><a href="sdl2_gpu.html#VIEW"><span class="Identifier">VIEW</span></a> <span class="Other">=</span> <span class="DecNumber">1</span></pre></dt>
<dd>
</dd>
<a id="PROJECTION"></a>
<dt><pre><a href="sdl2_gpu.html#PROJECTION"><span class="Identifier">PROJECTION</span></a> <span class="Other">=</span> <span class="DecNumber">2</span></pre></dt>
<dd>
</dd>
<a id="DEFAULT_INIT_FLAGS"></a>
<dt><pre><a href="sdl2_gpu.html#DEFAULT_INIT_FLAGS"><span class="Identifier">DEFAULT_INIT_FLAGS</span></a> <span class="Other">=</span> <span class="DecNumber">0</span></pre></dt>
<dd>
</dd>
<a id="VERTEX_SHADER"></a>
<dt><pre><a href="sdl2_gpu.html#VERTEX_SHADER"><span class="Identifier">VERTEX_SHADER</span></a> <span class="Other">=</span> <span class="DecNumber">0'i32</span></pre></dt>
<dd>
</dd>
<a id="FRAGMENT_SHADER"></a>
<dt><pre><a href="sdl2_gpu.html#FRAGMENT_SHADER"><span class="Identifier">FRAGMENT_SHADER</span></a> <span class="Other">=</span> <span class="DecNumber">1'i32</span></pre></dt>
<dd>
</dd>
<a id="PIXEL_SHADER"></a>
<dt><pre><a href="sdl2_gpu.html#PIXEL_SHADER"><span class="Identifier">PIXEL_SHADER</span></a> <span class="Other">=</span> <span class="DecNumber">1'i32</span></pre></dt>
<dd>
</dd>
<a id="GEOMETRY_SHADER"></a>
<dt><pre><a href="sdl2_gpu.html#GEOMETRY_SHADER"><span class="Identifier">GEOMETRY_SHADER</span></a> <span class="Other">=</span> <span class="DecNumber">2'i32</span></pre></dt>
<dd>
</dd>
<a id="LANGUAGE_NONE"></a>
<dt><pre><a href="sdl2_gpu.html#LANGUAGE_NONE"><span class="Identifier">LANGUAGE_NONE</span></a> <span class="Other">=</span> <span class="DecNumber">0'i32</span></pre></dt>
<dd>
</dd>
<a id="LANGUAGE_ARB_ASSEMBLY"></a>
<dt><pre><a href="sdl2_gpu.html#LANGUAGE_ARB_ASSEMBLY"><span class="Identifier">LANGUAGE_ARB_ASSEMBLY</span></a> <span class="Other">=</span> <span class="DecNumber">1'i32</span></pre></dt>
<dd>
</dd>
<a id="LANGUAGE_GLSL"></a>
<dt><pre><a href="sdl2_gpu.html#LANGUAGE_GLSL"><span class="Identifier">LANGUAGE_GLSL</span></a> <span class="Other">=</span> <span class="DecNumber">2'i32</span></pre></dt>
<dd>
</dd>
<a id="LANGUAGE_GLSLES"></a>
<dt><pre><a href="sdl2_gpu.html#LANGUAGE_GLSLES"><span class="Identifier">LANGUAGE_GLSLES</span></a> <span class="Other">=</span> <span class="DecNumber">3'i32</span></pre></dt>
<dd>
</dd>
<a id="LANGUAGE_HLSL"></a>
<dt><pre><a href="sdl2_gpu.html#LANGUAGE_HLSL"><span class="Identifier">LANGUAGE_HLSL</span></a> <span class="Other">=</span> <span class="DecNumber">4'i32</span></pre></dt>
<dd>
</dd>
<a id="LANGUAGE_CG"></a>
<dt><pre><a href="sdl2_gpu.html#LANGUAGE_CG"><span class="Identifier">LANGUAGE_CG</span></a> <span class="Other">=</span> <span class="DecNumber">5'i32</span></pre></dt>
<dd>
</dd>
<a id="ERROR_NONE"></a>
<dt><pre><a href="sdl2_gpu.html#ERROR_NONE"><span class="Identifier">ERROR_NONE</span></a> <span class="Other">=</span> <span class="DecNumber">0'i32</span></pre></dt>
<dd>
</dd>
<a id="ERROR_BACKEND_ERROR"></a>
<dt><pre><a href="sdl2_gpu.html#ERROR_BACKEND_ERROR"><span class="Identifier">ERROR_BACKEND_ERROR</span></a> <span class="Other">=</span> <span class="DecNumber">1'i32</span></pre></dt>
<dd>
</dd>
<a id="ERROR_DATA_ERROR"></a>
<dt><pre><a href="sdl2_gpu.html#ERROR_DATA_ERROR"><span class="Identifier">ERROR_DATA_ERROR</span></a> <span class="Other">=</span> <span class="DecNumber">2'i32</span></pre></dt>
<dd>
</dd>
<a id="ERROR_USER_ERROR"></a>
<dt><pre><a href="sdl2_gpu.html#ERROR_USER_ERROR"><span class="Identifier">ERROR_USER_ERROR</span></a> <span class="Other">=</span> <span class="DecNumber">3'i32</span></pre></dt>
<dd>
</dd>
<a id="ERROR_UNSUPPORTED_FUNCTION"></a>
<dt><pre><a href="sdl2_gpu.html#ERROR_UNSUPPORTED_FUNCTION"><span class="Identifier">ERROR_UNSUPPORTED_FUNCTION</span></a> <span class="Other">=</span> <span class="DecNumber">4'i32</span></pre></dt>
<dd>
</dd>
<a id="ERROR_NULL_ARGUMENT"></a>
<dt><pre><a href="sdl2_gpu.html#ERROR_NULL_ARGUMENT"><span class="Identifier">ERROR_NULL_ARGUMENT</span></a> <span class="Other">=</span> <span class="DecNumber">5'i32</span></pre></dt>
<dd>
</dd>
<a id="ERROR_FILE_NOT_FOUND"></a>
<dt><pre><a href="sdl2_gpu.html#ERROR_FILE_NOT_FOUND"><span class="Identifier">ERROR_FILE_NOT_FOUND</span></a> <span class="Other">=</span> <span class="DecNumber">6'i32</span></pre></dt>
<dd>
</dd>
<a id="DEBUG_LEVEL_0"></a>
<dt><pre><a href="sdl2_gpu.html#DEBUG_LEVEL_0"><span class="Identifier">DEBUG_LEVEL_0</span></a> <span class="Other">=</span> <span class="DecNumber">0'i32</span></pre></dt>
<dd>
</dd>
<a id="DEBUG_LEVEL_1"></a>
<dt><pre><a href="sdl2_gpu.html#DEBUG_LEVEL_1"><span class="Identifier">DEBUG_LEVEL_1</span></a> <span class="Other">=</span> <span class="DecNumber">1'i32</span></pre></dt>
<dd>
</dd>
<a id="DEBUG_LEVEL_2"></a>
<dt><pre><a href="sdl2_gpu.html#DEBUG_LEVEL_2"><span class="Identifier">DEBUG_LEVEL_2</span></a> <span class="Other">=</span> <span class="DecNumber">2'i32</span></pre></dt>
<dd>
</dd>
<a id="DEBUG_LEVEL_3"></a>
<dt><pre><a href="sdl2_gpu.html#DEBUG_LEVEL_3"><span class="Identifier">DEBUG_LEVEL_3</span></a> <span class="Other">=</span> <span class="DecNumber">3'i32</span></pre></dt>
<dd>
</dd>
<a id="DEBUG_LEVEL_MAX"></a>
<dt><pre><a href="sdl2_gpu.html#DEBUG_LEVEL_MAX"><span class="Identifier">DEBUG_LEVEL_MAX</span></a> <span class="Other">=</span> <span class="DecNumber">3'i32</span></pre></dt>
<dd>
</dd>
</dl></div>
<div class="section" id="12">
<h1><a class="toc-backref" href="#12">Procs</a></h1>
<dl class="item">
<a id="getLinkedVersion"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getLinkedVersion"><span class="Identifier">getLinkedVersion</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Version"><span class="Identifier">Version</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetLinkedVersion&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
</dd>
<a id="setInitWindow,Uint32"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setInitWindow%2CUint32"><span class="Identifier">setInitWindow</span></a><span class="Other">(</span><span class="Identifier">windowID</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetInitWindow&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! The window corresponding to 'windowID' will be used to create the rendering context instead of creating a new window.</pre>
</dd>
<a id="getInitWindow"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getInitWindow"><span class="Identifier">getInitWindow</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetInitWindow&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Returns the window ID that has been set via GPU_SetInitWindow().</pre>
</dd>
<a id="setPreInitFlags,InitFlagEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setPreInitFlags%2CInitFlagEnum"><span class="Identifier">setPreInitFlags</span></a><span class="Other">(</span><span class="Identifier">flags</span><span class="Other">:</span> <a href="sdl2_gpu.html#InitFlagEnum"><span class="Identifier">InitFlagEnum</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetPreInitFlags&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Set special flags to use for initialization. Set these before calling GPU_Init().
\param GPU_flags An OR'ed combination of GPU_InitFlagEnum flags. Default flags (0) enable late swap vsync and double buffering.</pre>
</dd>
<a id="getPreInitFlags"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getPreInitFlags"><span class="Identifier">getPreInitFlags</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="sdl2_gpu.html#InitFlagEnum"><span class="Identifier">InitFlagEnum</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetPreInitFlags&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Returns the current special flags to use for initialization.</pre>
</dd>
<a id="setRequiredFeatures,FeatureEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setRequiredFeatures%2CFeatureEnum"><span class="Identifier">setRequiredFeatures</span></a><span class="Other">(</span><span class="Identifier">features</span><span class="Other">:</span> <a href="sdl2_gpu.html#FeatureEnum"><span class="Identifier">FeatureEnum</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetRequiredFeatures&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Set required features to use for initialization. Set these before calling GPU_Init().
\param features An OR'ed combination of GPU_FeatureEnum flags. Required features will force GPU_Init() to create a renderer that supports all of the given flags or else fail.</pre>
</dd>
<a id="getRequiredFeatures"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getRequiredFeatures"><span class="Identifier">getRequiredFeatures</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="sdl2_gpu.html#FeatureEnum"><span class="Identifier">FeatureEnum</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetRequiredFeatures&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Returns the current required features to use for initialization.</pre>
</dd>
<a id="getDefaultRendererOrder,ptr.cint,ptr.RendererID"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getDefaultRendererOrder%2Cptr.cint%2Cptr.RendererID"><span class="Identifier">getDefaultRendererOrder</span></a><span class="Other">(</span><span class="Identifier">orderSize</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">order</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#RendererID"><span class="Identifier">RendererID</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetDefaultRendererOrder&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Gets the default initialization renderer IDs for the current platform copied into the 'order' array and the number of renderer IDs into 'order_size'. Pass NULL for 'order' to just get the size of the renderer order array. Will return at most GPU_RENDERER_ORDER_MAX renderers.</pre>
</dd>
<a id="getRendererOrder,ptr.cint,ptr.RendererID"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getRendererOrder%2Cptr.cint%2Cptr.RendererID"><span class="Identifier">getRendererOrder</span></a><span class="Other">(</span><span class="Identifier">orderSize</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">order</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#RendererID"><span class="Identifier">RendererID</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetRendererOrder&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Gets the current renderer ID order for initialization copied into the 'order' array and the number of renderer IDs into 'order_size'. Pass NULL for 'order' to just get the size of the renderer order array.</pre>
</dd>
<a id="setRendererOrder,cint,ptr.RendererID"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setRendererOrder%2Ccint%2Cptr.RendererID"><span class="Identifier">setRendererOrder</span></a><span class="Other">(</span><span class="Identifier">orderSize</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">order</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#RendererID"><span class="Identifier">RendererID</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetRendererOrder&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the renderer ID order to use for initialization. If 'order' is NULL, it will restore the default order.</pre>
</dd>
<a id="init,Uint16,Uint16,WindowFlags"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#init%2CUint16%2CUint16%2CWindowFlags"><span class="Identifier">init</span></a><span class="Other">(</span><span class="Identifier">w</span><span class="Other">:</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a><span class="Other">;</span> <span class="Identifier">h</span><span class="Other">:</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a><span class="Other">;</span> <span class="Identifier">flags</span><span class="Other">:</span> <a href="sdl2_gpu.html#WindowFlagEnum"><span class="Identifier">WindowFlagEnum</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_Init&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Initializes SDL's video subsystem (if necessary) and all of SDL_gpu's internal structures.
Chooses a renderer and creates a window with the given dimensions and window creation flags.
A pointer to the resulting window's render target is returned.
\param w Desired window width in pixels
\param h Desired window height in pixels
\param SDL_flags The bit flags to pass to SDL when creating the window. Use GPU_DEFAULT_INIT_FLAGS if you don't care.
\return On success, returns the new context target (i.e. render target backed by a window). On failure, returns NULL.
Initializes these systems:
The 'error queue': Stores error codes and description strings.
The 'renderer registry': An array of information about the supported renderers on the current platform,
such as the renderer name and id and its life cycle functions.
The SDL library and its video subsystem: Calls SDL_Init() if SDL has not already been initialized.
Use SDL_InitSubsystem() to initialize more parts of SDL.
The current renderer: Walks through each renderer in the renderer registry and tries to initialize them until one succeeds.
\see GPU_RendererID
\see GPU_InitRenderer()
\see GPU_InitRendererByID()
\see GPU_SetRendererOrder()
\see GPU_PushErrorCode()</pre>
</dd>
<a id="initRenderer,RendererEnum,Uint16,Uint16,WindowFlags"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#initRenderer%2CRendererEnum%2CUint16%2CUint16%2CWindowFlags"><span class="Identifier">initRenderer</span></a><span class="Other">(</span><span class="Identifier">rendererEnum</span><span class="Other">:</span> <a href="sdl2_gpu.html#RendererEnum"><span class="Identifier">RendererEnum</span></a><span class="Other">;</span> <span class="Identifier">w</span><span class="Other">:</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a><span class="Other">;</span> <span class="Identifier">h</span><span class="Other">:</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a><span class="Other">;</span>
<span class="Identifier">flags</span><span class="Other">:</span> <a href="sdl2_gpu.html#WindowFlagEnum"><span class="Identifier">WindowFlagEnum</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_InitRenderer&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Initializes SDL and SDL_gpu. Creates a window and the requested renderer context.</pre>
</dd>
<a id="initRendererByID,RendererID,Uint16,Uint16,WindowFlags"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#initRendererByID%2CRendererID%2CUint16%2CUint16%2CWindowFlags"><span class="Identifier">initRendererByID</span></a><span class="Other">(</span><span class="Identifier">rendererRequest</span><span class="Other">:</span> <a href="sdl2_gpu.html#RendererID"><span class="Identifier">RendererID</span></a><span class="Other">;</span> <span class="Identifier">w</span><span class="Other">:</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a><span class="Other">;</span> <span class="Identifier">h</span><span class="Other">:</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a><span class="Other">;</span>
<span class="Identifier">flags</span><span class="Other">:</span> <a href="sdl2_gpu.html#WindowFlagEnum"><span class="Identifier">WindowFlagEnum</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_InitRendererByID&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Initializes SDL and SDL_gpu. Creates a window and the requested renderer context.
By requesting a renderer via ID, you can specify the major and minor versions of an individual renderer backend.
\see GPU_MakeRendererID</pre>
</dd>
<a id="isFeatureEnabled,FeatureEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#isFeatureEnabled%2CFeatureEnum"><span class="Identifier">isFeatureEnabled</span></a><span class="Other">(</span><span class="Identifier">feature</span><span class="Other">:</span> <a href="sdl2_gpu.html#FeatureEnum"><span class="Identifier">FeatureEnum</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_IsFeatureEnabled&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Checks for important GPU features which may not be supported depending on a device's extension support. Feature flags (GPU_FEATURE_) can be bitwise OR'd together.
\return 1 if all of the passed features are enabled/supported
\return 0 if any of the passed features are disabled/unsupported</pre>
</dd>
<a id="closeCurrentRenderer"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#closeCurrentRenderer"><span class="Identifier">closeCurrentRenderer</span></a><span class="Other">(</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_CloseCurrentRenderer&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Clean up the renderer state.</pre>
</dd>
<a id="quit"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#quit"><span class="Identifier">quit</span></a><span class="Other">(</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_Quit&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Clean up the renderer state and shut down SDL_gpu.</pre>
</dd>
<a id="setDebugLevel,DebugLevelEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setDebugLevel%2CDebugLevelEnum"><span class="Identifier">setDebugLevel</span></a><span class="Other">(</span><span class="Identifier">level</span><span class="Other">:</span> <a href="sdl2_gpu.html#DebugLevelEnum"><span class="Identifier">DebugLevelEnum</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetDebugLevel&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! \ingroup Logging
@{
! Sets the global debug level.
GPU_DEBUG_LEVEL_0: Normal
GPU_DEBUG_LEVEL_1: Prints messages when errors are pushed via GPU_PushErrorCode()
GPU_DEBUG_LEVEL_2: Elevates warning logs to error priority
GPU_DEBUG_LEVEL_3: Elevates info logs to error priority</pre>
</dd>
<a id="getDebugLevel"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getDebugLevel"><span class="Identifier">getDebugLevel</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="sdl2_gpu.html#DebugLevelEnum"><span class="Identifier">DebugLevelEnum</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetDebugLevel&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Returns the current global debug level.</pre>
</dd>
<a id="logInfo,cstring"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#logInfo%2Ccstring"><span class="Identifier">logInfo</span></a><span class="Other">(</span><span class="Identifier">format</span><span class="Other">:</span> <span class="Identifier">cstring</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_LogInfo&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span><span class="Other">,</span> <span class="Identifier">varargs</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Prints an informational log message.</pre>
</dd>
<a id="logWarning,cstring"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#logWarning%2Ccstring"><span class="Identifier">logWarning</span></a><span class="Other">(</span><span class="Identifier">format</span><span class="Other">:</span> <span class="Identifier">cstring</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_LogWarning&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span><span class="Other">,</span> <span class="Identifier">varargs</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Prints a warning log message.</pre>
</dd>
<a id="logError,cstring"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#logError%2Ccstring"><span class="Identifier">logError</span></a><span class="Other">(</span><span class="Identifier">format</span><span class="Other">:</span> <span class="Identifier">cstring</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_LogError&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span><span class="Other">,</span> <span class="Identifier">varargs</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Prints an error log message.</pre>
</dd>
<a id="setLogCallback,proc(LogLevelEnum,cstring,va_list)"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setLogCallback%2Cproc%28LogLevelEnum%2Ccstring%2Cva_list%29"><span class="Identifier">setLogCallback</span></a><span class="Other">(</span><span class="Identifier">callback</span><span class="Other">:</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">logLevel</span><span class="Other">:</span> <a href="sdl2_gpu.html#LogLevelEnum"><span class="Identifier">LogLevelEnum</span></a><span class="Other">;</span> <span class="Identifier">format</span><span class="Other">:</span> <span class="Identifier">cstring</span><span class="Other">;</span>
<span class="Identifier">args</span><span class="Other">:</span> <span class="Identifier">va_list</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">cint</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">cdecl</span></span><span class="Other">.}</span></span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetLogCallback&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets a custom callback for handling logging. Use stdio's vsnprintf() to process the va_list into a string. Passing NULL as the callback will reset to the default internal logging.</pre>
</dd>
<a id="pushErrorCode,cstring,ErrorEnum,cstring"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#pushErrorCode%2Ccstring%2CErrorEnum%2Ccstring"><span class="Identifier">pushErrorCode</span></a><span class="Other">(</span><span class="Identifier">function</span><span class="Other">:</span> <span class="Identifier">cstring</span><span class="Other">;</span> <span class="Identifier">error</span><span class="Other">:</span> <a href="sdl2_gpu.html#ErrorEnum"><span class="Identifier">ErrorEnum</span></a><span class="Other">;</span> <span class="Identifier">details</span><span class="Other">:</span> <span class="Identifier">cstring</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_PushErrorCode&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span><span class="Other">,</span> <span class="Identifier">varargs</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Pushes a new error code into the error queue. If the queue is full, the queue is not modified.
\param function The name of the function that pushed the error
\param error The error code to push on the error queue
\param details Additional information string, can be NULL.</pre>
</dd>
<a id="popErrorCode"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#popErrorCode"><span class="Identifier">popErrorCode</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="sdl2_gpu.html#ErrorObject"><span class="Identifier">ErrorObject</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_PopErrorCode&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Pops an error object from the error queue and returns it. If the error queue is empty, it returns an error object with NULL function, GPU_ERROR_NONE error, and NULL details.</pre>
</dd>
<a id="getErrorString,ErrorEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getErrorString%2CErrorEnum"><span class="Identifier">getErrorString</span></a><span class="Other">(</span><span class="Identifier">error</span><span class="Other">:</span> <a href="sdl2_gpu.html#ErrorEnum"><span class="Identifier">ErrorEnum</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">cstring</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetErrorString&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Gets the string representation of an error code.</pre>
</dd>
<a id="setErrorQueueMax,cuint"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setErrorQueueMax%2Ccuint"><span class="Identifier">setErrorQueueMax</span></a><span class="Other">(</span><span class="Identifier">max</span><span class="Other">:</span> <span class="Identifier">cuint</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetErrorQueueMax&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Changes the maximum number of error objects that SDL_gpu will store. This deletes all currently stored errors.</pre>
</dd>
<a id="makeRendererID,cstring,RendererEnum,cint,cint"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#makeRendererID%2Ccstring%2CRendererEnum%2Ccint%2Ccint"><span class="Identifier">makeRendererID</span></a><span class="Other">(</span><span class="Identifier">name</span><span class="Other">:</span> <span class="Identifier">cstring</span><span class="Other">;</span> <span class="Identifier">renderer</span><span class="Other">:</span> <a href="sdl2_gpu.html#RendererEnum"><span class="Identifier">RendererEnum</span></a><span class="Other">;</span> <span class="Identifier">majorVersion</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span>
<span class="Identifier">minorVersion</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">)</span><span class="Other">:</span> <a href="sdl2_gpu.html#RendererID"><span class="Identifier">RendererID</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_MakeRendererID&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>End of Logging
! @}
! \ingroup RendererSetup
@{
! Returns an initialized GPU_RendererID.</pre>
</dd>
<a id="getRendererID,RendererEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getRendererID%2CRendererEnum"><span class="Identifier">getRendererID</span></a><span class="Other">(</span><span class="Identifier">renderer</span><span class="Other">:</span> <a href="sdl2_gpu.html#RendererEnum"><span class="Identifier">RendererEnum</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2_gpu.html#RendererID"><span class="Identifier">RendererID</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetRendererID&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Gets the first registered renderer identifier for the given enum value.</pre>
</dd>
<a id="getNumRegisteredRenderers"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getNumRegisteredRenderers"><span class="Identifier">getNumRegisteredRenderers</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">cint</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetNumRegisteredRenderers&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Gets the number of registered (available) renderers.</pre>
</dd>
<a id="getRegisteredRendererList,ptr.RendererID"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getRegisteredRendererList%2Cptr.RendererID"><span class="Identifier">getRegisteredRendererList</span></a><span class="Other">(</span><span class="Identifier">renderersArray</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#RendererID"><span class="Identifier">RendererID</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetRegisteredRendererList&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Gets an array of identifiers for the registered (available) renderers.</pre>
</dd>
<a id="registerRenderer,RendererID,proc(RendererID),proc(ptr.Renderer)"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#registerRenderer%2CRendererID%2Cproc%28RendererID%29%2Cproc%28ptr.Renderer%29"><span class="Identifier">registerRenderer</span></a><span class="Other">(</span><span class="Identifier">id</span><span class="Other">:</span> <a href="sdl2_gpu.html#RendererID"><span class="Identifier">RendererID</span></a><span class="Other">;</span> <span class="Identifier">createRenderer</span><span class="Other">:</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">request</span><span class="Other">:</span> <a href="sdl2_gpu.html#RendererID"><span class="Identifier">RendererID</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Renderer"><span class="Identifier">Renderer</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span><span class="Other">;</span> <span class="Identifier">freeRenderer</span><span class="Other">:</span> <span class="Keyword">proc</span> <span class="Other">(</span><span class="Identifier">renderer</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Renderer"><span class="Identifier">Renderer</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">cdecl</span></span><span class="Other">.}</span></span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_RegisterRenderer&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Prepares a renderer for use by SDL_gpu.</pre>
</dd>
<a id="reserveNextRendererEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#reserveNextRendererEnum"><span class="Identifier">reserveNextRendererEnum</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="sdl2_gpu.html#RendererEnum"><span class="Identifier">RendererEnum</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_ReserveNextRendererEnum&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>End of RendererSetup
! @}
! \ingroup RendererControls
@{
! Gets the next enum ID that can be used for a custom renderer.</pre>
</dd>
<a id="getNumActiveRenderers"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getNumActiveRenderers"><span class="Identifier">getNumActiveRenderers</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">cint</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetNumActiveRenderers&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Gets the number of active (created) renderers.</pre>
</dd>
<a id="getActiveRendererList,ptr.RendererID"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getActiveRendererList%2Cptr.RendererID"><span class="Identifier">getActiveRendererList</span></a><span class="Other">(</span><span class="Identifier">renderersArray</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#RendererID"><span class="Identifier">RendererID</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetActiveRendererList&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Gets an array of identifiers for the active renderers.</pre>
</dd>
<a id="getCurrentRenderer"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getCurrentRenderer"><span class="Identifier">getCurrentRenderer</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Renderer"><span class="Identifier">Renderer</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetCurrentRenderer&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! \return The current renderer</pre>
</dd>
<a id="setCurrentRenderer,RendererID"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setCurrentRenderer%2CRendererID"><span class="Identifier">setCurrentRenderer</span></a><span class="Other">(</span><span class="Identifier">id</span><span class="Other">:</span> <a href="sdl2_gpu.html#RendererID"><span class="Identifier">RendererID</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetCurrentRenderer&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Switches the current renderer to the renderer matching the given identifier.</pre>
</dd>
<a id="getRenderer,RendererID"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getRenderer%2CRendererID"><span class="Identifier">getRenderer</span></a><span class="Other">(</span><span class="Identifier">id</span><span class="Other">:</span> <a href="sdl2_gpu.html#RendererID"><span class="Identifier">RendererID</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Renderer"><span class="Identifier">Renderer</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetRenderer&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! \return The renderer matching the given identifier.</pre>
</dd>
<a id="freeRenderer,ptr.Renderer"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#freeRenderer%2Cptr.Renderer"><span class="Identifier">freeRenderer</span></a><span class="Other">(</span><span class="Identifier">renderer</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Renderer"><span class="Identifier">Renderer</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_FreeRenderer&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
</dd>
<a id="resetRendererState"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#resetRendererState"><span class="Identifier">resetRendererState</span></a><span class="Other">(</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_ResetRendererState&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Reapplies the renderer state to the backend API (e.g. OpenGL, Direct3D). Use this if you want SDL_gpu to be able to render after you've used direct backend calls.</pre>
</dd>
<a id="setCoordinateMode,Bool"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setCoordinateMode%2CBool"><span class="Identifier">setCoordinateMode</span></a><span class="Other">(</span><span class="Identifier">useMathCoords</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetCoordinateMode&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the coordinate mode for this renderer. Target and image coordinates will be either &quot;inverted&quot; (0,0 is the upper left corner, y increases downward) or &quot;mathematical&quot; (0,0 is the bottom-left corner, y increases upward).
The default is inverted (0), as this is traditional for 2D graphics.
\param inverted 0 is for inverted coordinates, 1 is for mathematical coordinates</pre>
</dd>
<a id="getCoordinateMode"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getCoordinateMode"><span class="Identifier">getCoordinateMode</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetCoordinateMode&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
</dd>
<a id="setDefaultAnchor,cfloat,cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setDefaultAnchor%2Ccfloat%2Ccfloat"><span class="Identifier">setDefaultAnchor</span></a><span class="Other">(</span><span class="Identifier">anchorX</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">anchorY</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetDefaultAnchor&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the default image blitting anchor for newly created images.
\see GPU_SetAnchor</pre>
</dd>
<a id="getDefaultAnchor,ptr.cfloat,ptr.cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getDefaultAnchor%2Cptr.cfloat%2Cptr.cfloat"><span class="Identifier">getDefaultAnchor</span></a><span class="Other">(</span><span class="Identifier">anchorX</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">anchorY</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetDefaultAnchor&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Returns the default image blitting anchor through the given variables.
\see GPU_GetAnchor</pre>
</dd>
<a id="getContextTarget"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getContextTarget"><span class="Identifier">getContextTarget</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetContextTarget&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>End of RendererControls
! @}
Context / window controls
! \ingroup ContextControls
@{
! \return The renderer's current context target.</pre>
</dd>
<a id="getWindowTarget,Uint32"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getWindowTarget%2CUint32"><span class="Identifier">getWindowTarget</span></a><span class="Other">(</span><span class="Identifier">windowID</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetWindowTarget&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! \return The target that is associated with the given windowID.</pre>
</dd>
<a id="createTargetFromWindow,Uint32"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#createTargetFromWindow%2CUint32"><span class="Identifier">createTargetFromWindow</span></a><span class="Other">(</span><span class="Identifier">windowID</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_CreateTargetFromWindow&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Creates a separate context for the given window using the current renderer and returns a GPU_Target that represents it.</pre>
</dd>
<a id="makeCurrent,ptr.Target,Uint32"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#makeCurrent%2Cptr.Target%2CUint32"><span class="Identifier">makeCurrent</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">windowID</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_MakeCurrent&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Makes the given window the current rendering destination for the given context target.
This also makes the target the current context for image loading and window operations.
If the target does not represent a window, this does nothing.</pre>
</dd>
<a id="setWindowResolution,Uint16,Uint16"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setWindowResolution%2CUint16%2CUint16"><span class="Identifier">setWindowResolution</span></a><span class="Other">(</span><span class="Identifier">w</span><span class="Other">:</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a><span class="Other">;</span> <span class="Identifier">h</span><span class="Other">:</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetWindowResolution&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Change the actual size of the current context target's window. This resets the virtual resolution and viewport of the context target.
Aside from direct resolution changes, this should also be called in response to SDL_WINDOWEVENT_RESIZED window events for resizable windows.</pre>
</dd>
<a id="setFullscreen,Bool,Bool"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setFullscreen%2CBool%2CBool"><span class="Identifier">setFullscreen</span></a><span class="Other">(</span><span class="Identifier">enableFullscreen</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a><span class="Other">;</span> <span class="Identifier">useDesktopResolution</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetFullscreen&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Enable/disable fullscreen mode for the current context target's window.
On some platforms, this may destroy the renderer context and require that textures be reloaded. Unfortunately, SDL does not provide a notification mechanism for this.
\param enable_fullscreen If true, make the application go fullscreen. If false, make the application go to windowed mode.
\param use_desktop_resolution If true, lets the window change its resolution when it enters fullscreen mode (via SDL_WINDOW_FULLSCREEN_DESKTOP).
\return 0 if the new mode is windowed, 1 if the new mode is fullscreen.</pre>
</dd>
<a id="getFullscreen"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getFullscreen"><span class="Identifier">getFullscreen</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetFullscreen&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Returns true if the current context target's window is in fullscreen mode.</pre>
</dd>
<a id="getActiveTarget"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getActiveTarget"><span class="Identifier">getActiveTarget</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetActiveTarget&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! \return Returns the last active target.</pre>
</dd>
<a id="setActiveTarget,ptr.Target"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setActiveTarget%2Cptr.Target"><span class="Identifier">setActiveTarget</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetActiveTarget&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! \return Sets the currently active target for matrix modification functions.</pre>
</dd>
<a id="setShapeBlending,Bool"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setShapeBlending%2CBool"><span class="Identifier">setShapeBlending</span></a><span class="Other">(</span><span class="Identifier">enable</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetShapeBlending&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Enables/disables alpha blending for shape rendering on the current window.</pre>
</dd>
<a id="getBlendModeFromPreset,BlendPresetEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getBlendModeFromPreset%2CBlendPresetEnum"><span class="Identifier">getBlendModeFromPreset</span></a><span class="Other">(</span><span class="Identifier">preset</span><span class="Other">:</span> <a href="sdl2_gpu.html#BlendPresetEnum"><span class="Identifier">BlendPresetEnum</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2_gpu.html#BlendMode"><span class="Identifier">BlendMode</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetBlendModeFromPreset&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Translates a blend preset into a blend mode.</pre>
</dd>
<a id="setShapeBlendFunction,BlendFuncEnum,BlendFuncEnum,BlendFuncEnum,BlendFuncEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setShapeBlendFunction%2CBlendFuncEnum%2CBlendFuncEnum%2CBlendFuncEnum%2CBlendFuncEnum"><span class="Identifier">setShapeBlendFunction</span></a><span class="Other">(</span><span class="Identifier">sourceColor</span><span class="Other">:</span> <a href="sdl2_gpu.html#BlendFuncEnum"><span class="Identifier">BlendFuncEnum</span></a><span class="Other">;</span> <span class="Identifier">destColor</span><span class="Other">:</span> <a href="sdl2_gpu.html#BlendFuncEnum"><span class="Identifier">BlendFuncEnum</span></a><span class="Other">;</span>
<span class="Identifier">sourceAlpha</span><span class="Other">:</span> <a href="sdl2_gpu.html#BlendFuncEnum"><span class="Identifier">BlendFuncEnum</span></a><span class="Other">;</span> <span class="Identifier">destAlpha</span><span class="Other">:</span> <a href="sdl2_gpu.html#BlendFuncEnum"><span class="Identifier">BlendFuncEnum</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetShapeBlendFunction&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the blending component functions for shape rendering.</pre>
</dd>
<a id="setShapeBlendEquation,BlendEqEnum,BlendEqEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setShapeBlendEquation%2CBlendEqEnum%2CBlendEqEnum"><span class="Identifier">setShapeBlendEquation</span></a><span class="Other">(</span><span class="Identifier">colorEquation</span><span class="Other">:</span> <a href="sdl2_gpu.html#BlendEqEnum"><span class="Identifier">BlendEqEnum</span></a><span class="Other">;</span> <span class="Identifier">alphaEquation</span><span class="Other">:</span> <a href="sdl2_gpu.html#BlendEqEnum"><span class="Identifier">BlendEqEnum</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetShapeBlendEquation&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the blending component equations for shape rendering.</pre>
</dd>
<a id="setShapeBlendMode,BlendPresetEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setShapeBlendMode%2CBlendPresetEnum"><span class="Identifier">setShapeBlendMode</span></a><span class="Other">(</span><span class="Identifier">mode</span><span class="Other">:</span> <a href="sdl2_gpu.html#BlendPresetEnum"><span class="Identifier">BlendPresetEnum</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetShapeBlendMode&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the blending mode for shape rendering on the current window, if supported by the renderer.</pre>
</dd>
<a id="setLineThickness,cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setLineThickness%2Ccfloat"><span class="Identifier">setLineThickness</span></a><span class="Other">(</span><span class="Identifier">thickness</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">cfloat</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetLineThickness&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the thickness of lines for the current context.
\param thickness New line thickness in pixels measured across the line. Default is 1.0f.
\return The old thickness value</pre>
</dd>
<a id="getLineThickness"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getLineThickness"><span class="Identifier">getLineThickness</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">cfloat</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetLineThickness&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Returns the current line thickness value.</pre>
</dd>
<a id="createAliasTarget,ptr.Target"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#createAliasTarget%2Cptr.Target"><span class="Identifier">createAliasTarget</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_CreateAliasTarget&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>End of ContextControls
! @}
! \ingroup TargetControls
@{
! Creates a target that aliases the given target. Aliases can be used to store target settings (e.g. viewports) for easy switching.
GPU_FreeTarget() frees the alias's memory, but does not affect the original.</pre>
</dd>
<a id="loadTarget,ptr.Image"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#loadTarget%2Cptr.Image"><span class="Identifier">loadTarget</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_LoadTarget&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Creates a new render target from the given image. It can then be accessed from image-&gt;target. This increments the internal refcount of the target, so it should be matched with a GPU_FreeTarget().</pre>
</dd>
<a id="getTarget,ptr.Image"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getTarget%2Cptr.Image"><span class="Identifier">getTarget</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetTarget&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Creates a new render target from the given image. It can then be accessed from image-&gt;target. This does not increment the internal refcount of the target, so it will be invalidated when the image is freed.</pre>
</dd>
<a id="freeTarget,ptr.Target"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#freeTarget%2Cptr.Target"><span class="Identifier">freeTarget</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_FreeTarget&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Deletes a render target in the proper way for this renderer.</pre>
</dd>
<a id="setVirtualResolution,ptr.Target,Uint16,Uint16"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setVirtualResolution%2Cptr.Target%2CUint16%2CUint16"><span class="Identifier">setVirtualResolution</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">w</span><span class="Other">:</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a><span class="Other">;</span> <span class="Identifier">h</span><span class="Other">:</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetVirtualResolution&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Change the logical size of the given target. Rendering to this target will be scaled as if the dimensions were actually the ones given.</pre>
</dd>
<a id="getVirtualResolution,ptr.Target,ptr.Uint16,ptr.Uint16"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getVirtualResolution%2Cptr.Target%2Cptr.Uint16%2Cptr.Uint16"><span class="Identifier">getVirtualResolution</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">w</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a><span class="Other">;</span> <span class="Identifier">h</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetVirtualResolution&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Query the logical size of the given target.</pre>
</dd>
<a id="getVirtualCoords,ptr.Target,ptr.cfloat,ptr.cfloat,cfloat,cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getVirtualCoords%2Cptr.Target%2Cptr.cfloat%2Cptr.cfloat%2Ccfloat%2Ccfloat"><span class="Identifier">getVirtualCoords</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">displayX</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">displayY</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetVirtualCoords&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Converts screen space coordinates (such as from mouse input) to logical drawing coordinates. This interacts with GPU_SetCoordinateMode() when the y-axis is flipped (screen space is assumed to be inverted: (0,0) in the upper-left corner).</pre>
</dd>
<a id="unsetVirtualResolution,ptr.Target"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#unsetVirtualResolution%2Cptr.Target"><span class="Identifier">unsetVirtualResolution</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_UnsetVirtualResolution&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Reset the logical size of the given target to its original value.</pre>
</dd>
<a id="makeRect,cfloat,cfloat,cfloat,cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#makeRect%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"><span class="Identifier">makeRect</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">w</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">h</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">)</span><span class="Other">:</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_MakeRect&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! \return A GPU_Rect with the given values.</pre>
</dd>
<a id="makeColor,Uint8,Uint8,Uint8,Uint8"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#makeColor%2CUint8%2CUint8%2CUint8%2CUint8"><span class="Identifier">makeColor</span></a><span class="Other">(</span><span class="Identifier">r</span><span class="Other">:</span> <a href="sdl2.html#Uint8"><span class="Identifier">Uint8</span></a><span class="Other">;</span> <span class="Identifier">g</span><span class="Other">:</span> <a href="sdl2.html#Uint8"><span class="Identifier">Uint8</span></a><span class="Other">;</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="sdl2.html#Uint8"><span class="Identifier">Uint8</span></a><span class="Other">;</span> <span class="Identifier">a</span><span class="Other">:</span> <a href="sdl2.html#Uint8"><span class="Identifier">Uint8</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_MakeColor&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! \return An SDL_Color with the given values.</pre>
</dd>
<a id="setViewport,ptr.Target,Rect"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setViewport%2Cptr.Target%2CRect"><span class="Identifier">setViewport</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">viewport</span><span class="Other">:</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetViewport&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the given target's viewport.</pre>
</dd>
<a id="unsetViewport,ptr.Target"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#unsetViewport%2Cptr.Target"><span class="Identifier">unsetViewport</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_UnsetViewport&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Resets the given target's viewport to the entire target area.</pre>
</dd>
<a id="getDefaultCamera"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getDefaultCamera"><span class="Identifier">getDefaultCamera</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="sdl2_gpu.html#Camera"><span class="Identifier">Camera</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetDefaultCamera&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! \return A GPU_Camera with position (0, 0, 0), angle of 0, zoom of 1, centered origin, and near/far clipping planes of -100 and 100.</pre>
</dd>
<a id="getCamera,ptr.Target"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getCamera%2Cptr.Target"><span class="Identifier">getCamera</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2_gpu.html#Camera"><span class="Identifier">Camera</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetCamera&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! \return The camera of the given render target. If target is NULL, returns the default camera.</pre>
</dd>
<a id="setCamera,ptr.Target,ptr.Camera"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setCamera%2Cptr.Target%2Cptr.Camera"><span class="Identifier">setCamera</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">cam</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Camera"><span class="Identifier">Camera</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2_gpu.html#Camera"><span class="Identifier">Camera</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetCamera&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the current render target's current camera.
\param target A pointer to the target that will copy this camera.
\param cam A pointer to the camera data to use or NULL to use the default camera.
\return The old camera.</pre>
</dd>
<a id="enableCamera,ptr.Target,Bool"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#enableCamera%2Cptr.Target%2CBool"><span class="Identifier">enableCamera</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">useCamera</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_EnableCamera&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Enables or disables using the built-in camera matrix transforms.</pre>
</dd>
<a id="isCameraEnabled,ptr.Target"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#isCameraEnabled%2Cptr.Target"><span class="Identifier">isCameraEnabled</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_IsCameraEnabled&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Returns 1 if the camera transforms are enabled, 0 otherwise.</pre>
</dd>
<a id="addDepthBuffer,ptr.Target"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#addDepthBuffer%2Cptr.Target"><span class="Identifier">addDepthBuffer</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_AddDepthBuffer&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Attach a new depth buffer to the given target so that it can use depth testing. Context targets automatically have a depth buffer already.
If successful, also enables depth testing for this target.</pre>
</dd>
<a id="setDepthTest,ptr.Target,Bool"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setDepthTest%2Cptr.Target%2CBool"><span class="Identifier">setDepthTest</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">enable</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetDepthTest&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Enables or disables the depth test, which will skip drawing pixels/fragments behind other fragments. Disabled by default.
This has implications for alpha blending, where compositing might not work correctly depending on render order.</pre>
</dd>
<a id="setDepthWrite,ptr.Target,Bool"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setDepthWrite%2Cptr.Target%2CBool"><span class="Identifier">setDepthWrite</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">enable</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetDepthWrite&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Enables or disables writing the depth (effective view z-coordinate) of new pixels to the depth buffer. Enabled by default, but you must call GPU_SetDepthTest() to use it.</pre>
</dd>
<a id="setDepthFunction,ptr.Target,ComparisonEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setDepthFunction%2Cptr.Target%2CComparisonEnum"><span class="Identifier">setDepthFunction</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">compareOperation</span><span class="Other">:</span> <a href="sdl2_gpu.html#ComparisonEnum"><span class="Identifier">ComparisonEnum</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetDepthFunction&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the operation to perform when depth testing.</pre>
</dd>
<a id="getPixel,ptr.Target,Sint16,Sint16"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getPixel%2Cptr.Target%2CSint16%2CSint16"><span class="Identifier">getPixel</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <a href="sdl2.html#Sint16"><span class="Identifier">Sint16</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="sdl2.html#Sint16"><span class="Identifier">Sint16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetPixel&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! \return The RGBA color of a pixel.</pre>
</dd>
<a id="setClipRect,ptr.Target,Rect"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setClipRect%2Cptr.Target%2CRect"><span class="Identifier">setClipRect</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">rect</span><span class="Other">:</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetClipRect&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the clipping rect for the given render target.</pre>
</dd>
<a id="setClip,ptr.Target,Sint16,Sint16,Uint16,Uint16"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setClip%2Cptr.Target%2CSint16%2CSint16%2CUint16%2CUint16"><span class="Identifier">setClip</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <a href="sdl2.html#Sint16"><span class="Identifier">Sint16</span></a><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <a href="sdl2.html#Sint16"><span class="Identifier">Sint16</span></a><span class="Other">;</span> <span class="Identifier">w</span><span class="Other">:</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a><span class="Other">;</span> <span class="Identifier">h</span><span class="Other">:</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetClip&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the clipping rect for the given render target.</pre>
</dd>
<a id="unsetClip,ptr.Target"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#unsetClip%2Cptr.Target"><span class="Identifier">unsetClip</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_UnsetClip&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Turns off clipping for the given target.</pre>
</dd>
<a id="intersectRect,Rect,Rect,ptr.Rect"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#intersectRect%2CRect%2CRect%2Cptr.Rect"><span class="Identifier">intersectRect</span></a><span class="Other">(</span><span class="Identifier">A</span><span class="Other">:</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a><span class="Other">;</span> <span class="Identifier">B</span><span class="Other">:</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a><span class="Other">;</span> <span class="Identifier">result</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_IntersectRect&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Returns GPU_TRUE if the given rects A and B overlap, in which case it also fills the given result rect with the intersection. `result` can be NULL if you don't need the intersection.</pre>
</dd>
<a id="intersectClipRect,ptr.Target,Rect,ptr.Rect"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#intersectClipRect%2Cptr.Target%2CRect%2Cptr.Rect"><span class="Identifier">intersectClipRect</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">B</span><span class="Other">:</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a><span class="Other">;</span> <span class="Identifier">result</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_IntersectClipRect&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Returns GPU_TRUE if the given target's clip rect and the given B rect overlap, in which case it also fills the given result rect with the intersection. `result` can be NULL if you don't need the intersection.
If the target doesn't have a clip rect enabled, this uses the whole target area.</pre>
</dd>
<a id="setTargetColor,ptr.Target,Color"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setTargetColor%2Cptr.Target%2CColor"><span class="Identifier">setTargetColor</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetTargetColor&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the modulation color for subsequent drawing of images and shapes on the given target.
This has a cumulative effect with the image coloring functions.
e.g. GPU_SetRGB(image, 255, 128, 0); GPU_SetTargetRGB(target, 128, 128, 128);
Would make the image draw with color of roughly (128, 64, 0).</pre>
</dd>
<a id="setTargetRGB,ptr.Target,Uint8,Uint8,Uint8"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setTargetRGB%2Cptr.Target%2CUint8%2CUint8%2CUint8"><span class="Identifier">setTargetRGB</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">r</span><span class="Other">:</span> <a href="sdl2.html#Uint8"><span class="Identifier">Uint8</span></a><span class="Other">;</span> <span class="Identifier">g</span><span class="Other">:</span> <a href="sdl2.html#Uint8"><span class="Identifier">Uint8</span></a><span class="Other">;</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="sdl2.html#Uint8"><span class="Identifier">Uint8</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetTargetRGB&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the modulation color for subsequent drawing of images and shapes on the given target.
This has a cumulative effect with the image coloring functions.
e.g. GPU_SetRGB(image, 255, 128, 0); GPU_SetTargetRGB(target, 128, 128, 128);
Would make the image draw with color of roughly (128, 64, 0).</pre>
</dd>
<a id="setTargetRGBA,ptr.Target,Uint8,Uint8,Uint8,Uint8"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setTargetRGBA%2Cptr.Target%2CUint8%2CUint8%2CUint8%2CUint8"><span class="Identifier">setTargetRGBA</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">r</span><span class="Other">:</span> <a href="sdl2.html#Uint8"><span class="Identifier">Uint8</span></a><span class="Other">;</span> <span class="Identifier">g</span><span class="Other">:</span> <a href="sdl2.html#Uint8"><span class="Identifier">Uint8</span></a><span class="Other">;</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="sdl2.html#Uint8"><span class="Identifier">Uint8</span></a><span class="Other">;</span> <span class="Identifier">a</span><span class="Other">:</span> <a href="sdl2.html#Uint8"><span class="Identifier">Uint8</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetTargetRGBA&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the modulation color for subsequent drawing of images and shapes on the given target.
This has a cumulative effect with the image coloring functions.
e.g. GPU_SetRGB(image, 255, 128, 0); GPU_SetTargetRGB(target, 128, 128, 128);
Would make the image draw with color of roughly (128, 64, 0).</pre>
</dd>
<a id="unsetTargetColor,ptr.Target"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#unsetTargetColor%2Cptr.Target"><span class="Identifier">unsetTargetColor</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_UnsetTargetColor&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Unsets the modulation color for subsequent drawing of images and shapes on the given target.
This has the same effect as coloring with pure opaque white (255, 255, 255, 255).</pre>
</dd>
<a id="loadSurface,cstring"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#loadSurface%2Ccstring"><span class="Identifier">loadSurface</span></a><span class="Other">(</span><span class="Identifier">filename</span><span class="Other">:</span> <span class="Identifier">cstring</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2.html#Surface"><span class="Identifier">Surface</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_LoadSurface&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>End of TargetControls
! @}
! \ingroup SurfaceControls
@{
! Load surface from an image file that is supported by this renderer. Don't forget to SDL_FreeSurface() it.</pre>
</dd>
<a id="loadSurface_RW,ptr.RWops,Bool"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#loadSurface_RW%2Cptr.RWops%2CBool"><span class="Identifier">loadSurface_RW</span></a><span class="Other">(</span><span class="Identifier">rwops</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2.html#RWops"><span class="Identifier">RWops</span></a><span class="Other">;</span> <span class="Identifier">freeRwops</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2.html#Surface"><span class="Identifier">Surface</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_LoadSurface_RW&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Load surface from an image file in memory. Don't forget to SDL_FreeSurface() it.</pre>
</dd>
<a id="saveSurface,ptr.Surface,cstring,FileFormatEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#saveSurface%2Cptr.Surface%2Ccstring%2CFileFormatEnum"><span class="Identifier">saveSurface</span></a><span class="Other">(</span><span class="Identifier">surface</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2.html#Surface"><span class="Identifier">Surface</span></a><span class="Other">;</span> <span class="Identifier">filename</span><span class="Other">:</span> <span class="Identifier">cstring</span><span class="Other">;</span> <span class="Identifier">format</span><span class="Other">:</span> <a href="sdl2_gpu.html#FileFormatEnum"><span class="Identifier">FileFormatEnum</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SaveSurface&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Save surface to a file.
With a format of GPU_FILE_AUTO, the file type is deduced from the extension. Supported formats are: png, bmp, tga.
Returns 0 on failure.</pre>
</dd>
<a id="saveSurface_RW,ptr.Surface,ptr.RWops,Bool,FileFormatEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#saveSurface_RW%2Cptr.Surface%2Cptr.RWops%2CBool%2CFileFormatEnum"><span class="Identifier">saveSurface_RW</span></a><span class="Other">(</span><span class="Identifier">surface</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2.html#Surface"><span class="Identifier">Surface</span></a><span class="Other">;</span> <span class="Identifier">rwops</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2.html#RWops"><span class="Identifier">RWops</span></a><span class="Other">;</span> <span class="Identifier">freeRwops</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a><span class="Other">;</span>
<span class="Identifier">format</span><span class="Other">:</span> <a href="sdl2_gpu.html#FileFormatEnum"><span class="Identifier">FileFormatEnum</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SaveSurface_RW&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Save surface to a RWops stream.
Does not support format of GPU_FILE_AUTO, because the file type cannot be deduced. Supported formats are: png, bmp, tga.
Returns 0 on failure.</pre>
</dd>
<a id="createImage,Uint16,Uint16,FormatEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#createImage%2CUint16%2CUint16%2CFormatEnum"><span class="Identifier">createImage</span></a><span class="Other">(</span><span class="Identifier">w</span><span class="Other">:</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a><span class="Other">;</span> <span class="Identifier">h</span><span class="Other">:</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a><span class="Other">;</span> <span class="Identifier">format</span><span class="Other">:</span> <a href="sdl2_gpu.html#FormatEnum"><span class="Identifier">FormatEnum</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_CreateImage&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>End of SurfaceControls
! @}
! \ingroup ImageControls
@{
! Create a new, blank image with the given format. Don't forget to GPU_FreeImage() it.
\param w Image width in pixels
\param h Image height in pixels
\param format Format of color channels.</pre>
</dd>
<a id="createImageUsingTexture,TextureHandle,Bool"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#createImageUsingTexture%2CTextureHandle%2CBool"><span class="Identifier">createImageUsingTexture</span></a><span class="Other">(</span><span class="Identifier">handle</span><span class="Other">:</span> <a href="sdl2_gpu.html#TextureHandle"><span class="Identifier">TextureHandle</span></a><span class="Other">;</span> <span class="Identifier">takeOwnership</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_CreateImageUsingTexture&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Create a new image that uses the given native texture handle as the image texture.</pre>
</dd>
<a id="loadImage,cstring"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#loadImage%2Ccstring"><span class="Identifier">loadImage</span></a><span class="Other">(</span><span class="Identifier">filename</span><span class="Other">:</span> <span class="Identifier">cstring</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_LoadImage&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Load image from an image file that is supported by this renderer. Don't forget to GPU_FreeImage() it.</pre>
</dd>
<a id="loadImage_RW,ptr.RWops,Bool"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#loadImage_RW%2Cptr.RWops%2CBool"><span class="Identifier">loadImage_RW</span></a><span class="Other">(</span><span class="Identifier">rwops</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2.html#RWops"><span class="Identifier">RWops</span></a><span class="Other">;</span> <span class="Identifier">freeRwops</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_LoadImage_RW&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Load image from an image file in memory. Don't forget to GPU_FreeImage() it.</pre>
</dd>
<a id="createAliasImage,ptr.Image"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#createAliasImage%2Cptr.Image"><span class="Identifier">createAliasImage</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_CreateAliasImage&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Creates an image that aliases the given image. Aliases can be used to store image settings (e.g. modulation color) for easy switching.
GPU_FreeImage() frees the alias's memory, but does not affect the original.</pre>
</dd>
<a id="copyImage,ptr.Image"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#copyImage%2Cptr.Image"><span class="Identifier">copyImage</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_CopyImage&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Copy an image to a new image. Don't forget to GPU_FreeImage() both.</pre>
</dd>
<a id="freeImage,ptr.Image"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#freeImage%2Cptr.Image"><span class="Identifier">freeImage</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_FreeImage&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Deletes an image in the proper way for this renderer. Also deletes the corresponding GPU_Target if applicable. Be careful not to use that target afterward!</pre>
</dd>
<a id="setImageVirtualResolution,ptr.Image,Uint16,Uint16"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setImageVirtualResolution%2Cptr.Image%2CUint16%2CUint16"><span class="Identifier">setImageVirtualResolution</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">w</span><span class="Other">:</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a><span class="Other">;</span> <span class="Identifier">h</span><span class="Other">:</span> <a href="sdl2.html#Uint16"><span class="Identifier">Uint16</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetImageVirtualResolution&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Change the logical size of the given image. Rendering this image will scaled it as if the dimensions were actually the ones given.</pre>
</dd>
<a id="unsetImageVirtualResolution,ptr.Image"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#unsetImageVirtualResolution%2Cptr.Image"><span class="Identifier">unsetImageVirtualResolution</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_UnsetImageVirtualResolution&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Reset the logical size of the given image to its original value.</pre>
</dd>
<a id="updateImage,ptr.Image,ptr.Rect,ptr.Surface,ptr.Rect"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#updateImage%2Cptr.Image%2Cptr.Rect%2Cptr.Surface%2Cptr.Rect"><span class="Identifier">updateImage</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">imageRect</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a><span class="Other">;</span> <span class="Identifier">surface</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2.html#Surface"><span class="Identifier">Surface</span></a><span class="Other">;</span>
<span class="Identifier">surfaceRect</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_UpdateImage&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Update an image from surface data. Ignores virtual resolution on the image so the number of pixels needed from the surface is known.</pre>
</dd>
<a id="updateImageBytes,ptr.Image,ptr.Rect,ptr.cuchar,cint"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#updateImageBytes%2Cptr.Image%2Cptr.Rect%2Cptr.cuchar%2Ccint"><span class="Identifier">updateImageBytes</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">imageRect</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a><span class="Other">;</span> <span class="Identifier">bytes</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cuchar</span><span class="Other">;</span>
<span class="Identifier">bytesPerRow</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_UpdateImageBytes&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Update an image from an array of pixel data. Ignores virtual resolution on the image so the number of pixels needed from the surface is known.</pre>
</dd>
<a id="replaceImage,ptr.Image,ptr.Surface,ptr.Rect"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#replaceImage%2Cptr.Image%2Cptr.Surface%2Cptr.Rect"><span class="Identifier">replaceImage</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">surface</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2.html#Surface"><span class="Identifier">Surface</span></a><span class="Other">;</span> <span class="Identifier">surfaceRect</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_ReplaceImage&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Update an image from surface data, replacing its underlying texture to allow for size changes. Ignores virtual resolution on the image so the number of pixels needed from the surface is known.</pre>
</dd>
<a id="saveImage,ptr.Image,cstring,FileFormatEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#saveImage%2Cptr.Image%2Ccstring%2CFileFormatEnum"><span class="Identifier">saveImage</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">filename</span><span class="Other">:</span> <span class="Identifier">cstring</span><span class="Other">;</span> <span class="Identifier">format</span><span class="Other">:</span> <a href="sdl2_gpu.html#FileFormatEnum"><span class="Identifier">FileFormatEnum</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SaveImage&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Save image to a file.
With a format of GPU_FILE_AUTO, the file type is deduced from the extension. Supported formats are: png, bmp, tga.
Returns 0 on failure.</pre>
</dd>
<a id="saveImage_RW,ptr.Image,ptr.RWops,Bool,FileFormatEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#saveImage_RW%2Cptr.Image%2Cptr.RWops%2CBool%2CFileFormatEnum"><span class="Identifier">saveImage_RW</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">rwops</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2.html#RWops"><span class="Identifier">RWops</span></a><span class="Other">;</span> <span class="Identifier">freeRwops</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a><span class="Other">;</span>
<span class="Identifier">format</span><span class="Other">:</span> <a href="sdl2_gpu.html#FileFormatEnum"><span class="Identifier">FileFormatEnum</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SaveImage_RW&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Save image to a RWops stream.
Does not support format of GPU_FILE_AUTO, because the file type cannot be deduced. Supported formats are: png, bmp, tga.
Returns 0 on failure.</pre>
</dd>
<a id="generateMipmaps,ptr.Image"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#generateMipmaps%2Cptr.Image"><span class="Identifier">generateMipmaps</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GenerateMipmaps&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Loads mipmaps for the given image, if supported by the renderer.</pre>
</dd>
<a id="setColor,ptr.Image,Color"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setColor%2Cptr.Image%2CColor"><span class="Identifier">setColor</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetColor&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the modulation color for subsequent drawing of the given image.</pre>
</dd>
<a id="setRGB,ptr.Image,Uint8,Uint8,Uint8"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setRGB%2Cptr.Image%2CUint8%2CUint8%2CUint8"><span class="Identifier">setRGB</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">r</span><span class="Other">:</span> <a href="sdl2.html#Uint8"><span class="Identifier">Uint8</span></a><span class="Other">;</span> <span class="Identifier">g</span><span class="Other">:</span> <a href="sdl2.html#Uint8"><span class="Identifier">Uint8</span></a><span class="Other">;</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="sdl2.html#Uint8"><span class="Identifier">Uint8</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetRGB&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the modulation color for subsequent drawing of the given image.</pre>
</dd>
<a id="setRGBA,ptr.Image,Uint8,Uint8,Uint8,Uint8"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setRGBA%2Cptr.Image%2CUint8%2CUint8%2CUint8%2CUint8"><span class="Identifier">setRGBA</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">r</span><span class="Other">:</span> <a href="sdl2.html#Uint8"><span class="Identifier">Uint8</span></a><span class="Other">;</span> <span class="Identifier">g</span><span class="Other">:</span> <a href="sdl2.html#Uint8"><span class="Identifier">Uint8</span></a><span class="Other">;</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="sdl2.html#Uint8"><span class="Identifier">Uint8</span></a><span class="Other">;</span> <span class="Identifier">a</span><span class="Other">:</span> <a href="sdl2.html#Uint8"><span class="Identifier">Uint8</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetRGBA&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the modulation color for subsequent drawing of the given image.</pre>
</dd>
<a id="unsetColor,ptr.Image"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#unsetColor%2Cptr.Image"><span class="Identifier">unsetColor</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_UnsetColor&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Unsets the modulation color for subsequent drawing of the given image.
This is equivalent to coloring with pure opaque white (255, 255, 255, 255).</pre>
</dd>
<a id="getBlending,ptr.Image"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getBlending%2Cptr.Image"><span class="Identifier">getBlending</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetBlending&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Gets the current alpha blending setting.</pre>
</dd>
<a id="setBlending,ptr.Image,Bool"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setBlending%2Cptr.Image%2CBool"><span class="Identifier">setBlending</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">enable</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetBlending&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Enables/disables alpha blending for the given image.</pre>
</dd>
<a id="setBlendFunction,ptr.Image,BlendFuncEnum,BlendFuncEnum,BlendFuncEnum,BlendFuncEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setBlendFunction%2Cptr.Image%2CBlendFuncEnum%2CBlendFuncEnum%2CBlendFuncEnum%2CBlendFuncEnum"><span class="Identifier">setBlendFunction</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">sourceColor</span><span class="Other">:</span> <a href="sdl2_gpu.html#BlendFuncEnum"><span class="Identifier">BlendFuncEnum</span></a><span class="Other">;</span>
<span class="Identifier">destColor</span><span class="Other">:</span> <a href="sdl2_gpu.html#BlendFuncEnum"><span class="Identifier">BlendFuncEnum</span></a><span class="Other">;</span> <span class="Identifier">sourceAlpha</span><span class="Other">:</span> <a href="sdl2_gpu.html#BlendFuncEnum"><span class="Identifier">BlendFuncEnum</span></a><span class="Other">;</span>
<span class="Identifier">destAlpha</span><span class="Other">:</span> <a href="sdl2_gpu.html#BlendFuncEnum"><span class="Identifier">BlendFuncEnum</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetBlendFunction&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the blending component functions.</pre>
</dd>
<a id="setBlendEquation,ptr.Image,BlendEqEnum,BlendEqEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setBlendEquation%2Cptr.Image%2CBlendEqEnum%2CBlendEqEnum"><span class="Identifier">setBlendEquation</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">colorEquation</span><span class="Other">:</span> <a href="sdl2_gpu.html#BlendEqEnum"><span class="Identifier">BlendEqEnum</span></a><span class="Other">;</span>
<span class="Identifier">alphaEquation</span><span class="Other">:</span> <a href="sdl2_gpu.html#BlendEqEnum"><span class="Identifier">BlendEqEnum</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetBlendEquation&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the blending component equations.</pre>
</dd>
<a id="setBlendMode,ptr.Image,BlendPresetEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setBlendMode%2Cptr.Image%2CBlendPresetEnum"><span class="Identifier">setBlendMode</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">mode</span><span class="Other">:</span> <a href="sdl2_gpu.html#BlendPresetEnum"><span class="Identifier">BlendPresetEnum</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetBlendMode&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the blending mode, if supported by the renderer.</pre>
</dd>
<a id="setImageFilter,ptr.Image,FilterEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setImageFilter%2Cptr.Image%2CFilterEnum"><span class="Identifier">setImageFilter</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">filter</span><span class="Other">:</span> <a href="sdl2_gpu.html#FilterEnum"><span class="Identifier">FilterEnum</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetImageFilter&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the image filtering mode, if supported by the renderer.</pre>
</dd>
<a id="setAnchor,ptr.Image,cfloat,cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setAnchor%2Cptr.Image%2Ccfloat%2Ccfloat"><span class="Identifier">setAnchor</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">anchorX</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">anchorY</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetAnchor&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the image anchor, which is the point about which the image is blitted. The default is to blit the image on-center (0.5, 0.5). The anchor is in normalized coordinates (0.0-1.0).</pre>
</dd>
<a id="getAnchor,ptr.Image,ptr.cfloat,ptr.cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getAnchor%2Cptr.Image%2Cptr.cfloat%2Cptr.cfloat"><span class="Identifier">getAnchor</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">anchorX</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">anchorY</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetAnchor&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Returns the image anchor via the passed parameters. The anchor is in normalized coordinates (0.0-1.0).</pre>
</dd>
<a id="getSnapMode,ptr.Image"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getSnapMode%2Cptr.Image"><span class="Identifier">getSnapMode</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2_gpu.html#SnapEnum"><span class="Identifier">SnapEnum</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetSnapMode&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Gets the current pixel snap setting. The default value is GPU_SNAP_POSITION_AND_DIMENSIONS.</pre>
</dd>
<a id="setSnapMode,ptr.Image,SnapEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setSnapMode%2Cptr.Image%2CSnapEnum"><span class="Identifier">setSnapMode</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">mode</span><span class="Other">:</span> <a href="sdl2_gpu.html#SnapEnum"><span class="Identifier">SnapEnum</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetSnapMode&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the pixel grid snapping mode for the given image.</pre>
</dd>
<a id="setWrapMode,ptr.Image,WrapEnum,WrapEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setWrapMode%2Cptr.Image%2CWrapEnum%2CWrapEnum"><span class="Identifier">setWrapMode</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">wrapModeX</span><span class="Other">:</span> <a href="sdl2_gpu.html#WrapEnum"><span class="Identifier">WrapEnum</span></a><span class="Other">;</span> <span class="Identifier">wrapModeY</span><span class="Other">:</span> <a href="sdl2_gpu.html#WrapEnum"><span class="Identifier">WrapEnum</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetWrapMode&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the image wrapping mode, if supported by the renderer.</pre>
</dd>
<a id="getTextureHandle,ptr.Image"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getTextureHandle%2Cptr.Image"><span class="Identifier">getTextureHandle</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2_gpu.html#TextureHandle"><span class="Identifier">TextureHandle</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetTextureHandle&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Returns the backend-specific texture handle associated with the given image. Note that SDL_gpu will be unaware of changes made to the texture.</pre>
</dd>
<a id="copyImageFromSurface,ptr.Surface"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#copyImageFromSurface%2Cptr.Surface"><span class="Identifier">copyImageFromSurface</span></a><span class="Other">(</span><span class="Identifier">surface</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2.html#Surface"><span class="Identifier">Surface</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_CopyImageFromSurface&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>End of ImageControls
! @}
Surface / Image / Target conversions
! \ingroup Conversions
@{
! Copy SDL_Surface data into a new GPU_Image. Don't forget to SDL_FreeSurface() the surface and GPU_FreeImage() the image.</pre>
</dd>
<a id="copyImageFromTarget,ptr.Target"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#copyImageFromTarget%2Cptr.Target"><span class="Identifier">copyImageFromTarget</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_CopyImageFromTarget&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Copy GPU_Target data into a new GPU_Image. Don't forget to GPU_FreeImage() the image.</pre>
</dd>
<a id="copySurfaceFromTarget,ptr.Target"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#copySurfaceFromTarget%2Cptr.Target"><span class="Identifier">copySurfaceFromTarget</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2.html#Surface"><span class="Identifier">Surface</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_CopySurfaceFromTarget&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Copy GPU_Target data into a new SDL_Surface. Don't forget to SDL_FreeSurface() the surface.</pre>
</dd>
<a id="copySurfaceFromImage,ptr.Image"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#copySurfaceFromImage%2Cptr.Image"><span class="Identifier">copySurfaceFromImage</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2.html#Surface"><span class="Identifier">Surface</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_CopySurfaceFromImage&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Copy GPU_Image data into a new SDL_Surface. Don't forget to SDL_FreeSurface() the surface and GPU_FreeImage() the image.</pre>
</dd>
<a id="vectorLength,ptr.cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#vectorLength%2Cptr.cfloat"><span class="Identifier">vectorLength</span></a><span class="Other">(</span><span class="Identifier">vec3</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">cfloat</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_VectorLength&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>End of Conversions
! @}
! \ingroup Matrix
@{
Basic vector operations (3D)
! Returns the magnitude (length) of the given vector.</pre>
</dd>
<a id="vectorNormalize,ptr.cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#vectorNormalize%2Cptr.cfloat"><span class="Identifier">vectorNormalize</span></a><span class="Other">(</span><span class="Identifier">vec3</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_VectorNormalize&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Modifies the given vector so that it has a new length of 1.</pre>
</dd>
<a id="vectorDot,ptr.cfloat,ptr.cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#vectorDot%2Cptr.cfloat%2Cptr.cfloat"><span class="Identifier">vectorDot</span></a><span class="Other">(</span><span class="Identifier">A</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">B</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">cfloat</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_VectorDot&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Returns the dot product of two vectors.</pre>
</dd>
<a id="vectorCross,ptr.cfloat,ptr.cfloat,ptr.cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#vectorCross%2Cptr.cfloat%2Cptr.cfloat%2Cptr.cfloat"><span class="Identifier">vectorCross</span></a><span class="Other">(</span><span class="Identifier">result</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">A</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">B</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_VectorCross&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Performs the cross product of vectors A and B (result = A x B). Do not use A or B as 'result'.</pre>
</dd>
<a id="vectorCopy,ptr.cfloat,ptr.cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#vectorCopy%2Cptr.cfloat%2Cptr.cfloat"><span class="Identifier">vectorCopy</span></a><span class="Other">(</span><span class="Identifier">result</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">A</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_VectorCopy&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Overwrite 'result' vector with the values from vector A.</pre>
</dd>
<a id="vectorApplyMatrix,ptr.cfloat,ptr.cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#vectorApplyMatrix%2Cptr.cfloat%2Cptr.cfloat"><span class="Identifier">vectorApplyMatrix</span></a><span class="Other">(</span><span class="Identifier">vec3</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">matrix4x4</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_VectorApplyMatrix&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Multiplies the given matrix into the given vector (vec3 = matrixvec3).</pre>
</dd>
<a id="vector4ApplyMatrix,ptr.cfloat,ptr.cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#vector4ApplyMatrix%2Cptr.cfloat%2Cptr.cfloat"><span class="Identifier">vector4ApplyMatrix</span></a><span class="Other">(</span><span class="Identifier">vec4</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">matrix4x4</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_Vector4ApplyMatrix&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Multiplies the given matrix into the given vector (vec4 = matrixvec4).</pre>
</dd>
<a id="matrixCopy,ptr.cfloat,ptr.cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#matrixCopy%2Cptr.cfloat%2Cptr.cfloat"><span class="Identifier">matrixCopy</span></a><span class="Other">(</span><span class="Identifier">result</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">A</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_MatrixCopy&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>Basic matrix operations (4x4)
! Overwrite 'result' matrix with the values from matrix A.</pre>
</dd>
<a id="matrixIdentity,ptr.cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#matrixIdentity%2Cptr.cfloat"><span class="Identifier">matrixIdentity</span></a><span class="Other">(</span><span class="Identifier">result</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_MatrixIdentity&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Fills 'result' matrix with the identity matrix.</pre>
</dd>
<a id="matrixOrtho,ptr.cfloat,cfloat,cfloat,cfloat,cfloat,cfloat,cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#matrixOrtho%2Cptr.cfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"><span class="Identifier">matrixOrtho</span></a><span class="Other">(</span><span class="Identifier">result</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">left</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">right</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">bottom</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">top</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">zNear</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">zFar</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_MatrixOrtho&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Multiplies an orthographic projection matrix into the given matrix.</pre>
</dd>
<a id="matrixFrustum,ptr.cfloat,cfloat,cfloat,cfloat,cfloat,cfloat,cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#matrixFrustum%2Cptr.cfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"><span class="Identifier">matrixFrustum</span></a><span class="Other">(</span><span class="Identifier">result</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">left</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">right</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">bottom</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">top</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">zNear</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">zFar</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_MatrixFrustum&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Multiplies a perspective projection matrix into the given matrix.</pre>
</dd>
<a id="matrixPerspective,ptr.cfloat,cfloat,cfloat,cfloat,cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#matrixPerspective%2Cptr.cfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"><span class="Identifier">matrixPerspective</span></a><span class="Other">(</span><span class="Identifier">result</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">fovy</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">aspect</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">zNear</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">zFar</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_MatrixPerspective&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Multiplies a perspective projection matrix into the given matrix.</pre>
</dd>
<a id="matrixLookAt,ptr.cfloat,cfloat,cfloat,cfloat,cfloat,cfloat,cfloat,cfloat,cfloat,cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#matrixLookAt%2Cptr.cfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"><span class="Identifier">matrixLookAt</span></a><span class="Other">(</span><span class="Identifier">matrix</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">eyeX</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">eyeY</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">eyeZ</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">targetX</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">targetY</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">targetZ</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">upX</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">upY</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">upZ</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_MatrixLookAt&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Multiplies a view matrix into the given matrix.</pre>
</dd>
<a id="matrixTranslate,ptr.cfloat,cfloat,cfloat,cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#matrixTranslate%2Cptr.cfloat%2Ccfloat%2Ccfloat%2Ccfloat"><span class="Identifier">matrixTranslate</span></a><span class="Other">(</span><span class="Identifier">result</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">z</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_MatrixTranslate&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Adds a translation into the given matrix.</pre>
</dd>
<a id="matrixScale,ptr.cfloat,cfloat,cfloat,cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#matrixScale%2Cptr.cfloat%2Ccfloat%2Ccfloat%2Ccfloat"><span class="Identifier">matrixScale</span></a><span class="Other">(</span><span class="Identifier">result</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">sx</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">sy</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">sz</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_MatrixScale&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Multiplies a scaling matrix into the given matrix.</pre>
</dd>
<a id="matrixRotate,ptr.cfloat,cfloat,cfloat,cfloat,cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#matrixRotate%2Cptr.cfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"><span class="Identifier">matrixRotate</span></a><span class="Other">(</span><span class="Identifier">result</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">degrees</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">z</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_MatrixRotate&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Multiplies a rotation matrix into the given matrix.</pre>
</dd>
<a id="matrixMultiply,ptr.cfloat,ptr.cfloat,ptr.cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#matrixMultiply%2Cptr.cfloat%2Cptr.cfloat%2Cptr.cfloat"><span class="Identifier">matrixMultiply</span></a><span class="Other">(</span><span class="Identifier">result</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">A</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">B</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_MatrixMultiply&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Multiplies matrices A and B and stores the result in the given 'result' matrix (result = AB). Do not use A or B as 'result'.
\see GPU_MultiplyAndAssign</pre>
</dd>
<a id="multiplyAndAssign,ptr.cfloat,ptr.cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#multiplyAndAssign%2Cptr.cfloat%2Cptr.cfloat"><span class="Identifier">multiplyAndAssign</span></a><span class="Other">(</span><span class="Identifier">result</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">B</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_MultiplyAndAssign&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Multiplies matrices 'result' and B and stores the result in the given 'result' matrix (result = result B).</pre>
</dd>
<a id="getMatrixString,ptr.cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getMatrixString%2Cptr.cfloat"><span class="Identifier">getMatrixString</span></a><span class="Other">(</span><span class="Identifier">A</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">cstring</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetMatrixString&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>Matrix stack accessors
! Returns an internal string that represents the contents of matrix A.</pre>
</dd>
<a id="getCurrentMatrix"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getCurrentMatrix"><span class="Identifier">getCurrentMatrix</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetCurrentMatrix&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Returns the current matrix from the active target. Returns NULL if stack is empty.</pre>
</dd>
<a id="getTopMatrix,ptr.MatrixStack"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getTopMatrix%2Cptr.MatrixStack"><span class="Identifier">getTopMatrix</span></a><span class="Other">(</span><span class="Identifier">stack</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#MatrixStack"><span class="Identifier">MatrixStack</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetTopMatrix&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Returns the current matrix from the top of the matrix stack. Returns NULL if stack is empty.</pre>
</dd>
<a id="getModel"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getModel"><span class="Identifier">getModel</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetModel&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Returns the current model matrix from the active target. Returns NULL if stack is empty.</pre>
</dd>
<a id="getView"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getView"><span class="Identifier">getView</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetView&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Returns the current view matrix from the active target. Returns NULL if stack is empty.</pre>
</dd>
<a id="getProjection"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getProjection"><span class="Identifier">getProjection</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetProjection&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Returns the current projection matrix from the active target. Returns NULL if stack is empty.</pre>
</dd>
<a id="getModelViewProjection,ptr.cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getModelViewProjection%2Cptr.cfloat"><span class="Identifier">getModelViewProjection</span></a><span class="Other">(</span><span class="Identifier">result</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetModelViewProjection&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Copies the current modelview-projection matrix from the active target into the given 'result' matrix (result = PVM).</pre>
</dd>
<a id="createMatrixStack"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#createMatrixStack"><span class="Identifier">createMatrixStack</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#MatrixStack"><span class="Identifier">MatrixStack</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_CreateMatrixStack&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>Matrix stack manipulators
! Returns a newly allocated matrix stack that has already been initialized.</pre>
</dd>
<a id="freeMatrixStack,ptr.MatrixStack"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#freeMatrixStack%2Cptr.MatrixStack"><span class="Identifier">freeMatrixStack</span></a><span class="Other">(</span><span class="Identifier">stack</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#MatrixStack"><span class="Identifier">MatrixStack</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_FreeMatrixStack&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Frees the memory for the matrix stack and any matrices it contains.</pre>
</dd>
<a id="initMatrixStack,ptr.MatrixStack"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#initMatrixStack%2Cptr.MatrixStack"><span class="Identifier">initMatrixStack</span></a><span class="Other">(</span><span class="Identifier">stack</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#MatrixStack"><span class="Identifier">MatrixStack</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_InitMatrixStack&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Allocate new matrices for the given stack.</pre>
</dd>
<a id="copyMatrixStack,ptr.MatrixStack,ptr.MatrixStack"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#copyMatrixStack%2Cptr.MatrixStack%2Cptr.MatrixStack"><span class="Identifier">copyMatrixStack</span></a><span class="Other">(</span><span class="Identifier">source</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#MatrixStack"><span class="Identifier">MatrixStack</span></a><span class="Other">;</span> <span class="Identifier">dest</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#MatrixStack"><span class="Identifier">MatrixStack</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_CopyMatrixStack&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Copies matrices from one stack to another.</pre>
</dd>
<a id="clearMatrixStack,ptr.MatrixStack"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#clearMatrixStack%2Cptr.MatrixStack"><span class="Identifier">clearMatrixStack</span></a><span class="Other">(</span><span class="Identifier">stack</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#MatrixStack"><span class="Identifier">MatrixStack</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_ClearMatrixStack&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Deletes matrices in the given stack.</pre>
</dd>
<a id="resetProjection,ptr.Target"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#resetProjection%2Cptr.Target"><span class="Identifier">resetProjection</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_ResetProjection&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Reapplies the default orthographic projection matrix, based on camera and coordinate settings.</pre>
</dd>
<a id="matrixMode,ptr.Target,cint"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#matrixMode%2Cptr.Target%2Ccint"><span class="Identifier">matrixMode</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">matrixMode</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_MatrixMode&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the active target and changes matrix mode to GPU_PROJECTION, GPU_VIEW, or GPU_MODEL. Further matrix stack operations manipulate that particular stack.</pre>
</dd>
<a id="setProjection,ptr.cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setProjection%2Cptr.cfloat"><span class="Identifier">setProjection</span></a><span class="Other">(</span><span class="Identifier">A</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetProjection&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Copies the given matrix to the active target's projection matrix.</pre>
</dd>
<a id="setView,ptr.cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setView%2Cptr.cfloat"><span class="Identifier">setView</span></a><span class="Other">(</span><span class="Identifier">A</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetView&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Copies the given matrix to the active target's view matrix.</pre>
</dd>
<a id="setModel,ptr.cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setModel%2Cptr.cfloat"><span class="Identifier">setModel</span></a><span class="Other">(</span><span class="Identifier">A</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetModel&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Copies the given matrix to the active target's model matrix.</pre>
</dd>
<a id="setProjectionFromStack,ptr.MatrixStack"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setProjectionFromStack%2Cptr.MatrixStack"><span class="Identifier">setProjectionFromStack</span></a><span class="Other">(</span><span class="Identifier">stack</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#MatrixStack"><span class="Identifier">MatrixStack</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetProjectionFromStack&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Copies the given matrix to the active target's projection matrix.</pre>
</dd>
<a id="setViewFromStack,ptr.MatrixStack"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setViewFromStack%2Cptr.MatrixStack"><span class="Identifier">setViewFromStack</span></a><span class="Other">(</span><span class="Identifier">stack</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#MatrixStack"><span class="Identifier">MatrixStack</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetViewFromStack&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Copies the given matrix to the active target's view matrix.</pre>
</dd>
<a id="setModelFromStack,ptr.MatrixStack"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setModelFromStack%2Cptr.MatrixStack"><span class="Identifier">setModelFromStack</span></a><span class="Other">(</span><span class="Identifier">stack</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#MatrixStack"><span class="Identifier">MatrixStack</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetModelFromStack&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Copies the given matrix to the active target's model matrix.</pre>
</dd>
<a id="pushMatrix"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#pushMatrix"><span class="Identifier">pushMatrix</span></a><span class="Other">(</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_PushMatrix&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Pushes the current matrix as a new matrix stack item to be restored later.</pre>
</dd>
<a id="popMatrix"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#popMatrix"><span class="Identifier">popMatrix</span></a><span class="Other">(</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_PopMatrix&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Removes the current matrix from the stack, restoring the previously pushed matrix.</pre>
</dd>
<a id="loadIdentity"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#loadIdentity"><span class="Identifier">loadIdentity</span></a><span class="Other">(</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_LoadIdentity&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Fills current matrix with the identity matrix.</pre>
</dd>
<a id="loadMatrix,ptr.cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#loadMatrix%2Cptr.cfloat"><span class="Identifier">loadMatrix</span></a><span class="Other">(</span><span class="Identifier">matrix4x4</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_LoadMatrix&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Copies a given matrix to be the current matrix.</pre>
</dd>
<a id="ortho,cfloat,cfloat,cfloat,cfloat,cfloat,cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#ortho%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"><span class="Identifier">ortho</span></a><span class="Other">(</span><span class="Identifier">left</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">right</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">bottom</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">top</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">zNear</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">zFar</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_Ortho&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Multiplies an orthographic projection matrix into the current matrix.</pre>
</dd>
<a id="frustum,cfloat,cfloat,cfloat,cfloat,cfloat,cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#frustum%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"><span class="Identifier">frustum</span></a><span class="Other">(</span><span class="Identifier">left</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">right</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">bottom</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">top</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">zNear</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">zFar</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_Frustum&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Multiplies a perspective projection matrix into the current matrix.</pre>
</dd>
<a id="perspective,cfloat,cfloat,cfloat,cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#perspective%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"><span class="Identifier">perspective</span></a><span class="Other">(</span><span class="Identifier">fovy</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">aspect</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">zNear</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">zFar</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_Perspective&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Multiplies a perspective projection matrix into the current matrix.</pre>
</dd>
<a id="lookAt,cfloat,cfloat,cfloat,cfloat,cfloat,cfloat,cfloat,cfloat,cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#lookAt%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"><span class="Identifier">lookAt</span></a><span class="Other">(</span><span class="Identifier">eyeX</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">eyeY</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">eyeZ</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">targetX</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">targetY</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">targetZ</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">upX</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">upY</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">upZ</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_LookAt&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Multiplies a view matrix into the current matrix.</pre>
</dd>
<a id="translate,cfloat,cfloat,cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#translate%2Ccfloat%2Ccfloat%2Ccfloat"><span class="Identifier">translate</span></a><span class="Other">(</span><span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">z</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_Translate&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Adds a translation into the current matrix.</pre>
</dd>
<a id="scale,cfloat,cfloat,cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#scale%2Ccfloat%2Ccfloat%2Ccfloat"><span class="Identifier">scale</span></a><span class="Other">(</span><span class="Identifier">sx</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">sy</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">sz</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_Scale&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Multiplies a scaling matrix into the current matrix.</pre>
</dd>
<a id="rotate,cfloat,cfloat,cfloat,cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#rotate%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"><span class="Identifier">rotate</span></a><span class="Other">(</span><span class="Identifier">degrees</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">z</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_Rotate&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Multiplies a rotation matrix into the current matrix.</pre>
</dd>
<a id="multMatrix,ptr.cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#multMatrix%2Cptr.cfloat"><span class="Identifier">multMatrix</span></a><span class="Other">(</span><span class="Identifier">matrix4x4</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_MultMatrix&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Multiplies a given matrix into the current matrix.</pre>
</dd>
<a id="clear,ptr.Target"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#clear%2Cptr.Target"><span class="Identifier">clear</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_Clear&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>End of Matrix
! @}
! \ingroup Rendering
@{
! Clears the contents of the given render target. Fills the target with color {0, 0, 0, 0}.</pre>
</dd>
<a id="clearColor,ptr.Target,Color"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#clearColor%2Cptr.Target%2CColor"><span class="Identifier">clearColor</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_ClearColor&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Fills the given render target with a color.</pre>
</dd>
<a id="clearRGB,ptr.Target,Uint8,Uint8,Uint8"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#clearRGB%2Cptr.Target%2CUint8%2CUint8%2CUint8"><span class="Identifier">clearRGB</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">r</span><span class="Other">:</span> <a href="sdl2.html#Uint8"><span class="Identifier">Uint8</span></a><span class="Other">;</span> <span class="Identifier">g</span><span class="Other">:</span> <a href="sdl2.html#Uint8"><span class="Identifier">Uint8</span></a><span class="Other">;</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="sdl2.html#Uint8"><span class="Identifier">Uint8</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_ClearRGB&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Fills the given render target with a color (alpha is 255, fully opaque).</pre>
</dd>
<a id="clearRGBA,ptr.Target,Uint8,Uint8,Uint8,Uint8"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#clearRGBA%2Cptr.Target%2CUint8%2CUint8%2CUint8%2CUint8"><span class="Identifier">clearRGBA</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">r</span><span class="Other">:</span> <a href="sdl2.html#Uint8"><span class="Identifier">Uint8</span></a><span class="Other">;</span> <span class="Identifier">g</span><span class="Other">:</span> <a href="sdl2.html#Uint8"><span class="Identifier">Uint8</span></a><span class="Other">;</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="sdl2.html#Uint8"><span class="Identifier">Uint8</span></a><span class="Other">;</span> <span class="Identifier">a</span><span class="Other">:</span> <a href="sdl2.html#Uint8"><span class="Identifier">Uint8</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_ClearRGBA&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Fills the given render target with a color.</pre>
</dd>
<a id="blit,ptr.Image,ptr.Rect,ptr.Target,cfloat,cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#blit%2Cptr.Image%2Cptr.Rect%2Cptr.Target%2Ccfloat%2Ccfloat"><span class="Identifier">blit</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">srcRect</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a><span class="Other">;</span> <span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_Blit&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Draws the given image to the given render target.
\param src_rect The region of the source image to use. Pass NULL for the entire image.
\param x Destination x-position
\param y Destination y-position</pre>
</dd>
<a id="blitRotate,ptr.Image,ptr.Rect,ptr.Target,cfloat,cfloat,cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#blitRotate%2Cptr.Image%2Cptr.Rect%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat"><span class="Identifier">blitRotate</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">srcRect</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a><span class="Other">;</span> <span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">degrees</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_BlitRotate&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Rotates and draws the given image to the given render target.
\param src_rect The region of the source image to use. Pass NULL for the entire image.
\param x Destination x-position
\param y Destination y-position
\param degrees Rotation angle (in degrees)</pre>
</dd>
<a id="blitScale,ptr.Image,ptr.Rect,ptr.Target,cfloat,cfloat,cfloat,cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#blitScale%2Cptr.Image%2Cptr.Rect%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"><span class="Identifier">blitScale</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">srcRect</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a><span class="Other">;</span> <span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">scaleX</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">scaleY</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_BlitScale&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Scales and draws the given image to the given render target.
\param src_rect The region of the source image to use. Pass NULL for the entire image.
\param x Destination x-position
\param y Destination y-position
\param scaleX Horizontal stretch factor
\param scaleY Vertical stretch factor</pre>
</dd>
<a id="blitTransform,ptr.Image,ptr.Rect,ptr.Target,cfloat,cfloat,cfloat,cfloat,cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#blitTransform%2Cptr.Image%2Cptr.Rect%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"><span class="Identifier">blitTransform</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">srcRect</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a><span class="Other">;</span> <span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">degrees</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">scaleX</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">scaleY</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_BlitTransform&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Scales, rotates, and draws the given image to the given render target.
\param src_rect The region of the source image to use. Pass NULL for the entire image.
\param x Destination x-position
\param y Destination y-position
\param degrees Rotation angle (in degrees)
\param scaleX Horizontal stretch factor
\param scaleY Vertical stretch factor</pre>
</dd>
<a id="blitTransformX,ptr.Image,ptr.Rect,ptr.Target,cfloat,cfloat,cfloat,cfloat,cfloat,cfloat,cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#blitTransformX%2Cptr.Image%2Cptr.Rect%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat"><span class="Identifier">blitTransformX</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">srcRect</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a><span class="Other">;</span> <span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">pivotX</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">pivotY</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">degrees</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">scaleX</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">scaleY</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_BlitTransformX&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Scales, rotates around a pivot point, and draws the given image to the given render target. The drawing point (x, y) coincides with the pivot point on the src image (pivot_x, pivot_y).
\param src_rect The region of the source image to use. Pass NULL for the entire image.
\param x Destination x-position
\param y Destination y-position
\param pivot_x Pivot x-position (in image coordinates)
\param pivot_y Pivot y-position (in image coordinates)
\param degrees Rotation angle (in degrees)
\param scaleX Horizontal stretch factor
\param scaleY Vertical stretch factor</pre>
</dd>
<a id="blitRect,ptr.Image,ptr.Rect,ptr.Target,ptr.Rect"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#blitRect%2Cptr.Image%2Cptr.Rect%2Cptr.Target%2Cptr.Rect"><span class="Identifier">blitRect</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">srcRect</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a><span class="Other">;</span> <span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">destRect</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_BlitRect&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Draws the given image to the given render target, scaling it to fit the destination region.
\param src_rect The region of the source image to use. Pass NULL for the entire image.
\param dest_rect The region of the destination target image to draw upon. Pass NULL for the entire target.</pre>
</dd>
<a id="blitRectX,ptr.Image,ptr.Rect,ptr.Target,ptr.Rect,cfloat,cfloat,cfloat,FlipEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#blitRectX%2Cptr.Image%2Cptr.Rect%2Cptr.Target%2Cptr.Rect%2Ccfloat%2Ccfloat%2Ccfloat%2CFlipEnum"><span class="Identifier">blitRectX</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">srcRect</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a><span class="Other">;</span> <span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span>
<span class="Identifier">destRect</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a><span class="Other">;</span> <span class="Identifier">degrees</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">pivotX</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">pivotY</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">flipDirection</span><span class="Other">:</span> <a href="sdl2_gpu.html#FlipEnum"><span class="Identifier">FlipEnum</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_BlitRectX&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Draws the given image to the given render target, scaling it to fit the destination region.
\param src_rect The region of the source image to use. Pass NULL for the entire image.
\param dest_rect The region of the destination target image to draw upon. Pass NULL for the entire target.
\param degrees Rotation angle (in degrees)
\param pivot_x Pivot x-position (in image coordinates)
\param pivot_y Pivot y-position (in image coordinates)
\param flip_direction A GPU_FlipEnum value (or bitwise OR'd combination) that specifies which direction the image should be flipped.</pre>
</dd>
<a id="triangleBatch,ptr.Image,ptr.Target,cushort,ptr.cfloat,cuint,ptr.cushort,BatchFlagEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#triangleBatch%2Cptr.Image%2Cptr.Target%2Ccushort%2Cptr.cfloat%2Ccuint%2Cptr.cushort%2CBatchFlagEnum"><span class="Identifier">triangleBatch</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">numVertices</span><span class="Other">:</span> <span class="Identifier">cushort</span><span class="Other">;</span>
<span class="Identifier">values</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">numIndices</span><span class="Other">:</span> <span class="Identifier">cuint</span><span class="Other">;</span> <span class="Identifier">indices</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cushort</span><span class="Other">;</span>
<span class="Identifier">flags</span><span class="Other">:</span> <a href="sdl2_gpu.html#BatchFlagEnum"><span class="Identifier">BatchFlagEnum</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_TriangleBatch&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Renders triangles from the given set of vertices. This lets you render arbitrary geometry. It is a direct path to the GPU, so the format is different than typical SDL_gpu calls.
\param values A tightly-packed array of vertex position (e.g. x,y), texture coordinates (e.g. s,t), and color (e.g. r,g,b,a) values. Texture coordinates and color values are expected to be already normalized to 0.0 - 1.0. Pass NULL to render with only custom shader attributes.
\param indices If not NULL, this is used to specify which vertices to use and in what order (i.e. it indexes the vertices in the 'values' array).
\param flags Bit flags to control the interpretation of the 'values' array parameters.</pre>
</dd>
<a id="triangleBatchX,ptr.Image,ptr.Target,cushort,pointer,cuint,ptr.cushort,BatchFlagEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#triangleBatchX%2Cptr.Image%2Cptr.Target%2Ccushort%2Cpointer%2Ccuint%2Cptr.cushort%2CBatchFlagEnum"><span class="Identifier">triangleBatchX</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">numVertices</span><span class="Other">:</span> <span class="Identifier">cushort</span><span class="Other">;</span>
<span class="Identifier">values</span><span class="Other">:</span> <span class="Identifier">pointer</span><span class="Other">;</span> <span class="Identifier">numIndices</span><span class="Other">:</span> <span class="Identifier">cuint</span><span class="Other">;</span> <span class="Identifier">indices</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cushort</span><span class="Other">;</span>
<span class="Identifier">flags</span><span class="Other">:</span> <a href="sdl2_gpu.html#BatchFlagEnum"><span class="Identifier">BatchFlagEnum</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_TriangleBatchX&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Renders triangles from the given set of vertices. This lets you render arbitrary geometry. It is a direct path to the GPU, so the format is different than typical SDL_gpu calls.
\param values A tightly-packed array of vertex position (e.g. x,y), texture coordinates (e.g. s,t), and color (e.g. r,g,b,a) values. Texture coordinates and color values are expected to be already normalized to 0.0 - 1.0 (or 0 - 255 for 8-bit color components). Pass NULL to render with only custom shader attributes.
\param indices If not NULL, this is used to specify which vertices to use and in what order (i.e. it indexes the vertices in the 'values' array).
\param flags Bit flags to control the interpretation of the 'values' array parameters.</pre>
</dd>
<a id="primitiveBatch,ptr.Image,ptr.Target,PrimitiveEnum,cushort,ptr.cfloat,cuint,ptr.cushort,BatchFlagEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#primitiveBatch%2Cptr.Image%2Cptr.Target%2CPrimitiveEnum%2Ccushort%2Cptr.cfloat%2Ccuint%2Cptr.cushort%2CBatchFlagEnum"><span class="Identifier">primitiveBatch</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">primitiveType</span><span class="Other">:</span> <a href="sdl2_gpu.html#PrimitiveEnum"><span class="Identifier">PrimitiveEnum</span></a><span class="Other">;</span>
<span class="Identifier">numVertices</span><span class="Other">:</span> <span class="Identifier">cushort</span><span class="Other">;</span> <span class="Identifier">values</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">numIndices</span><span class="Other">:</span> <span class="Identifier">cuint</span><span class="Other">;</span>
<span class="Identifier">indices</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cushort</span><span class="Other">;</span> <span class="Identifier">flags</span><span class="Other">:</span> <a href="sdl2_gpu.html#BatchFlagEnum"><span class="Identifier">BatchFlagEnum</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_PrimitiveBatch&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Renders primitives from the given set of vertices. This lets you render arbitrary geometry. It is a direct path to the GPU, so the format is different than typical SDL_gpu calls.
\param primitive_type The kind of primitive to render.
\param values A tightly-packed array of vertex position (e.g. x,y), texture coordinates (e.g. s,t), and color (e.g. r,g,b,a) values. Texture coordinates and color values are expected to be already normalized to 0.0 - 1.0 (or 0 - 255 for 8-bit color components). Pass NULL to render with only custom shader attributes.
\param indices If not NULL, this is used to specify which vertices to use and in what order (i.e. it indexes the vertices in the 'values' array).
\param flags Bit flags to control the interpretation of the 'values' array parameters.</pre>
</dd>
<a id="primitiveBatchV,ptr.Image,ptr.Target,PrimitiveEnum,cushort,pointer,cuint,ptr.cushort,BatchFlagEnum"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#primitiveBatchV%2Cptr.Image%2Cptr.Target%2CPrimitiveEnum%2Ccushort%2Cpointer%2Ccuint%2Cptr.cushort%2CBatchFlagEnum"><span class="Identifier">primitiveBatchV</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span>
<span class="Identifier">primitiveType</span><span class="Other">:</span> <a href="sdl2_gpu.html#PrimitiveEnum"><span class="Identifier">PrimitiveEnum</span></a><span class="Other">;</span> <span class="Identifier">numVertices</span><span class="Other">:</span> <span class="Identifier">cushort</span><span class="Other">;</span>
<span class="Identifier">values</span><span class="Other">:</span> <span class="Identifier">pointer</span><span class="Other">;</span> <span class="Identifier">numIndices</span><span class="Other">:</span> <span class="Identifier">cuint</span><span class="Other">;</span> <span class="Identifier">indices</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cushort</span><span class="Other">;</span>
<span class="Identifier">flags</span><span class="Other">:</span> <a href="sdl2_gpu.html#BatchFlagEnum"><span class="Identifier">BatchFlagEnum</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_PrimitiveBatchV&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Renders primitives from the given set of vertices. This lets you render arbitrary geometry. It is a direct path to the GPU, so the format is different than typical SDL_gpu calls.
\param primitive_type The kind of primitive to render.
\param values A tightly-packed array of vertex position (e.g. x,y), texture coordinates (e.g. s,t), and color (e.g. r,g,b,a) values. Texture coordinates and color values are expected to be already normalized to 0.0 - 1.0 (or 0 - 255 for 8-bit color components). Pass NULL to render with only custom shader attributes.
\param indices If not NULL, this is used to specify which vertices to use and in what order (i.e. it indexes the vertices in the 'values' array).
\param flags Bit flags to control the interpretation of the 'values' array parameters.</pre>
</dd>
<a id="flushBlitBuffer"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#flushBlitBuffer"><span class="Identifier">flushBlitBuffer</span></a><span class="Other">(</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_FlushBlitBuffer&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Send all buffered blitting data to the current context target.</pre>
</dd>
<a id="flip,ptr.Target"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#flip%2Cptr.Target"><span class="Identifier">flip</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_Flip&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Updates the given target's associated window. For non-context targets (e.g. image targets), this will flush the blit buffer.</pre>
</dd>
<a id="pixel,ptr.Target,cfloat,cfloat,Color"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#pixel%2Cptr.Target%2Ccfloat%2Ccfloat%2CColor"><span class="Identifier">pixel</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_Pixel&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>End of Rendering
! @}
! \ingroup Shapes
@{
! Renders a colored point.
\param target The destination render target
\param x x-coord of the point
\param y y-coord of the point
\param color The color of the shape to render</pre>
</dd>
<a id="line,ptr.Target,cfloat,cfloat,cfloat,cfloat,Color"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#line%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"><span class="Identifier">line</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">x1</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y1</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">x2</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y2</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_Line&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Renders a colored line.
\param target The destination render target
\param x1 x-coord of starting point
\param y1 y-coord of starting point
\param x2 x-coord of ending point
\param y2 y-coord of ending point
\param color The color of the shape to render</pre>
</dd>
<a id="arc,ptr.Target,cfloat,cfloat,cfloat,cfloat,cfloat,Color"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#arc%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"><span class="Identifier">arc</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">radius</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">startAngle</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">endAngle</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_Arc&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Renders a colored arc curve (circle segment).
\param target The destination render target
\param x x-coord of center point
\param y y-coord of center point
\param radius The radius of the circle / distance from the center point that rendering will occur
\param start_angle The angle to start from, in degrees. Measured clockwise from the positive x-axis.
\param end_angle The angle to end at, in degrees. Measured clockwise from the positive x-axis.
\param color The color of the shape to render</pre>
</dd>
<a id="arcFilled,ptr.Target,cfloat,cfloat,cfloat,cfloat,cfloat,Color"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#arcFilled%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"><span class="Identifier">arcFilled</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">radius</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">startAngle</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">endAngle</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_ArcFilled&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Renders a colored filled arc (circle segment / pie piece).
\param target The destination render target
\param x x-coord of center point
\param y y-coord of center point
\param radius The radius of the circle / distance from the center point that rendering will occur
\param start_angle The angle to start from, in degrees. Measured clockwise from the positive x-axis.
\param end_angle The angle to end at, in degrees. Measured clockwise from the positive x-axis.
\param color The color of the shape to render</pre>
</dd>
<a id="circle,ptr.Target,cfloat,cfloat,cfloat,Color"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#circle%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"><span class="Identifier">circle</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">radius</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_Circle&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Renders a colored circle outline.
\param target The destination render target
\param x x-coord of center point
\param y y-coord of center point
\param radius The radius of the circle / distance from the center point that rendering will occur
\param color The color of the shape to render</pre>
</dd>
<a id="circleFilled,ptr.Target,cfloat,cfloat,cfloat,Color"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#circleFilled%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"><span class="Identifier">circleFilled</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">radius</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_CircleFilled&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Renders a colored filled circle.
\param target The destination render target
\param x x-coord of center point
\param y y-coord of center point
\param radius The radius of the circle / distance from the center point that rendering will occur
\param color The color of the shape to render</pre>
</dd>
<a id="ellipse,ptr.Target,cfloat,cfloat,cfloat,cfloat,cfloat,Color"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#ellipse%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"><span class="Identifier">ellipse</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">rx</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">ry</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">degrees</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_Ellipse&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Renders a colored ellipse outline.
\param target The destination render target
\param x x-coord of center point
\param y y-coord of center point
\param rx x-radius of ellipse
\param ry y-radius of ellipse
\param degrees The angle to rotate the ellipse
\param color The color of the shape to render</pre>
</dd>
<a id="ellipseFilled,ptr.Target,cfloat,cfloat,cfloat,cfloat,cfloat,Color"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#ellipseFilled%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"><span class="Identifier">ellipseFilled</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">rx</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">ry</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">degrees</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_EllipseFilled&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Renders a colored filled ellipse.
\param target The destination render target
\param x x-coord of center point
\param y y-coord of center point
\param rx x-radius of ellipse
\param ry y-radius of ellipse
\param degrees The angle to rotate the ellipse
\param color The color of the shape to render</pre>
</dd>
<a id="sector,ptr.Target,cfloat,cfloat,cfloat,cfloat,cfloat,cfloat,Color"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#sector%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"><span class="Identifier">sector</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">innerRadius</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">outerRadius</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">startAngle</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">endAngle</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_Sector&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Renders a colored annular sector outline (ring segment).
\param target The destination render target
\param x x-coord of center point
\param y y-coord of center point
\param inner_radius The inner radius of the ring
\param outer_radius The outer radius of the ring
\param start_angle The angle to start from, in degrees. Measured clockwise from the positive x-axis.
\param end_angle The angle to end at, in degrees. Measured clockwise from the positive x-axis.
\param color The color of the shape to render</pre>
</dd>
<a id="sectorFilled,ptr.Target,cfloat,cfloat,cfloat,cfloat,cfloat,cfloat,Color"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#sectorFilled%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"><span class="Identifier">sectorFilled</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">innerRadius</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">outerRadius</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">startAngle</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">endAngle</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">color</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SectorFilled&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Renders a colored filled annular sector (ring segment).
\param target The destination render target
\param x x-coord of center point
\param y y-coord of center point
\param inner_radius The inner radius of the ring
\param outer_radius The outer radius of the ring
\param start_angle The angle to start from, in degrees. Measured clockwise from the positive x-axis.
\param end_angle The angle to end at, in degrees. Measured clockwise from the positive x-axis.
\param color The color of the shape to render</pre>
</dd>
<a id="tri,ptr.Target,cfloat,cfloat,cfloat,cfloat,cfloat,cfloat,Color"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#tri%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"><span class="Identifier">tri</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">x1</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y1</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">x2</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y2</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">x3</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">y3</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_Tri&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Renders a colored triangle outline.
\param target The destination render target
\param x1 x-coord of first point
\param y1 y-coord of first point
\param x2 x-coord of second point
\param y2 y-coord of second point
\param x3 x-coord of third point
\param y3 y-coord of third point
\param color The color of the shape to render</pre>
</dd>
<a id="triFilled,ptr.Target,cfloat,cfloat,cfloat,cfloat,cfloat,cfloat,Color"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#triFilled%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"><span class="Identifier">triFilled</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">x1</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y1</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">x2</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y2</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">x3</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y3</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_TriFilled&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Renders a colored filled triangle.
\param target The destination render target
\param x1 x-coord of first point
\param y1 y-coord of first point
\param x2 x-coord of second point
\param y2 y-coord of second point
\param x3 x-coord of third point
\param y3 y-coord of third point
\param color The color of the shape to render</pre>
</dd>
<a id="rectangle,ptr.Target,cfloat,cfloat,cfloat,cfloat,Color"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#rectangle%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"><span class="Identifier">rectangle</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">x1</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y1</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">x2</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y2</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">color</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_Rectangle&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Renders a colored rectangle outline.
\param target The destination render target
\param x1 x-coord of top-left corner
\param y1 y-coord of top-left corner
\param x2 x-coord of bottom-right corner
\param y2 y-coord of bottom-right corner
\param color The color of the shape to render</pre>
</dd>
<a id="rectangle2,ptr.Target,Rect,Color"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#rectangle2%2Cptr.Target%2CRect%2CColor"><span class="Identifier">rectangle2</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">rect</span><span class="Other">:</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_Rectangle2&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Renders a colored rectangle outline.
\param target The destination render target
\param rect The rectangular area to draw
\param color The color of the shape to render</pre>
</dd>
<a id="rectangleFilled,ptr.Target,cfloat,cfloat,cfloat,cfloat,Color"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#rectangleFilled%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"><span class="Identifier">rectangleFilled</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">x1</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y1</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">x2</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y2</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">color</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_RectangleFilled&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Renders a colored filled rectangle.
\param target The destination render target
\param x1 x-coord of top-left corner
\param y1 y-coord of top-left corner
\param x2 x-coord of bottom-right corner
\param y2 y-coord of bottom-right corner
\param color The color of the shape to render</pre>
</dd>
<a id="rectangleFilled2,ptr.Target,Rect,Color"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#rectangleFilled2%2Cptr.Target%2CRect%2CColor"><span class="Identifier">rectangleFilled2</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">rect</span><span class="Other">:</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_RectangleFilled2&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Renders a colored filled rectangle.
\param target The destination render target
\param rect The rectangular area to draw
\param color The color of the shape to render</pre>
</dd>
<a id="rectangleRound,ptr.Target,cfloat,cfloat,cfloat,cfloat,cfloat,Color"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#rectangleRound%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"><span class="Identifier">rectangleRound</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">x1</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y1</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">x2</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y2</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">radius</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_RectangleRound&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Renders a colored rounded (filleted) rectangle outline.
\param target The destination render target
\param x1 x-coord of top-left corner
\param y1 y-coord of top-left corner
\param x2 x-coord of bottom-right corner
\param y2 y-coord of bottom-right corner
\param radius The radius of the corners
\param color The color of the shape to render</pre>
</dd>
<a id="rectangleRound2,ptr.Target,Rect,cfloat,Color"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#rectangleRound2%2Cptr.Target%2CRect%2Ccfloat%2CColor"><span class="Identifier">rectangleRound2</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">rect</span><span class="Other">:</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a><span class="Other">;</span> <span class="Identifier">radius</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_RectangleRound2&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Renders a colored rounded (filleted) rectangle outline.
\param target The destination render target
\param rect The rectangular area to draw
\param radius The radius of the corners
\param color The color of the shape to render</pre>
</dd>
<a id="rectangleRoundFilled,ptr.Target,cfloat,cfloat,cfloat,cfloat,cfloat,Color"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#rectangleRoundFilled%2Cptr.Target%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2Ccfloat%2CColor"><span class="Identifier">rectangleRoundFilled</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">x1</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">y1</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">x2</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">y2</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">radius</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_RectangleRoundFilled&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Renders a colored filled rounded (filleted) rectangle.
\param target The destination render target
\param x1 x-coord of top-left corner
\param y1 y-coord of top-left corner
\param x2 x-coord of bottom-right corner
\param y2 y-coord of bottom-right corner
\param radius The radius of the corners
\param color The color of the shape to render</pre>
</dd>
<a id="rectangleRoundFilled2,ptr.Target,Rect,cfloat,Color"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#rectangleRoundFilled2%2Cptr.Target%2CRect%2Ccfloat%2CColor"><span class="Identifier">rectangleRoundFilled2</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">rect</span><span class="Other">:</span> <a href="sdl2_gpu.html#Rect"><span class="Identifier">Rect</span></a><span class="Other">;</span> <span class="Identifier">radius</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_RectangleRoundFilled2&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Renders a colored filled rounded (filleted) rectangle.
\param target The destination render target
\param rect The rectangular area to draw
\param radius The radius of the corners
\param color The color of the shape to render</pre>
</dd>
<a id="polygon,ptr.Target,cuint,ptr.cfloat,Color"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#polygon%2Cptr.Target%2Ccuint%2Cptr.cfloat%2CColor"><span class="Identifier">polygon</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">numVertices</span><span class="Other">:</span> <span class="Identifier">cuint</span><span class="Other">;</span> <span class="Identifier">vertices</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_Polygon&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Renders a colored polygon outline. The vertices are expected to define a convex polygon.
\param target The destination render target
\param num_vertices Number of vertices (x and y pairs)
\param vertices An array of vertex positions stored as interlaced x and y coords, e.g. {x1, y1, x2, y2, ...}
\param color The color of the shape to render</pre>
</dd>
<a id="polyline,ptr.Target,cuint,ptr.cfloat,Color,Bool"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#polyline%2Cptr.Target%2Ccuint%2Cptr.cfloat%2CColor%2CBool"><span class="Identifier">polyline</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">numVertices</span><span class="Other">:</span> <span class="Identifier">cuint</span><span class="Other">;</span> <span class="Identifier">vertices</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a><span class="Other">;</span>
<span class="Identifier">closeLoop</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_Polyline&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Renders a colored sequence of line segments.
\param target The destination render target
\param num_vertices Number of vertices (x and y pairs)
\param vertices An array of vertex positions stored as interlaced x and y coords, e.g. {x1, y1, x2, y2, ...}
\param color The color of the shape to render
\param close_loop Make a closed polygon by drawing a line at the end back to the start point</pre>
</dd>
<a id="polygonFilled,ptr.Target,cuint,ptr.cfloat,Color"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#polygonFilled%2Cptr.Target%2Ccuint%2Cptr.cfloat%2CColor"><span class="Identifier">polygonFilled</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Target"><span class="Identifier">Target</span></a><span class="Other">;</span> <span class="Identifier">numVertices</span><span class="Other">:</span> <span class="Identifier">cuint</span><span class="Other">;</span> <span class="Identifier">vertices</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">;</span>
<span class="Identifier">color</span><span class="Other">:</span> <a href="sdl2.html#Color"><span class="Identifier">Color</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_PolygonFilled&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Renders a colored filled polygon. The vertices are expected to define a convex polygon.
\param target The destination render target
\param num_vertices Number of vertices (x and y pairs)
\param vertices An array of vertex positions stored as interlaced x and y coords, e.g. {x1, y1, x2, y2, ...}
\param color The color of the shape to render</pre>
</dd>
<a id="createShaderProgram"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#createShaderProgram"><span class="Identifier">createShaderProgram</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_CreateShaderProgram&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>End of Shapes
! @}
! \ingroup ShaderInterface
@{
! Creates a new, empty shader program. You will need to compile shaders, attach them to the program, then link the program.
\see GPU_AttachShader
\see GPU_LinkShaderProgram</pre>
</dd>
<a id="freeShaderProgram,Uint32"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#freeShaderProgram%2CUint32"><span class="Identifier">freeShaderProgram</span></a><span class="Other">(</span><span class="Identifier">programObject</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_FreeShaderProgram&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Deletes a shader program.</pre>
</dd>
<a id="compileShader_RW,ShaderEnum,ptr.RWops,Bool"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#compileShader_RW%2CShaderEnum%2Cptr.RWops%2CBool"><span class="Identifier">compileShader_RW</span></a><span class="Other">(</span><span class="Identifier">shaderType</span><span class="Other">:</span> <a href="sdl2_gpu.html#ShaderEnum"><span class="Identifier">ShaderEnum</span></a><span class="Other">;</span> <span class="Identifier">shaderSource</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2.html#RWops"><span class="Identifier">RWops</span></a><span class="Other">;</span> <span class="Identifier">freeRwops</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_CompileShader_RW&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Loads shader source from an SDL_RWops, compiles it, and returns the new shader object.</pre>
</dd>
<a id="compileShader,ShaderEnum,cstring"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#compileShader%2CShaderEnum%2Ccstring"><span class="Identifier">compileShader</span></a><span class="Other">(</span><span class="Identifier">shaderType</span><span class="Other">:</span> <a href="sdl2_gpu.html#ShaderEnum"><span class="Identifier">ShaderEnum</span></a><span class="Other">;</span> <span class="Identifier">shaderSource</span><span class="Other">:</span> <span class="Identifier">cstring</span><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_CompileShader&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Compiles shader source and returns the new shader object.</pre>
</dd>
<a id="loadShader,ShaderEnum,cstring"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#loadShader%2CShaderEnum%2Ccstring"><span class="Identifier">loadShader</span></a><span class="Other">(</span><span class="Identifier">shaderType</span><span class="Other">:</span> <a href="sdl2_gpu.html#ShaderEnum"><span class="Identifier">ShaderEnum</span></a><span class="Other">;</span> <span class="Identifier">filename</span><span class="Other">:</span> <span class="Identifier">cstring</span><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_LoadShader&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Loads shader source from a file, compiles it, and returns the new shader object.</pre>
</dd>
<a id="linkShaders,Uint32,Uint32"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#linkShaders%2CUint32%2CUint32"><span class="Identifier">linkShaders</span></a><span class="Other">(</span><span class="Identifier">shaderObject1</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a><span class="Other">;</span> <span class="Identifier">shaderObject2</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_LinkShaders&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Creates and links a shader program with the given shader objects.</pre>
</dd>
<a id="linkManyShaders,ptr.Uint32,cint"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#linkManyShaders%2Cptr.Uint32%2Ccint"><span class="Identifier">linkManyShaders</span></a><span class="Other">(</span><span class="Identifier">shaderObjects</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a><span class="Other">;</span> <span class="Identifier">count</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_LinkManyShaders&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Creates and links a shader program with the given shader objects.</pre>
</dd>
<a id="freeShader,Uint32"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#freeShader%2CUint32"><span class="Identifier">freeShader</span></a><span class="Other">(</span><span class="Identifier">shaderObject</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_FreeShader&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Deletes a shader object.</pre>
</dd>
<a id="attachShader,Uint32,Uint32"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#attachShader%2CUint32%2CUint32"><span class="Identifier">attachShader</span></a><span class="Other">(</span><span class="Identifier">programObject</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a><span class="Other">;</span> <span class="Identifier">shaderObject</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_AttachShader&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Attaches a shader object to a shader program for future linking.</pre>
</dd>
<a id="detachShader,Uint32,Uint32"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#detachShader%2CUint32%2CUint32"><span class="Identifier">detachShader</span></a><span class="Other">(</span><span class="Identifier">programObject</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a><span class="Other">;</span> <span class="Identifier">shaderObject</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_DetachShader&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Detaches a shader object from a shader program.</pre>
</dd>
<a id="linkShaderProgram,Uint32"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#linkShaderProgram%2CUint32"><span class="Identifier">linkShaderProgram</span></a><span class="Other">(</span><span class="Identifier">programObject</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_LinkShaderProgram&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Links a shader program with any attached shader objects.</pre>
</dd>
<a id="getCurrentShaderProgram"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getCurrentShaderProgram"><span class="Identifier">getCurrentShaderProgram</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetCurrentShaderProgram&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! \return The current shader program</pre>
</dd>
<a id="isDefaultShaderProgram,Uint32"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#isDefaultShaderProgram%2CUint32"><span class="Identifier">isDefaultShaderProgram</span></a><span class="Other">(</span><span class="Identifier">programObject</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_IsDefaultShaderProgram&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Returns 1 if the given shader program is a default shader for the current context, 0 otherwise.</pre>
</dd>
<a id="activateShaderProgram,Uint32,ptr.ShaderBlock"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#activateShaderProgram%2CUint32%2Cptr.ShaderBlock"><span class="Identifier">activateShaderProgram</span></a><span class="Other">(</span><span class="Identifier">programObject</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a><span class="Other">;</span> <span class="Other">`</span><span class="Keyword">block</span><span class="Other">`</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#ShaderBlock"><span class="Identifier">ShaderBlock</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_ActivateShaderProgram&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Activates the given shader program. Passing NULL for 'block' will disable the built-in shader variables for custom shaders until a GPU_ShaderBlock is set again.</pre>
</dd>
<a id="deactivateShaderProgram"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#deactivateShaderProgram"><span class="Identifier">deactivateShaderProgram</span></a><span class="Other">(</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_DeactivateShaderProgram&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Deactivates the current shader program (activates program 0).</pre>
</dd>
<a id="getShaderMessage"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getShaderMessage"><span class="Identifier">getShaderMessage</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">cstring</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetShaderMessage&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Returns the last shader log message.</pre>
</dd>
<a id="getAttributeLocation,Uint32,cstring"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getAttributeLocation%2CUint32%2Ccstring"><span class="Identifier">getAttributeLocation</span></a><span class="Other">(</span><span class="Identifier">programObject</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a><span class="Other">;</span> <span class="Identifier">attribName</span><span class="Other">:</span> <span class="Identifier">cstring</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">cint</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetAttributeLocation&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Returns an integer representing the location of the specified attribute shader variable.</pre>
</dd>
<a id="makeAttributeFormat,cint,TypeEnum,Bool,cint,cint"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#makeAttributeFormat%2Ccint%2CTypeEnum%2CBool%2Ccint%2Ccint"><span class="Identifier">makeAttributeFormat</span></a><span class="Other">(</span><span class="Identifier">numElemsPerVertex</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">kind</span><span class="Other">:</span> <a href="sdl2_gpu.html#TypeEnum"><span class="Identifier">TypeEnum</span></a><span class="Other">;</span> <span class="Identifier">normalize</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a><span class="Other">;</span>
<span class="Identifier">strideBytes</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">offsetBytes</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">)</span><span class="Other">:</span> <a href="sdl2_gpu.html#AttributeFormat"><span class="Identifier">AttributeFormat</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_MakeAttributeFormat&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Returns a filled GPU_AttributeFormat object.</pre>
</dd>
<a id="makeAttribute,cint,pointer,AttributeFormat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#makeAttribute%2Ccint%2Cpointer%2CAttributeFormat"><span class="Identifier">makeAttribute</span></a><span class="Other">(</span><span class="Identifier">location</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">values</span><span class="Other">:</span> <span class="Identifier">pointer</span><span class="Other">;</span> <span class="Identifier">format</span><span class="Other">:</span> <a href="sdl2_gpu.html#AttributeFormat"><span class="Identifier">AttributeFormat</span></a><span class="Other">)</span><span class="Other">:</span> <a href="sdl2_gpu.html#Attribute"><span class="Identifier">Attribute</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_MakeAttribute&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Returns a filled GPU_Attribute object.</pre>
</dd>
<a id="getUniformLocation,Uint32,cstring"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getUniformLocation%2CUint32%2Ccstring"><span class="Identifier">getUniformLocation</span></a><span class="Other">(</span><span class="Identifier">programObject</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a><span class="Other">;</span> <span class="Identifier">uniformName</span><span class="Other">:</span> <span class="Identifier">cstring</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">cint</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetUniformLocation&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Returns an integer representing the location of the specified uniform shader variable.</pre>
</dd>
<a id="loadShaderBlock,Uint32,cstring,cstring,cstring,cstring"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#loadShaderBlock%2CUint32%2Ccstring%2Ccstring%2Ccstring%2Ccstring"><span class="Identifier">loadShaderBlock</span></a><span class="Other">(</span><span class="Identifier">programObject</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a><span class="Other">;</span> <span class="Identifier">positionName</span><span class="Other">:</span> <span class="Identifier">cstring</span><span class="Other">;</span>
<span class="Identifier">texcoordName</span><span class="Other">:</span> <span class="Identifier">cstring</span><span class="Other">;</span> <span class="Identifier">colorName</span><span class="Other">:</span> <span class="Identifier">cstring</span><span class="Other">;</span>
<span class="Identifier">modelViewMatrixName</span><span class="Other">:</span> <span class="Identifier">cstring</span><span class="Other">)</span><span class="Other">:</span> <a href="sdl2_gpu.html#ShaderBlock"><span class="Identifier">ShaderBlock</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_LoadShaderBlock&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Loads the given shader program's built-in attribute and uniform locations.</pre>
</dd>
<a id="setShaderBlock,ShaderBlock"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setShaderBlock%2CShaderBlock"><span class="Identifier">setShaderBlock</span></a><span class="Other">(</span><span class="Other">`</span><span class="Keyword">block</span><span class="Other">`</span><span class="Other">:</span> <a href="sdl2_gpu.html#ShaderBlock"><span class="Identifier">ShaderBlock</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetShaderBlock&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the current shader block to use the given attribute and uniform locations.</pre>
</dd>
<a id="getShaderBlock"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getShaderBlock"><span class="Identifier">getShaderBlock</span></a><span class="Other">(</span><span class="Other">)</span><span class="Other">:</span> <a href="sdl2_gpu.html#ShaderBlock"><span class="Identifier">ShaderBlock</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetShaderBlock&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Gets the shader block for the current shader.</pre>
</dd>
<a id="setShaderImage,ptr.Image,cint,cint"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setShaderImage%2Cptr.Image%2Ccint%2Ccint"><span class="Identifier">setShaderImage</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <span class="Keyword">ptr</span> <a href="sdl2_gpu.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">location</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">imageUnit</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetShaderImage&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the given image unit to the given image so that a custom shader can sample multiple textures.
\param image The source image/texture. Pass NULL to disable the image unit.
\param location The uniform location of a texture sampler
\param image_unit The index of the texture unit to set. 0 is the first unit, which is used by SDL_gpu's blitting functions. 1 would be the second unit.</pre>
</dd>
<a id="getUniformiv,Uint32,cint,ptr.cint"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getUniformiv%2CUint32%2Ccint%2Cptr.cint"><span class="Identifier">getUniformiv</span></a><span class="Other">(</span><span class="Identifier">programObject</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a><span class="Other">;</span> <span class="Identifier">location</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">values</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cint</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetUniformiv&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Fills &quot;values&quot; with the value of the uniform shader variable at the given location.</pre>
</dd>
<a id="setUniformi,cint,cint"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setUniformi%2Ccint%2Ccint"><span class="Identifier">setUniformi</span></a><span class="Other">(</span><span class="Identifier">location</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">value</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetUniformi&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the value of the integer uniform shader variable at the given location.
This is equivalent to calling GPU_SetUniformiv(location, 1, 1, &amp;value).</pre>
</dd>
<a id="setUniformiv,cint,cint,cint,ptr.cint"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setUniformiv%2Ccint%2Ccint%2Ccint%2Cptr.cint"><span class="Identifier">setUniformiv</span></a><span class="Other">(</span><span class="Identifier">location</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">numElementsPerValue</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">numValues</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span>
<span class="Identifier">values</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cint</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetUniformiv&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the value of the integer uniform shader variable at the given location.</pre>
</dd>
<a id="getUniformuiv,Uint32,cint,ptr.cuint"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getUniformuiv%2CUint32%2Ccint%2Cptr.cuint"><span class="Identifier">getUniformuiv</span></a><span class="Other">(</span><span class="Identifier">programObject</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a><span class="Other">;</span> <span class="Identifier">location</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">values</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cuint</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetUniformuiv&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Fills &quot;values&quot; with the value of the uniform shader variable at the given location.</pre>
</dd>
<a id="setUniformui,cint,cuint"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setUniformui%2Ccint%2Ccuint"><span class="Identifier">setUniformui</span></a><span class="Other">(</span><span class="Identifier">location</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">value</span><span class="Other">:</span> <span class="Identifier">cuint</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetUniformui&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the value of the unsigned integer uniform shader variable at the given location.
This is equivalent to calling GPU_SetUniformuiv(location, 1, 1, &amp;value).</pre>
</dd>
<a id="setUniformuiv,cint,cint,cint,ptr.cuint"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setUniformuiv%2Ccint%2Ccint%2Ccint%2Cptr.cuint"><span class="Identifier">setUniformuiv</span></a><span class="Other">(</span><span class="Identifier">location</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">numElementsPerValue</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">numValues</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span>
<span class="Identifier">values</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cuint</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetUniformuiv&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the value of the unsigned integer uniform shader variable at the given location.</pre>
</dd>
<a id="getUniformfv,Uint32,cint,ptr.cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getUniformfv%2CUint32%2Ccint%2Cptr.cfloat"><span class="Identifier">getUniformfv</span></a><span class="Other">(</span><span class="Identifier">programObject</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a><span class="Other">;</span> <span class="Identifier">location</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">values</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetUniformfv&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Fills &quot;values&quot; with the value of the uniform shader variable at the given location.</pre>
</dd>
<a id="setUniformf,cint,cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setUniformf%2Ccint%2Ccfloat"><span class="Identifier">setUniformf</span></a><span class="Other">(</span><span class="Identifier">location</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">value</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetUniformf&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the value of the floating point uniform shader variable at the given location.
This is equivalent to calling GPU_SetUniformfv(location, 1, 1, &amp;value).</pre>
</dd>
<a id="setUniformfv,cint,cint,cint,ptr.cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setUniformfv%2Ccint%2Ccint%2Ccint%2Cptr.cfloat"><span class="Identifier">setUniformfv</span></a><span class="Other">(</span><span class="Identifier">location</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">numElementsPerValue</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">numValues</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span>
<span class="Identifier">values</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetUniformfv&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the value of the floating point uniform shader variable at the given location.</pre>
</dd>
<a id="getUniformMatrixfv,Uint32,cint,ptr.cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#getUniformMatrixfv%2CUint32%2Ccint%2Cptr.cfloat"><span class="Identifier">getUniformMatrixfv</span></a><span class="Other">(</span><span class="Identifier">programObject</span><span class="Other">:</span> <a href="sdl2.html#Uint32"><span class="Identifier">Uint32</span></a><span class="Other">;</span> <span class="Identifier">location</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">values</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_GetUniformMatrixfv&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Fills &quot;values&quot; with the value of the uniform shader variable at the given location. The results are identical to calling GPU_GetUniformfv(). Matrices are gotten in column-major order.</pre>
</dd>
<a id="setUniformMatrixfv,cint,cint,cint,cint,Bool,ptr.cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setUniformMatrixfv%2Ccint%2Ccint%2Ccint%2Ccint%2CBool%2Cptr.cfloat"><span class="Identifier">setUniformMatrixfv</span></a><span class="Other">(</span><span class="Identifier">location</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">numMatrices</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">numRows</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span>
<span class="Identifier">numColumns</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">transpose</span><span class="Other">:</span> <a href="sdl2.html#Bool"><span class="Identifier">Bool</span></a><span class="Other">;</span> <span class="Identifier">values</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetUniformMatrixfv&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets the value of the matrix uniform shader variable at the given location. The size of the matrices sent is specified by num_rows and num_columns. Rows and columns must be between 2 and 4.</pre>
</dd>
<a id="setAttributef,cint,cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setAttributef%2Ccint%2Ccfloat"><span class="Identifier">setAttributef</span></a><span class="Other">(</span><span class="Identifier">location</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">value</span><span class="Other">:</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetAttributef&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets a constant-value shader attribute that will be used for each rendered vertex.</pre>
</dd>
<a id="setAttributei,cint,cint"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setAttributei%2Ccint%2Ccint"><span class="Identifier">setAttributei</span></a><span class="Other">(</span><span class="Identifier">location</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">value</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetAttributei&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets a constant-value shader attribute that will be used for each rendered vertex.</pre>
</dd>
<a id="setAttributeui,cint,cuint"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setAttributeui%2Ccint%2Ccuint"><span class="Identifier">setAttributeui</span></a><span class="Other">(</span><span class="Identifier">location</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">value</span><span class="Other">:</span> <span class="Identifier">cuint</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetAttributeui&quot;</span><span class="Other">,</span>
<span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets a constant-value shader attribute that will be used for each rendered vertex.</pre>
</dd>
<a id="setAttributefv,cint,cint,ptr.cfloat"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setAttributefv%2Ccint%2Ccint%2Cptr.cfloat"><span class="Identifier">setAttributefv</span></a><span class="Other">(</span><span class="Identifier">location</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">numElements</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">value</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cfloat</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetAttributefv&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets a constant-value shader attribute that will be used for each rendered vertex.</pre>
</dd>
<a id="setAttributeiv,cint,cint,ptr.cint"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setAttributeiv%2Ccint%2Ccint%2Cptr.cint"><span class="Identifier">setAttributeiv</span></a><span class="Other">(</span><span class="Identifier">location</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">numElements</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">value</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cint</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetAttributeiv&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets a constant-value shader attribute that will be used for each rendered vertex.</pre>
</dd>
<a id="setAttributeuiv,cint,cint,ptr.cuint"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setAttributeuiv%2Ccint%2Ccint%2Cptr.cuint"><span class="Identifier">setAttributeuiv</span></a><span class="Other">(</span><span class="Identifier">location</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">numElements</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">value</span><span class="Other">:</span> <span class="Keyword">ptr</span> <span class="Identifier">cuint</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetAttributeuiv&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Sets a constant-value shader attribute that will be used for each rendered vertex.</pre>
</dd>
<a id="setAttributeSource,cint,Attribute"></a>
<dt><pre><span class="Keyword">proc</span> <a href="#setAttributeSource%2Ccint%2CAttribute"><span class="Identifier">setAttributeSource</span></a><span class="Other">(</span><span class="Identifier">numValues</span><span class="Other">:</span> <span class="Identifier">cint</span><span class="Other">;</span> <span class="Identifier">source</span><span class="Other">:</span> <a href="sdl2_gpu.html#Attribute"><span class="Identifier">Attribute</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
<span class="Identifier">importc</span><span class="Other">:</span> <span class="StringLit">&quot;GPU_SetAttributeSource&quot;</span><span class="Other">,</span> <span class="Identifier">cdecl</span></span><span class="Other">.}</span></span></pre></dt>
<dd>
<pre>! Enables a shader attribute and sets its source data.</pre>
</dd>
</dl></div>
</div>
</div>
<div class="row">
<div class="twelve-columns footer">
<span class="nim-sprite"></span>
<br/>
<small style="color: var(--hint);">Made with Nim. Generated: 2020-04-26 21:10:32 UTC</small>
</div>
</div>
</div>
</div>
</body>
</html>