LINUX.ORG.RU

Xlib в чем разница?


0

0

Может быть я чего-то не понимаю, но.... Создаю окошко InputOutput, рисую на нём текст, потом создаю с него Image - всё нормально.

Если создаю окошко, а на нём пиксмапу, и уже на ней рисую текст и создаю с неё картинку, то она нулевая.....

Подскажите, что нужно сделать для того, чтобы работала Пиксмапа?

нужно использовать корректный GC(graphical context) когда рисуешь на пиксмапе .. в CreateGC указывай свой пиксмап

lg ★★
()
Ответ на: комментарий от lg

Window aWindow = XCreateWindow( aDisplay, DefaultRootWindow( aDisplay), 0, 0, 640, 480, 0, 0, InputOnly, CopyFromParent, 0, 0 );

Pixmap aPixmap = XCreatePixmap( aDisplay, aWindow, 640, 480, aDefDepth );

GC aGC = XCreateGC( aDisplay, aPixmap, 0, 0 ); char* aStr = "ABCDabcd"; XDrawString( aDisplay, aPixmap, aGC, 20, 20, aStr, 8 );

XImage* anImage = XGetImage( aDisplay, aPixmap, 0, 0, 640, 480, AllPlanes, XYPixmap );

И все пикселы 0:0:0.... Я уже не знаю ,почему....

Allender
() автор топика
Ответ на: комментарий от Allender

при создании pixmap его контент не определен, нужно делать FillRectangle или типа того

у вновь созданного GC не проставлен foreground, которым будет рисоваться текст

lg ★★
()
Ответ на: комментарий от lg

Но ведь у него по умолчанию стоит 1 для background и 0 для foreground. И как я понимаю, будет рисоваться чёрным по белому... Ведь на окне-то рисуется, а на пиксмапе нет, вот чего я не понимаю....

Allender
() автор топика
Ответ на: комментарий от Allender

не знаю, вообще 1 и 0 - это специальные значения

но может ты рисуешь черным по черному?

контент пиксмапа не определен после создания

чтобы окончательно во всем разобраться: филь пиксмап, ставь fg и bg в GC, пользуй ImageText вместо DrawText

lg ★★
()
Ответ на: комментарий от lg

Всё получилось :-))) Спасибо огромное!!! Родин атебя не забудет :-)))

Allender
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.