本文整理汇总了C++中FontManager::createFontByPixelSize方法的典型用法代码示例。如果您正苦于以下问题:C++ FontManager::createFontByPixelSize方法的具体用法?C++ FontManager::createFontByPixelSize怎么用?C++ FontManager::createFontByPixelSize使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FontManager
的用法示例。
在下文中一共展示了FontManager::createFontByPixelSize方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _main_
int _main_(int _argc, char** _argv)
{
Args args(_argc, _argv);
uint32_t width = 1280;
uint32_t height = 720;
uint32_t debug = BGFX_DEBUG_TEXT;
uint32_t reset = BGFX_RESET_VSYNC;
bgfx::init(args.m_type, args.m_pciId);
bgfx::reset(width, height, reset);
// Enable debug text.
bgfx::setDebug(debug);
// Set view 0 clear state.
bgfx::setViewClear(0
, BGFX_CLEAR_COLOR | BGFX_CLEAR_DEPTH
, 0x303030ff
, 1.0f
, 0
);
// Init the text rendering system.
FontManager* fontManager = new FontManager(512);
TextBufferManager* textBufferManager = new TextBufferManager(fontManager);
// Load some TTF files.
const char* fontFilePath[7] =
{
"font/droidsans.ttf",
"font/chp-fire.ttf",
"font/bleeding_cowboys.ttf",
"font/mias_scribblings.ttf",
"font/ruritania.ttf",
"font/signika-regular.ttf",
"font/five_minutes.otf",
};
const uint32_t numFonts = BX_COUNTOF(fontFilePath);
TrueTypeHandle fontFiles[numFonts];
FontHandle fonts[numFonts];
for (uint32_t ii = 0; ii < numFonts; ++ii)
{
// Instantiate a usable font.
fontFiles[ii] = loadTtf(fontManager, fontFilePath[ii]);
fonts[ii] = fontManager->createFontByPixelSize(fontFiles[ii], 0, 32);
// Preload glyphs and blit them to atlas.
fontManager->preloadGlyph(fonts[ii], L"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ. \n");
// You can unload the truetype files at this stage, but in that
// case, the set of glyph's will be limited to the set of preloaded
// glyph.
fontManager->destroyTtf(fontFiles[ii]);
}
TrueTypeHandle fontAwesomeTtf = loadTtf(fontManager, "font/fontawesome-webfont.ttf");
// This font doesn't have any preloaded glyph's but the truetype file
// is loaded so glyph will be generated as needed.
FontHandle fontAwesome72 = fontManager->createFontByPixelSize(fontAwesomeTtf, 0, 72);
TrueTypeHandle visitorTtf = loadTtf(fontManager, "font/visitor1.ttf");
// This font doesn't have any preloaded glyph's but the truetype file
// is loaded so glyph will be generated as needed.
FontHandle visitor10 = fontManager->createFontByPixelSize(visitorTtf, 0, 10);
//create a static text buffer compatible with alpha font
//a static text buffer content cannot be modified after its first submit.
TextBufferHandle staticText = textBufferManager->createTextBuffer(FONT_TYPE_ALPHA, BufferType::Static);
// The pen position represent the top left of the box of the first line
// of text.
textBufferManager->setPenPosition(staticText, 24.0f, 100.0f);
for (uint32_t ii = 0; ii < numFonts; ++ii)
{
// Add some text to the buffer.
// The position of the pen is adjusted when there is an endline.
textBufferManager->appendText(staticText, fonts[ii], L"The quick brown fox jumps over the lazy dog\n");
}
// Now write some styled text.
// Setup style colors.
textBufferManager->setBackgroundColor(staticText, 0x551111ff);
textBufferManager->setUnderlineColor(staticText, 0xff2222ff);
textBufferManager->setOverlineColor(staticText, 0x2222ffff);
textBufferManager->setStrikeThroughColor(staticText, 0x22ff22ff);
// Background.
textBufferManager->setStyle(staticText, STYLE_BACKGROUND);
textBufferManager->appendText(staticText, fonts[0], L"The quick ");
// Strike-through.
textBufferManager->setStyle(staticText, STYLE_STRIKE_THROUGH);
textBufferManager->appendText(staticText, fonts[0], L"brown fox ");
//.........这里部分代码省略.........
示例2: _main_
int _main_(int /*_argc*/, char** /*_argv*/)
{
uint32_t width = 1280;
uint32_t height = 720;
uint32_t debug = BGFX_DEBUG_TEXT;
uint32_t reset = BGFX_RESET_VSYNC;
bgfx::init();
bgfx::reset(width, height, reset);
// Enable debug text.
bgfx::setDebug(debug);
// Set view 0 clear state.
bgfx::setViewClear(0
, BGFX_CLEAR_COLOR | BGFX_CLEAR_DEPTH
, 0x303030ff
, 1.0f
, 0
);
// Imgui.
imguiCreate();
char* bigText = loadText( "text/sherlock_holmes_a_scandal_in_bohemia_arthur_conan_doyle.txt");
// Init the text rendering system.
FontManager* fontManager = new FontManager(512);
TextBufferManager* textBufferManager = new TextBufferManager(fontManager);
TrueTypeHandle font = loadTtf(fontManager, "font/special_elite.ttf");
// Create a distance field font.
FontHandle fontSdf = fontManager->createFontByPixelSize(font, 0, 48, FONT_TYPE_DISTANCE);
// Create a scaled down version of the same font (without adding anything to the atlas).
FontHandle fontScaled = fontManager->createScaledFontToPixelSize(fontSdf, 14);
TextLineMetrics metrics(fontManager->getFontInfo(fontScaled) );
uint32_t lineCount = metrics.getLineCount(bigText);
float visibleLineCount = 20.0f;
const char* textBegin = 0;
const char* textEnd = 0;
metrics.getSubText(bigText, 0, (uint32_t)visibleLineCount, textBegin, textEnd);
TextBufferHandle scrollableBuffer = textBufferManager->createTextBuffer(FONT_TYPE_DISTANCE, BufferType::Transient);
textBufferManager->setTextColor(scrollableBuffer, 0xFFFFFFFF);
textBufferManager->appendText(scrollableBuffer, fontScaled, textBegin, textEnd);
entry::MouseState mouseState;
int32_t scrollArea = 0;
const int32_t guiPanelWidth = 250;
const int32_t guiPanelHeight = 200;
float textScroll = 0.0f;
float textRotation = 0.0f;
float textScale = 1.0f;
float textSize = 14.0f;
while (!entry::processEvents(width, height, debug, reset, &mouseState) )
{
imguiBeginFrame(mouseState.m_mx
, mouseState.m_my
, (mouseState.m_buttons[entry::MouseButton::Left ] ? IMGUI_MBUT_LEFT : 0)
| (mouseState.m_buttons[entry::MouseButton::Right ] ? IMGUI_MBUT_RIGHT : 0)
, mouseState.m_mz
, width
, height
);
imguiBeginScrollArea("Text Area"
, width - guiPanelWidth - 10
, 10
, guiPanelWidth
, guiPanelHeight
, &scrollArea
);
imguiSeparatorLine();
bool recomputeVisibleText = false;
recomputeVisibleText |= imguiSlider("Number of lines", visibleLineCount, 1.0f, 177.0f , 1.0f);
if (imguiSlider("Font size", textSize, 6.0f, 64.0f , 1.0f) )
{
fontManager->destroyFont(fontScaled);
fontScaled = fontManager->createScaledFontToPixelSize(fontSdf, (uint32_t) textSize);
metrics = TextLineMetrics(fontManager->getFontInfo(fontScaled) );
recomputeVisibleText = true;
}
recomputeVisibleText |= imguiSlider("Scroll", textScroll, 0.0f, (lineCount-visibleLineCount) , 1.0f);
imguiSlider("Rotate", textRotation, 0.0f, bx::pi*2.0f , 0.1f);
recomputeVisibleText |= imguiSlider("Scale", textScale, 0.1f, 10.0f , 0.1f);
if (recomputeVisibleText)
{
textBufferManager->clearTextBuffer(scrollableBuffer);
metrics.getSubText(bigText,(uint32_t)textScroll, (uint32_t)(textScroll+visibleLineCount), textBegin, textEnd);
//.........这里部分代码省略.........
示例3: _main_
int _main_(int /*_argc*/, char** /*_argv*/)
{
uint32_t width = 1280;
uint32_t height = 720;
uint32_t debug = BGFX_DEBUG_TEXT;
uint32_t reset = BGFX_RESET_VSYNC;
bgfx::init();
bgfx::reset(width, height, reset);
// Enable debug text.
bgfx::setDebug(debug);
// Set view 0 clear state.
bgfx::setViewClear(0
, BGFX_CLEAR_COLOR_BIT | BGFX_CLEAR_DEPTH_BIT
, 0x303030ff
, 1.0f
, 0
);
// Init the text rendering system.
FontManager* fontManager = new FontManager(512);
TextBufferManager* textBufferManager = new TextBufferManager(fontManager);
// Load some TTF files.
const char* fontNames[7] =
{
"font/droidsans.ttf",
"font/chp-fire.ttf",
"font/bleeding_cowboys.ttf",
"font/mias_scribblings.ttf",
"font/ruritania.ttf",
"font/signika-regular.ttf",
"font/five_minutes.otf"
};
const uint32_t fontCount = countof(fontNames);
TrueTypeHandle fontFiles[fontCount];
FontHandle fonts[fontCount];
for (uint32_t ii = 0; ii < fontCount; ++ii)
{
// Instantiate a usable font.
fontFiles[ii] = loadTtf(fontManager, fontNames[ii]);
fonts[ii] = fontManager->createFontByPixelSize(fontFiles[ii], 0, 32);
// Preload glyphs and blit them to atlas.
fontManager->preloadGlyph(fonts[ii], L"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ. \n");
// You can unload the truetype files at this stage, but in that
// case, the set of glyph's will be limited to the set of preloaded
// glyph.
fontManager->destroyTtf(fontFiles[ii]);
}
TrueTypeHandle console_tt = loadTtf(fontManager, "font/visitor1.ttf");
// This font doesn't have any preloaded glyph's but the truetype file
// is loaded so glyph will be generated as needed.
FontHandle consola_16 = fontManager->createFontByPixelSize(console_tt, 0, 10);
//create a static text buffer compatible with alpha font
//a static text buffer content cannot be modified after its first submit.
TextBufferHandle staticText = textBufferManager->createTextBuffer(FONT_TYPE_ALPHA, BufferType::Static);
// The pen position represent the top left of the box of the first line
// of text.
textBufferManager->setPenPosition(staticText, 24.0f, 100.0f);
for (uint32_t ii = 0; ii < fontCount; ++ii)
{
// Add some text to the buffer.
// The position of the pen is adjusted when there is an endline.
textBufferManager->appendText(staticText, fonts[ii], L"The quick brown fox jumps over the lazy dog\n");
}
// Now write some styled text.
// Setup style colors.
textBufferManager->setBackgroundColor(staticText, 0x551111FF);
textBufferManager->setUnderlineColor(staticText, 0xFF2222FF);
textBufferManager->setOverlineColor(staticText, 0x2222FFFF);
textBufferManager->setStrikeThroughColor(staticText, 0x22FF22FF);
// Background.
textBufferManager->setStyle(staticText, STYLE_BACKGROUND);
textBufferManager->appendText(staticText, fonts[0], L"The quick ");
// Strike-through.
textBufferManager->setStyle(staticText, STYLE_STRIKE_THROUGH);
textBufferManager->appendText(staticText, fonts[0], L"brown fox ");
// Overline.
textBufferManager->setStyle(staticText, STYLE_OVERLINE);
textBufferManager->appendText(staticText, fonts[0], L"jumps over ");
// Underline.
textBufferManager->setStyle(staticText, STYLE_UNDERLINE);
//.........这里部分代码省略.........