HGE::Gfx_StartBatch

Starts rendering of user's graphic primitives batch.

hgeVertex *Gfx_StartBatch(
  int prim_type,
  HTEXTURE tex,
  int blend,
  int *max_prim
);

Parameters

prim_type
Type of graphic primitives to be rendered:
HGEPRIM_LINES - lines
HGEPRIM_TRIPLES - triples
HGEPRIM_QUADS - quads
tex
Handle of the texture to use or 0.
blend
Blending mode.
max_prim
Pointer to an int that will receive the maximum number of primitives allowed within a single batch.

Return value

If successful, returns pointer to the vertex buffer to be filled with vertices and stores the maximum allowed number of primitives into max_prim. Otherwise returns 0.

Remarks

Gfx_StartBatch is a backdoor to the heart of HGE and DirectX for expert use. It provides direct access to hardware vertex buffer and allows extremely fast rendering of large arrays of graphic primitives. This may be used for tasks like sofisticated geometry or texture effects or complex precalculated objects rendering.

Gfx_StartBatch function must be called between the Gfx_BeginScene and Gfx_EndScene calls. To finish a batch use Gfx_FinishBatch function. No other rendering functions are allowed inside Gfx_StartBatch/Gfx_FinishBatch calls pair.

Vertex buffer size is constant and unlikely to change. It can hold up to 1000 quads / 1333 triples / 2000 lines. You should write to the buffer 2 vertices per line, 3 vertices per triple or 4 vertices per quad. The actual number of primitives written to the buffer should be passed to Gfx_FinishBatch.

Gfx_StartBatch flushes all previously accumulated graphic primitives.

Requirements

Header: hge.h
Import library: hge.lib

See also

Gfx_FinishBatch, Gfx_BeginScene, Gfx_EndScene