L3DT documentation
Large 3D terrain generator

map_GetDataPtr

Description

Retrieve the raw handle to map memory.

Function prototype

void* CExtAPI::map_GetDataPtr(ZMAP hMap);

Arguments

Name Type Comment
hMap ZMAP The ZMAP handle of the map for which the data handle is to be retrieved.

Return value

A null pointer if:

  • The map is not allocated.
  • The map is a mosaic (there is no contiguous memory in a mosaic; use tile_GetDataPtr instead).
  • An unspecified error occurred.

A valid (non-null) pointer otherwise.

Comments

Pixel ordering

Pixels are ordered in rows going east-to-west, with rows ordered south to north. To convert from x/y coordinate to memory offset, use the following formula:

long offset = (x + nx * y) * PixelMemSize;

…where ny is the map width (in pixels) and PixelMemSize is the size in memory of one pixel (see map_GetPixelSize).

To convert from memory offsets to pixel coordinates, use the following formulae:

long x = (offset/PixelMemSize)%nx;
long y = (offset/PixelMemSize)/nx;

Use map_GetPixel/map_SetPixel where possible

It is recommended that, wherever possible, the map_GetPixel/map_SetPixel functions are used for accessing map data, instead of direct memory access with map_GetDataPtr. Those functions include coordinate checking and memory protection, as well has handling mip-mapping and mosaic tile cache loading/saving and automatically.

 
zeolite/functions/map_getdataptr.txt · Last modified: 2017/08/31 05:11 (external edit)
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki