Flush all operations in a tile given the fvalue from the previous tile and return the new fvalue (also in fvalue).

This is the 1-bit implementation of Flush. A 3-bit implementation will come later. This function will correctly handle the case where the current tile is full. In that case only the fvalue will be updated. Returns true if the tile was modified.

bool csCoverageTile::FlushForEmpty

(

csTileCol &

fvalue,

float

maxdepth

)

Version of Flush that handles the case where the tile is empty.

Returns true if the tile was modified.

void csCoverageTile::FlushForEmptyConstFValue

(

csTileCol &

fvalue,

float

maxdepth

)

Version of Flush that handles the case where the tile is empty.

This version is for a constant fvalue for the entire tile.

bool csCoverageTile::FlushForEmptyNoDepth

(

csTileCol &

fvalue

)

Version of Flush that handles the case where the tile is empty.

Returns true if the tile was modified. This version ignores depth.

bool csCoverageTile::FlushForFull

(

csTileCol &

fvalue,

float

maxdepth

)

Version of Flush that handles the case where the tile is full.

Returns true if the tile was modified.

void csCoverageTile::FlushForFullConstFValue

(

csTileCol &

fvalue,

float

maxdepth

)

Version of Flush that handles the case where the tile is full.

This version is for a constant fvalue for the entire tile.

bool csCoverageTile::FlushGeneral

(

csTileCol &

fvalue,

float

maxdepth

)

General Flush (slowest version).

Returns true if the tile was modified.

bool csCoverageTile::FlushGeneralConstFValue

(

csTileCol &

fvalue,

float

maxdepth

)

General Flush (slowest version).

This version is for a constant fvalue for the entire tile. Returns true if the tile was modified.

bool csCoverageTile::FlushIgnoreDepth

(

csTileCol &

fvalue

)

Version of Flush that ignores depth.

bool csCoverageTile::FlushNoDepth

(

csTileCol &

fvalue

)

Version of Flush that handles the case where there is no depth checking.

Returns true if the tile was modified.

bool csCoverageTile::FlushNoDepthConstFValue

(

csTileCol &

fvalue,

float

maxdepth

)

Version of Flush that handles the case where there is no depth checking.

This version is for a constant fvalue for the entire tile. Returns true if the tile was modified.

Perform all operations in a tile and render them on the coverage_cache.

void csCoverageTile::PerformOperationsOnlyFValue

(

csTileCol &

fvalue

)

Perform all operations in a tile and only update the fvalue.

This version can be used if you know the tile is full.

void csCoverageTile::PushFullVLine

(

int

x

)

Add a full vertical line operation to the operations queue.

void csCoverageTile::PushLine

(

int

x1,

int

y1,

int

x2,

int

y2,

int

dx

)

Add a general line operation to the operations queue.

void csCoverageTile::PushVLine

(

int

x,

int

y1,

int

y2

)

Add a vertical line operation to the operations queue.

bool csCoverageTile::TestCoverageFlush

(

csTileCol &

fvalue,

float

mindepth,

bool &

do_depth_test

)

Perform a non-modifying flush and return true if Flush would have affected the coverage buffer.

bool csCoverageTile::TestCoverageFlushForFull

(

csTileCol &

fvalue,

float

mindepth,

bool &

do_depth_test

)

Version of TestFlush that handles the case where the tile is full.

bool csCoverageTile::TestCoverageFlushGeneral

(

csTileCol &

fvalue,

float

maxdepth,

bool &

do_depth_test

)

General TestFlush version (least efficient).

bool csCoverageTile::TestCoverageRect

(

const csTileCol &

vermask,

int

start,

int

end,

float

testdepth,

bool &

do_depth_test

)

Test if a given rectangle is visible.

The rectangle is defined as the vertical mask from 'start' to 'end' horizontally (inclusive range).

bool csCoverageTile::TestCoverageRect

(

int

start,

int

end,

float

testdepth,

bool &

do_depth_test

)

Test if a given rectangle is visible.

The rectangle is defined as a set of full vertical columns from 'start' to 'end'.

bool csCoverageTile::TestDepthFlush

(

csTileCol &

fvalue,

float

mindepth

)

Perform a non-modifying flush and return true if Flush would have affected the coverage buffer.

bool csCoverageTile::TestDepthFlushGeneral

(

csTileCol &

fvalue,

float

maxdepth

)

General TestFlush version (least efficient).

bool csCoverageTile::TestDepthRect

(

const csTileCol &

vermask,

int

start,

int

end,

float

testdepth

)

Test if a given rectangle is visible.

The rectangle is defined as the vertical mask from 'start' to 'end' horizontally (inclusive range).

bool csCoverageTile::TestDepthRect

(

int

start,

int

end,

float

testdepth

)

Test if a given rectangle is visible.

The rectangle is defined as a set of full vertical columns from 'start' to 'end'.

bool csCoverageTile::TestFullRect

(

float

testdepth

)

Test if a given rectangle with exactly the size of this tile (or bigger) is visible somewhere in this tile.

If the tile is not full this is automatically the case. If the tile is full the given depth will be used. If the given depth is smaller or equal than the maximum depth in the depth buffer then rectangle is visible.

bool csCoverageTile::TestPoint

(

int

x,

int

y,

float

testdepth

)

Test if a given point is visible in this tile.

Coordinates are given relative to top-left coordinate of this tile.

The documentation for this class was generated from the following file: