bool StepH() { int dist_start; int dist_end; int dist; int dy; int s1 = _aa_data.BaseStepH(ref _m_di); int Offset0 = LineInterpolatorAAData.MAX_HALF_WIDTH + 2; int Offset1 = Offset0; dist_start = _m_di.dist_start; dist_end = _m_di.dist_end; int npix = 0; _aa_data.m_covers[Offset1] = 0; if (dist_end > 0) { if (dist_start <= 0) { _aa_data.m_covers[Offset1] = (byte)_ren.GetCover(s1); } ++npix; } ++Offset1; dy = 1; while ((dist = _aa_data.m_dist[dy] - s1) <= _aa_data.m_width) { dist_start -= _m_di.DxStart; dist_end -= _m_di.DxEnd; _aa_data.m_covers[Offset1] = 0; if (dist_end > 0 && dist_start <= 0) { _aa_data.m_covers[Offset1] = (byte)_ren.GetCover(dist); ++npix; } ++Offset1; ++dy; } dy = 1; dist_start = _m_di.dist_start; dist_end = _m_di.dist_end; while ((dist = _aa_data.m_dist[dy] + s1) <= _aa_data.m_width) { dist_start += _m_di.DxStart; dist_end += _m_di.DxEnd; _aa_data.m_covers[--Offset0] = 0; if (dist_end > 0 && dist_start <= 0) { _aa_data.m_covers[Offset0] = (byte)_ren.GetCover(dist); ++npix; } ++dy; } _ren.BlendSolidVSpan(_aa_data.m_x, _aa_data.m_y - dy + 1, Offset1 - Offset0, _aa_data.m_covers, Offset0); return(npix != 0 && ++_aa_data.m_step < _aa_data.m_count); }
bool StepH() { int dist; int dy; int s1 = _aa_data.BaseStepH(ref _m_di); int Offset0 = LineInterpolatorAAData.MAX_HALF_WIDTH + 2; int Offset1 = Offset0; _aa_data.m_covers[Offset1++] = (byte)_ren.GetCover(s1); dy = 1; while ((dist = _aa_data.m_dist[dy] - s1) <= _aa_data.m_width) { _aa_data.m_covers[Offset1++] = (byte)_ren.GetCover(dist); ++dy; } dy = 1; while ((dist = _aa_data.m_dist[dy] + s1) <= _aa_data.m_width) { _aa_data.m_covers[--Offset0] = (byte)_ren.GetCover(dist); ++dy; } _ren.BlendSolidVSpan(_aa_data.m_x, _aa_data.m_y - dy + 1, Offset1 - Offset0, _aa_data.m_covers, Offset0); return(++_aa_data.m_step < _aa_data.m_count); }
//--------------------------------------------------------------------- bool StepH() { int dist_start; int dist; int dy; int s1 = _aa_data.BaseStepH(ref _m_di); dist_start = _m_di.DistanceStart; int Offset0 = LineInterpolatorAAData.MAX_HALF_WIDTH + 2; int Offset1 = Offset0; _aa_data.m_covers[Offset1] = 0; if (dist_start <= 0) { _aa_data.m_covers[Offset1] = (byte)_ren.GetCover(s1); } ++Offset1; dy = 1; while ((dist = _aa_data.m_dist[dy] - s1) <= _aa_data.m_width) { dist_start -= _m_di.DxStart; _aa_data.m_covers[Offset1] = 0; if (dist_start <= 0) { _aa_data.m_covers[Offset1] = (byte)_ren.GetCover(dist); } ++Offset1; ++dy; } dy = 1; dist_start = _m_di.DistanceStart; while ((dist = _aa_data.m_dist[dy] + s1) <= _aa_data.m_width) { dist_start += _m_di.DxStart; _aa_data.m_covers[--Offset0] = 0; if (dist_start <= 0) { _aa_data.m_covers[Offset0] = (byte)_ren.GetCover(dist); } ++dy; } int len = Offset1 - Offset0; _ren.BlendSolidVSpan(_aa_data.m_x, _aa_data.m_y - dy + 1, len, _aa_data.m_covers, Offset0); return(++_aa_data.m_step < _aa_data.m_count); }