本文整理汇总了C++中FloatRect::set方法的典型用法代码示例。如果您正苦于以下问题:C++ FloatRect::set方法的具体用法?C++ FloatRect::set怎么用?C++ FloatRect::set使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FloatRect
的用法示例。
在下文中一共展示了FloatRect::set方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: doRender
void EditText::doRender()
{
if (nullptr == mFont || !mVisible || mEmptyView)
return;
if (mRenderItem->getCurrentUpdate() || mTextOutDate)
updateRawData();
Vertex* vertex = mRenderItem->getCurrentVertexBuffer();
const RenderTargetInfo& renderTargetInfo = mRenderItem->getRenderTarget()->getInfo();
// колличество отрисованных вершин
size_t vertexCount = 0;
// текущие цвета
uint32 colour = mCurrentColourNative;
uint32 inverseColour = mInverseColourNative;
uint32 selectedColour = mInvertSelect ? inverseColour : mSelectionBgColor;
const VectorLineInfo& textViewData = mTextView.getData();
float top = (float)(-mViewOffset.top + mCoord.top);
FloatRect vertexRect;
const FloatRect& selectedUVRect = mFont->getGlyphInfo(mBackgroundNormal ? FontCodeType::Selected : FontCodeType::SelectedBack)->uvRect;
size_t index = 0;
for (VectorLineInfo::const_iterator line = textViewData.begin(); line != textViewData.end(); ++line)
{
float left = (float)(line->offset - mViewOffset.left + mCoord.left);
for (VectorCharInfo::const_iterator sim = line->simbols.begin(); sim != line->simbols.end(); ++sim)
{
if (sim->isColour())
{
colour = sim->getColour() | (colour & 0xFF000000);
inverseColour = colour ^ 0x00FFFFFF;
selectedColour = mInvertSelect ? inverseColour : mSelectionBgColor;
continue;
}
// смещение текстуры для фона
bool select = index >= mStartSelect && index < mEndSelect;
float fullAdvance = sim->getBearingX() + sim->getAdvance();
// Render the selection, if any, first.
if (select)
{
vertexRect.set(left, top, left + fullAdvance, top + (float)mFontHeight);
drawGlyph(renderTargetInfo, vertex, vertexCount, vertexRect, selectedUVRect, selectedColour);
}
// Render the glyph shadow, if any.
if (mShadow)
{
vertexRect.left = left + sim->getBearingX() + 1.0f;
vertexRect.top = top + sim->getBearingY() + 1.0f;
vertexRect.right = vertexRect.left + sim->getWidth();
vertexRect.bottom = vertexRect.top + sim->getHeight();
drawGlyph(renderTargetInfo, vertex, vertexCount, vertexRect, sim->getUVRect(), mShadowColourNative);
}
// Render the glyph itself.
vertexRect.left = left + sim->getBearingX();
vertexRect.top = top + sim->getBearingY();
vertexRect.right = vertexRect.left + sim->getWidth();
vertexRect.bottom = vertexRect.top + sim->getHeight();
drawGlyph(renderTargetInfo, vertex, vertexCount, vertexRect, sim->getUVRect(), (!select || !mInvertSelect) ? colour : inverseColour);
left += fullAdvance;
++index;
}
top += mFontHeight;
++index;
}
// Render the cursor, if any, last.
if (mVisibleCursor)
{
IntPoint point = mTextView.getCursorPoint(mCursorPosition) - mViewOffset + mCoord.point();
GlyphInfo* cursorGlyph = mFont->getGlyphInfo(static_cast<Char>(FontCodeType::Cursor));
vertexRect.set((float)point.left, (float)point.top, (float)point.left + cursorGlyph->width, (float)(point.top + mFontHeight));
drawGlyph(renderTargetInfo, vertex, vertexCount, vertexRect, cursorGlyph->uvRect, mCurrentColourNative | 0x00FFFFFF);
}
// колличество реально отрисованных вершин
mRenderItem->setLastVertexCount(vertexCount);
}