LINUX.ORG.RU

Ответ на: [GTK][Cairo][Кактус]Рисование от unrealix

[GTK][Cairo][Кактус]Рисование

>//Оригинал на английском не осилил :)

я где-то тредом ниже кидал архив с переводом документации cairo/gtk и других кошерных вещей.

mono ★★★★★ ()
Ответ на: [GTK][Cairo][Кактус]Рисование от hibou

[GTK][Cairo][Кактус]Рисование

>Без английского тебе будет трудно.

не пугай человека.. я начинал программировать без знания английского, трудно, но вполне возможно. Зато растет скилл поиска переводов.

постепенно учишься читать тех.документацию.

mono ★★★★★ ()
Ответ на: [GTK][Cairo][Кактус]Рисование от unrealix

[GTK][Cairo][Кактус]Рисование

>Хоть там и много букв РАЗНЫХ, всё-таки попробую

там все просто.. создается GObject на основе GtkDrawningArea, потом переопределяется метод отрисовки.. и именно там находится код взаимодействия с Cairo.

Делай по аналогии.

mono ★★★★★ ()
Ответ на: [GTK][Cairo][Кактус]Рисование от mono

[GTK][Cairo][Кактус]Рисование

>я начинал программировать без знания английского

я в 9м класе тоже не знал английский, когда клепал на говно-Delphi :)

unrealix ()
Ответ на: [GTK][Cairo][Кактус]Рисование от hibou

[GTK][Cairo][Кактус]Рисование

>Ээ... это он сразу в создание своих GObject полез? На чистом Си?!

нет, он вроде в Cairo полез.. просто делать что-то рисующее на cairo в gtk лучше через создание наследника GtkDrawningArea и если делать по аналогии, то все просто и ясно.. Во внутренности GObject'а лезть не требуется.

mono ★★★★★ ()
Ответ на: [GTK][Cairo][Кактус]Рисование от mono

[GTK][Cairo][Кактус]Рисование

>что ты имеешь в виду?

Я имел ввиду то что в том мануале для того чтобы понять хау ту его сделать, нужно произвести небольшой Brain Fuck :)

unrealix ()
Ответ на: [GTK][Cairo][Кактус]Рисование от mono

[GTK][Cairo][Кактус]Рисование

>Сначала просто набери этот пример и поиграйся с ним, потом по аналогии свое сделай.. так проще.

Я обычно читаю теорию, после беру и ковыряю пример до посинения. Закончив ковырять пишу свой с нуля

unrealix ()
Ответ на: [GTK][Cairo][Кактус]Рисование от unrealix

[GTK][Cairo][Кактус]Рисование

позапрошлым летом я действовал именно так же, долго изучая внутренности GObject'ов.. так что удачи :)

mono ★★★★★ ()
Ответ на: [GTK][Cairo][Кактус]Рисование от mono

[GTK][Cairo][Кактус]Рисование

Курю-курю я этот мануал и никак не могу понять смысл строчек:
#define EGG_TYPE_CLOCK_FACE (egg_clock_face_get_type ())
#define EGG_CLOCK_FACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_CLOCK_FACE, EggClockFace))
#define EGG_CLOCK_FACE_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST ((obj), EGG_CLOCK_FACE, EggClockFaceClass))
#define EGG_IS_CLOCK_FACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_CLOCK_FACE))
#define EGG_IS_CLOCK_FACE_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE ((obj), EGG_TYPE_CLOCK_FACE))
#define EGG_CLOCK_FACE_GET_CLASS (G_TYPE_INSTANCE_GET_CLASS ((obj), EGG_TYPE_CLOCK_FACE, EggClockFaceClass))

unrealix ()
Ответ на: [GTK][Cairo][Кактус]Рисование от mono

[GTK][Cairo][Кактус]Рисование

В общем прикрутил я этот пример к своему проекту. Теперь маюсь тем как научится рисовать на нём из main(). Сделал глобальную переменную cairo_t *cr, а проэкт и запуске сегфолтится. ЧЯДНТ ?

unrealix ()
Ответ на: [GTK][Cairo][Кактус]Рисование от unrealix

[GTK][Cairo][Кактус]Рисование

>Теперь маюсь тем как научится рисовать на нём из main()

зачем? рисовать в gtk можно только в обработчике expose_event, т.е взаимодействие с cairo должно быть только там. И это правильно.

mono ★★★★★ ()
Ответ на: [GTK][Cairo][Кактус]Рисование от mono

[GTK][Cairo][Кактус]Рисование

Значит я сто-то не допёр :) Просто я рисую трехугольник Серпинского, он же врактал. И мне по нажатию батона нужно как-то перерисовывать с учётом нового поколения. Как вручную вызвать expose?

unrealix ()
Ответ на: [GTK][Cairo][Кактус]Рисование от unrealix

[GTK][Cairo][Кактус]Рисование

Если ты рисуешь на GtkDrawinArea, то соответственно передаешь cairo ссылку на объект GdkWidow, значит нужно искать в разделе GdkWidow

Смотрим, и видим метод gdk_window_invalidate_rect ()

http://www.gtk.org/api/2.6/gdk/gdk-Windows.html#gdk-window-invalidate-rect

http://vaslinux.ifolder.ru/12637387 - вот еще раз ссылка на переводы гнутой документации.. Там gtk тоже есть.

Но вообще очень аккуратно играйся с отрисовкой/перерисовкой.

mono ★★★★★ ()
Ответ на: [GTK][Cairo][Кактус]Рисование от unrealix

[GTK][Cairo][Кактус]Рисование

>в Delphi я за 30 минут наклепал бы, а тут 4 дня.

хе-хе... тут тоже есть графический клепатель форм - Glade.

Я тоже раньше на дельфи программировал, но сейчас Gtk/GLib нравится больше всех инструментов, особенно если писать на Vala.

mono ★★★★★ ()
Ответ на: [GTK][Cairo][Кактус]Рисование от unrealix

[GTK][Cairo][Кактус]Рисование

Тебе ж 4 дня потребовалось на обучение.

Mono уже сказал тебе про Glade. И на самом деле вот эта связка инструментария Gtk - она очень и очень гибкая. Можно программировать на любом из поддерживаемых языков. И можно программировать отдельно - интерфейс и саму реализацию приложения.

hibou ★★★★★ ()
Ответ на: [GTK][Cairo][Кактус]Рисование от unrealix

[GTK][Cairo][Кактус]Рисование

Посмотри просто другие проекты. Я сейчас использую только Си в своих программах.

Если нужно совсем близко к делфи - пробуй monodevelop. Там та же связка, просто тесно интегрирована.

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