本文整理汇总了C++中Border::ToOuterBorder方法的典型用法代码示例。如果您正苦于以下问题:C++ Border::ToOuterBorder方法的具体用法?C++ Border::ToOuterBorder怎么用?C++ Border::ToOuterBorder使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Border
的用法示例。
在下文中一共展示了Border::ToOuterBorder方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Fill
void BinaryBoard::Fill(BgraFrame *src)
{
AssertCompatibleTo(src);
Clear();
if (src->IsBlank())
{
return;
}
Border b = { INT_MAX, INT_MAX, INT_MIN, INT_MIN };
char const Mask0 = (char)0x01, Mask8 = (char)0x80;
for (int y = 0; y < boardSize.h; ++y)
{
char* line = buffer + stride * y;
char mask = Mask0;
for (int x = 0; x < boardSize.w; ++x, mask = (mask == Mask8) ? Mask0 : (mask << 1))
{
Rect blockCrop { x * blockSize, y * blockSize, blockSize, blockSize };
bool isCropBlank = IsCropBlank(src, blockCrop);
line[x >> BitPerByteIndex] |= (isCropBlank ? 0 : mask);
if (!isCropBlank)
{
b.left = (b.left > x) ? x : b.left;
b.right = (b.right < x) ? x : b.right;
b.top = (b.top > y) ? y : b.top;
b.bottom = (b.bottom < y) ? y : b.bottom;
}
}
}
if (b.right >= 0)
{
cropCache = Rect::FromOuterBorder(b.ToOuterBorder()) * blockSize;
}
return;
}