本文整理汇总了C++中Glyph::GetFinY方法的典型用法代码示例。如果您正苦于以下问题:C++ Glyph::GetFinY方法的具体用法?C++ Glyph::GetFinY怎么用?C++ Glyph::GetFinY使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Glyph
的用法示例。
在下文中一共展示了Glyph::GetFinY方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
Font::Font(const String& filename) : Image(filename, 16, 16)
{
_glyphs = Array<Glyph>();
Glyph myGlyph = Glyph();
// Cargamos el buffer con la imagen
int iWidth;
int iHeight;
unsigned char* buffer = stbi_load(filename.ToCString(), &iWidth, &iHeight, NULL, nElemPixel);
// Calculamos las dimensiones de cada frame
bool dimX = false;
for (int i = 1; i < iWidth / nElemPixel && !dimX; i++)
{
uint8 r = buffer[i * nElemPixel];
uint8 g = buffer[i * nElemPixel + 1];
uint8 b = buffer[i * nElemPixel + 2];
if (IsColor(r, g, b, 255, 255, 0))
{
_dimFrameX = i;
dimX = true;
}
}
bool dimY = false;
for (int i = 1; i < iHeight / nElemPixel && !dimY; i++)
{
uint8 r = buffer[i * iWidth * nElemPixel];
uint8 g = buffer[i * iWidth * nElemPixel + 1];
uint8 b = buffer[i * iWidth * nElemPixel + 2];
if (IsColor(r, g, b, 255, 255, 0))
{
_dimFrameY = i;
dimY = true;
}
}
// Tratamos los pixeles dentro de cada frame
if ( buffer ) {
if (dimX && dimY)
{
for (int j = 0; j < nFrameY; j++)
{
for (int i = 0; i < nFrameX; i++)
{
// Accedemos al frame[i,j]
for (int k = 0; k < _dimFrameX; k++)
{
for (int l = 0; l < _dimFrameY; l++)
{
// Accedemos al pixel[k,l] del frame[i,j]
uint8 r = buffer[IndexFrom(i, j, k, l, iWidth, 0)];
uint8 g = buffer[IndexFrom(i, j, k, l, iWidth, 1)];
uint8 b = buffer[IndexFrom(i, j, k, l, iWidth, 2)];
if (IsColor(r, g, b, 255, 255, 0))
{
myGlyph.SetIni(i * _dimFrameX + k, j * _dimFrameY + l);
buffer[IndexFrom(i, j, k, l, iWidth, 3)] = 0;
}
else if (IsColor(r, g, b, 255, 0, 0))
{
myGlyph.SetFin(i * _dimFrameX + k, j * _dimFrameY + l);
buffer[IndexFrom(i, j, k, l, iWidth, 3)] = 0;
}
else if (IsColor(r, g, b, 0, 0, 0))
{
buffer[IndexFrom(i, j, k, l, iWidth, 3)] = 0;
}
}
}
if (myGlyph.GetIniX() != 0 || myGlyph.GetIniY() != 0 || myGlyph.GetFinX() != 0 || myGlyph.GetFinY() != 0)
_glyphs.Add(myGlyph);
}
}
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, iWidth, iHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
}
free(buffer);
}
}