Войти
ПрограммированиеФорумГрафика

Пару вопросов по ОпенГЛ (20 стр)

Страницы: 117 18 19 20 21 22 Следующая »
#285
23:11, 29 ноя. 2014

static_cast
Идентификатор символа. Для каждого шрифта у символа есть свой собственный номер.

char*text;  FT_Face face;

http://www.freetype.org/freetype2/docs/reference/ft2-base_interface.html


#286
23:14, 29 ноя. 2014

спасибо, кажется, понимаю!

#287
0:00, 30 ноя. 2014

Нашёл код, не могли бы вы прояснить кое-что:

static const char START_CHAR = ' ';
  static const char END_CHAR = '~';
    
  FT_Init_FreeType(&lib);
  FT_New_Face(lib, "C:\\Windows\\Fonts\\Arial.ttf", 0, &face);
  FT_Set_Pixel_Sizes(face, 0, size);

  int num_chars = (END_CHAR - START_CHAR);
  
  auto width_ = num_chars*size;
  auto height_ = size;

  std::vector<unsigned char> buffer(width_ * height_, 0);

  vec2 pen;

  for (size_t c = ' '; c < '~'; c++)
  {
    err = FT_Load_Char(face, c, FT_LOAD_RENDER);  //загружаем символ

    FT_Bitmap bmp = face->glyph->bitmap; //получаем картинку

    int advance = (face->glyph->advance.x >> 6);  // face->glyph->advance - что такое? Что тут происходит?
    int bitmapWidth = bmp.width; 
    int bitmapHeight = bmp.rows;

    for (int h = 0; h < bitmapHeight; ++h) {
      for (int w = 0; w < bitmapWidth; ++w) {

          int index = h * bitmapWidth + pen.x; //pen - как понимаю, текущее положение "курсора"
          buffer[index + w] = bmp.buffer[w + bitmapWidth * h];  //попиксельно копируем
        }
      }

      pen.x += advance; //приращение, т.е. предполагается, что все символы будут расположены в один ряд

  }
#288
0:01, 30 ноя. 2014

и далее - как же полученное изображение в видеокарту загружать?

#289
16:48, 2 дек. 2014

up-up, ответ ещё не найден!

#290
18:59, 2 дек. 2014

glTexImage2D

#291
19:38, 2 дек. 2014

the_siv
> glTexImage2D
а почему TexStorage не катит? И какой формат представления нужен? GL_RGBA пойдёт?

#292
21:27, 2 дек. 2014

static_cast
> а почему TexStorage не катит? И какой формат представления нужен? GL_RGBA
> пойдёт?
Он только место выделяет.

#293
21:35, 2 дек. 2014

static_cast
> GL_RGBA пойдёт?
GL_R8

#294
13:51, 3 дек. 2014

вообще чертовщина какая-то. вместо букв какая-то интерференционная картина.

#295
13:56, 3 дек. 2014

На прямую с FreeType не работал, но в старом SDL_ttf помогало glPixelStorei(GL_UNPACK_ALIGNMENT, 1) или glPixelStorei(GL_PACK_ALIGNMENT, 1). Не помню точно.

#296
14:02, 3 дек. 2014

делал так, всё равно не работает.

#297
15:41, 3 дек. 2014

а какие я должен загружать текстурные координаты? Точно так же, как и всегда? Или как?

#298
15:44, 3 дек. 2014

Это уже было?
http://pmg.org.ru/nehe/nehe43.htm

#299
15:48, 3 дек. 2014

я смотрел. Там же устаревший интерфейс фритайп... да и похоже, что проблема в создании текстуры, либо в её заполнении. Уж как я не пробовал, но она то черная, то вся в помехах без намёка на символы, то еще что-то.

Страницы: 117 18 19 20 21 22 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.