Description of drawText function (part of RasterWorks) mentions two pixel formats accepted: 24bpp and 32bpp (bpp -- bits per pixel).
You define the format to use in the last argument of the function, it's 24bpp in your example.
What KolibriOS expects to be 24bpp can be found in description of sf7, it's BBGGRRBBGGRRBBGGRR...
I.e. a byte describing Blue component of the first pixel, a byte describing Green component of the first pixel, a byte describing Red component of the first pixel. Then data of the second and other pixels go.
White color in 24bpp pixel format is Red=255, Green=255, Blue=255. Or, using shorter hex notation, 0xFFFFFF.
(char)-1 in your example is a byte with value 0xFF in hex, read why.
So, the background color in your example is white because memset writes many 0xFF's, which are interpreted as 0xFFFFFF triplets, which mean white pixels.
Description of drawText function says that the first argument is a pointer to the structure of three fields: xSize, ySize, picture.
To allocate enough memory for this structure, calculate its size, which is the sum of the sizes of its fields. It's not always the case, but this time you are lucky.
Pathoswithin wrote: ↑Mon Nov 16, 2015 1:34 pm
Добавил выравнивание по центру или справа с учётом указаной координаты Х (или двух). Сделал автоматическое сужение строки, если она не вписывается в изображение или указаную область. Функция возвращает итоговые ширину символа и координату начала текста.
Или я чего-то не понимаю, или... Буфер заканчивается ровно перед скроллбаром, но RasterWorks все равно сужает символ, хотя он туда бы влез.
Да оставлю пожалуй, раз зачем-то сделал. Иначе как минимум курсив будет вылазить с другой стороны, а то и падать с ошибкой. Ничего не мешает выводить на экран не всю ширину буфера.