## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats > Struct Template Reference

Interpolator over a scanline. More...

`#include <csplugincommon/softshader/types.h>`

Inheritance diagram for CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >:

[legend]
List of all members.

## Public Member Functions

void | Advance ()
| Advance a pixel right.
const ScanlineComp * | GetFloat (size_t i) const
| Return an interpolated component.
void | Setup (const InterpolateEdgePersp &L, const InterpolateEdgePersp &R, uint len, int ipolStep, int ipolShift)
| Setup interpolation over a scanline, given left and right edge.

## Public Attributes

ScanlineComp | floats [maxFloats]
| Buffer values.
ScanlineCompDivZ | floats_f [maxFloats]
| Buffer values div Z.
int | InterpolShift
| Interpolation shift.
int | InterpolStep
| Interpolation step.
float | invLastSpan
| Inverse of last span size.
int | ipx
| Remaining pixels for this interpolation span.
int | spans
| Remaining spans.

## Detailed Description

### template<int maxFloats>
struct CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >

Interpolator over a scanline.

Definition at line 161 of file types.h.

## Member Function Documentation

template<int maxFloats>

void CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::Advance | ( |  | ) | `[inline]`

Advance a pixel right.

Definition at line 232 of file types.h.

References CS::PluginCommon::SoftShader::ScanlineComp::c, CS::PluginCommon::SoftShader::ScanlineComp::dcdx, CS::PluginCommon::SoftShader::ScanlineCompDivZ::dIcdx, CS::PluginCommon::SoftShader::InterpolateScanlinePerspCommon::dIzdx, CS::PluginCommon::SoftShader::InterpolateScanlinePerspCommon::dIzdx_f, CS::PluginCommon::SoftShader::InterpolateScanlinePerspCommon::dIzdx_fLast, CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::floats, CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::floats_f, CS::PluginCommon::SoftShader::ScanlineCompDivZ::Ic, CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::InterpolShift, CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::InterpolStep, CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::invLastSpan, CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::ipx, CS::PluginCommon::SoftShader::InterpolateScanlinePerspCommon::Iz, CS::PluginCommon::SoftShader::InterpolateScanlinePerspCommon::Iz_f, and CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::spans.

template<int maxFloats>

const ScanlineComp* CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::GetFloat | ( | size_t | i | ) | const`[inline]`

Return an interpolated component.

Definition at line 275 of file types.h.

References CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::floats.

template<int maxFloats>

void CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::Setup | ( | const InterpolateEdgePersp & | L,
|  | const InterpolateEdgePersp & | R,
|  | uint | len,
|  | int | ipolStep,
|  | int | ipolShift |
| ) |  |  | `[inline]`

Setup interpolation over a scanline, given left and right edge.

Definition at line 180 of file types.h.

References CS::PluginCommon::SoftShader::ScanlineComp::c, CS::PluginCommon::SoftShader::InterpolateEdgePersp::PerFloat::c, CS::PluginCommon::SoftShader::ScanlineComp::dcdx, CS::PluginCommon::SoftShader::ScanlineCompDivZ::dIcdx, CS::PluginCommon::SoftShader::ScanlineCompDivZ::dIcdxLast, CS::PluginCommon::SoftShader::InterpolateScanlinePerspCommon::dIzdx, CS::PluginCommon::SoftShader::InterpolateScanlinePerspCommon::dIzdx_f, CS::PluginCommon::SoftShader::InterpolateScanlinePerspCommon::dIzdx_fLast, CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::floats, CS::PluginCommon::SoftShader::InterpolateEdgePersp::Floats, CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::floats_f, CS::PluginCommon::SoftShader::ScanlineCompDivZ::Ic, CS::PluginCommon::SoftShader::InterpolateEdgePersp::PerFloat::Ic, CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::InterpolShift, CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::InterpolStep, CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::invLastSpan, CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::ipx, CS::PluginCommon::SoftShader::InterpolateEdgePersp::Iz, CS::PluginCommon::SoftShader::InterpolateScanlinePerspCommon::Iz, CS::PluginCommon::SoftShader::InterpolateScanlinePerspCommon::Iz_f, and CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::spans.

## Member Data Documentation

template<int maxFloats>

ScanlineComp CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::floats[maxFloats]

Buffer values.

Definition at line 164 of file types.h.

Referenced by CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::Advance(), CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::GetFloat(), and CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::Setup().

template<int maxFloats>

ScanlineCompDivZ CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::floats_f[maxFloats]

Buffer values div Z.

Definition at line 166 of file types.h.

Referenced by CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::Advance(), and CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::Setup().

template<int maxFloats>

int CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::InterpolShift

Interpolation shift.

Definition at line 171 of file types.h.

Referenced by CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::Advance(), CS::PluginCommon::SoftShader::InterpolateScanlinePersp< 0 >::Setup(), and CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::Setup().

template<int maxFloats>

int CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::InterpolStep

Interpolation step.

Definition at line 169 of file types.h.

Referenced by CS::PluginCommon::SoftShader::InterpolateScanlinePersp< 0 >::Advance(), CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::Advance(), CS::PluginCommon::SoftShader::InterpolateScanlinePersp< 0 >::Setup(), and CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::Setup().

template<int maxFloats>

float CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::invLastSpan

Inverse of last span size.

Definition at line 177 of file types.h.

Referenced by CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::Advance(), and CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::Setup().

template<int maxFloats>

int CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::ipx

Remaining pixels for this interpolation span.

Definition at line 173 of file types.h.

Referenced by CS::PluginCommon::SoftShader::InterpolateScanlinePersp< 0 >::Advance(), CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::Advance(), CS::PluginCommon::SoftShader::InterpolateScanlinePersp< 0 >::Setup(), and CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::Setup().

template<int maxFloats>

int CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::spans

Remaining spans.

Definition at line 175 of file types.h.

Referenced by CS::PluginCommon::SoftShader::InterpolateScanlinePersp< 0 >::Advance(), CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::Advance(), CS::PluginCommon::SoftShader::InterpolateScanlinePersp< 0 >::Setup(), and CS::PluginCommon::SoftShader::InterpolateScanlinePersp< maxFloats >::Setup().

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

- csplugincommon/softshader/types.h