Creates offscreen render target (texture you can draw to, initialized with clear color).
Takes width (texture width in pixels, positive integer), height (texture height in pixels, positive integer), r (red component 0-255, integer), g (green component 0-255, integer), b (blue component 0-255, integer), a (alpha transparency 0.0-1.0, double, 1.0=opaque).
Returns image handle (positive integer, use with b2dSetRenderTarget, b2dDrawImage, etc), returns 0 on failure.
2D Overlay
Parameters & Returns
Parameters
aDouble
bInt
gInt
heightInt
rInt
widthInt
Returns
Int
Quick Summary
Creates offscreen render target (texture you can draw to, initialized with clear color).
Takes width (texture width in pixels, positive integer), height (texture height in pixels, positive integer), r (red component 0-255, integer), g (green component 0-255, integer), b (blue component 0-255, integer), a (alpha transparency 0.0-1.0, double, 1.0=opaque).
Returns image handle (positive integer, use with b2dSetRenderTarget, b2dDrawImage, etc), returns 0 on failure.
Technical Exegesis...
Creates offscreen render target (texture you can draw to, initialized with clear color). Takes width (texture width in pixels, positive integer), height (texture height in pixels, positive integer), r (red component 0-255, integer), g (green component 0-255, integer), b (blue component 0-255, integer), a (alpha transparency 0.0-1.0, double, 1.0=opaque). Returns image handle (positive integer, use with b2dSetRenderTarget, b2dDrawImage, etc), returns 0 on failure.
Creates offscreen render target (texture you can draw to, initialized with clear color). Takes width (texture width in pixels, positive integer), height (texture height in pixels, positive integer), r (red component 0-255, integer), g (green component 0-255, integer), b (blue component 0-255, integer), a (alpha transparency 0.0-1.0, double, 1.0=opaque). Returns image handle (positive integer, use with b2dSetRenderTarget, b2dDrawImage, etc), returns 0 on failure. Creates D3D12 texture (DXGI_FORMAT_R8G8B8A8_UNORM with D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET flag), allocates RTV descriptor (render target view for rendering to texture), creates SRV descriptor (shader resource view for using as texture), initializes with clear color (clears to specified RGBA immediately during creation), transitions to PIXEL_SHADER_RESOURCE state (ready to use as texture after creation). Use to render to texture (draw 2D overlay to offscreen buffer), create dynamic textures (procedurally generated content), composite layers (render multiple passes then combine), or create mini-maps (render scene to small texture for HUD). Render target behavior: can draw to (use with b2dSetRenderTarget, then b2dDrawImage/etc draws to this texture), can draw from (use handle with b2dDrawImage to display render target as texture), dual-purpose (acts as both render destination and drawable texture), persists until freed (remains in memory until b2dFreeImage called). Use cases: (1) Minimap (rt=b2dCreateRenderTarget(256,256,0,0,0,1.0): render map to rt, draw rt to corner of screen), (2) Dynamic texture (rt=b2dCreateRenderTarget(512,512,255,255,255,0.0): draw shapes to rt, apply rt as texture), (3) UI compositing (rt=b2dCreateRenderTarget(1920,1080,0,0,0,0.0): build complex UI in rt, draw rt with effects), (4) Mirror/portal (rt=b2dCreateRenderTarget(800,600,128,128,255,1.0): render scene to rt, display rt on mirror surface), (5) Post-processing (rt=b2dCreateRenderTarget(w,h,0,0,0,1.0): render to rt, apply shader effects, draw to screen). Common patterns: create = rt = b2dCreateRenderTarget(512,512,0,0,0,1.0) black opaque; clear transparent = rt = b2dCreateRenderTarget(w,h,0,0,0,0.0) fully transparent. Clear color: RGB values (0-255 clamped automatically, out-of-range clamped not error), alpha value (0.0-1.0 clamped automatically, 0.0=transparent, 1.0=opaque), initialized immediately (texture cleared to this color during creation, before function returns), persistent (clear color stored, NOT used for subsequent clears, only initial clear). Resource management: stored in g_images map (same as regular images, indexed by handle), can use all image functions (b2dDrawImage, b2dFreeImage, b2dGetImageWidth/Height, b2dCopyImage work on render targets), GPU memory (allocated on GPU as texture resource, uses VRAM), SRV and RTV descriptors (consumes descriptor heap slots, limited resource). State transitions: created in RENDER_TARGET state (initial state for rendering), transitioned to PIXEL_SHADER_RESOURCE (done automatically during creation, ready to use as texture), transitions automatic (engine handles RENDER_TARGET <-> PIXEL_SHADER_RESOURCE transitions during b2dSetRenderTarget and rendering). Performance: creation cost moderate (GPU texture allocation + descriptor creation + initial clear + GPU sync, ~1-10ms depending on size), memory cost (width x height x 4 bytes RGBA on GPU, 1920x1080 = ~8MB), descriptor cost (consumes 1 RTV descriptor + 1 SRV descriptor from heaps). Validation: returns 0 if device not initialized (g_3D_pDevice or g_2D_Overlay_rtvHeap null), clamps color values (r,g,b clamped 0-255, a clamped 0.0-1.0, no error), GPU sync during creation (WaitForFence ensures texture ready before returning, synchronous call). Related: b2dSetRenderTarget activates render target (makes this RT active for subsequent draws), b2dSetDefaultRenderTarget resets to screen (stops rendering to this RT, back to screen), b2dFlush executes queued commands (ensures draws to RT complete), b2dGrabImage captures from RT (reads pixels from active render target), b2dDrawImage draws RT as texture (displays render target contents on screen or other RT), b2dFreeImage releases render target (deallocates texture and descriptors).