# render

### _main <sub>object</sub>

A handle for low-level GPU operations via SDL GPU. Freed on GC.


### device <sub>object</sub>

### stencil_writer(...args) <sub>function</sub>

### fillmask(ref) <sub>function</sub>

Draw a fullscreen shape using a 'screenfill' shader to populate the stencil buffer with a given reference.



**ref**: The stencil reference value to write.


**Returns**: None


### mask(image, pos, scale, rotation, ref) <sub>function</sub>

Draw an image to the stencil buffer, marking its area with a specified reference value.



**image**: A texture or string path (which is converted to a texture).

**pos**: The translation (x, y) for the image placement.

**scale**: Optional scaling applied to the texture.

**rotation**: Optional rotation in radians (unused by default).

**ref**: The stencil reference value to write.


**Returns**: None


### viewport(rect) <sub>function</sub>

Set the GPU viewport to the specified rectangle.



**rect**: A rectangle [x, y, width, height].


**Returns**: None


### scissor(rect) <sub>function</sub>

Set the GPU scissor region to the specified rectangle (alias of render.viewport).



**rect**: A rectangle [x, y, width, height].


**Returns**: None


### queue(cmd) <sub>function</sub>

Enqueue one or more draw commands. These commands are batched until render_camera is called.



**cmd**: Either a single command object or an array of command objects.


**Returns**: None


### setup_draw() <sub>function</sub>

Switch the current queue to the primary scene render queue, then invoke 'prosperon.draw' if defined.



**Returns**: None


### setup_hud() <sub>function</sub>

Switch the current queue to the HUD render queue, then invoke 'prosperon.hud' if defined.



**Returns**: None

