#1 28.12.07 23:11
Хочу заменить GDI.......чем-нибудь более существенным.
Я делаю бакалаврскую работу. Программка получается очень хорошая (ну в моем случае).
Самый главный модуль там как раз – это рисование Бизнес-процессов.
Программирую я на C# в VS2005. Вот эти БП рисуются у меня, все хорошо. Когда я начинал, я был очень этим доволен. Но сейчас, когда программа достигает больших размеров и она постоянно дополняется новым функционалом, я считаю что она на самом деле не того качества, какого я ожидал бы. Дело в том, что я рисую эти БП на канве, использую GDI.
Получается не очень красиво, и очень медленно, когда на холсте размещено множество блоков, связей и т.д. изза того что все это перерисовывается.
Изменил размер – перерисовал, прошло время…. Открыл другую прогу, вернулся в свою – опять все перерисовалось, опять это время.
СКАЖИТЕ пожалуйста, я могу рисовать все это на каком-нибудь движке типа OpenGL, только в 2D))) естественно на C#.
Если да то дайте если есть какую-нибудь ссылочку, чтобы почитать про то как это реализовать.
Заранее благодарен.
Offline
#4 29.12.07 20:17
Re: Хочу заменить GDI.......чем-нибудь более существенным.
C# 2D Images, GDI too slow, XNA/DirectX/OpenGL???
юзай XNA. дистриб бесплатный
Offline
#8 04.01.08 23:47
Re: Хочу заменить GDI.......чем-нибудь более существенным.
а почему бы не посмотреть в сторону managed c++, если нужен прирост в производительности ? там и с opengl прекрасно работается (хотя и для шарпа тоже есть обертки opengl-a), склепай в нем контрол для своих нужд, и будет тебе счастье.
Offline
#10 13.01.08 13:34
Re: Хочу заменить GDI.......чем-нибудь более существенным.
RusRusRus, напиши на чем остановился
Offline
#11 23.01.08 07:39
Re: Хочу заменить GDI.......чем-нибудь более существенным.
Да все на томже. Сессия была)))
У тебя отрисовка кэшируется? извините, это как? Я с GDI начал недавно работать, толком не разбирался, рисует и ладно, подумал я.
Прорисовка проходит так:
В метод PAINT я пишу обработчик, рисования например прямоугольника, и все.
Ну и при каждом наложении объекта или др. формы, оно затирается и все перерисовывается. Ну как работает метод PAINT думаю все знают.
Вот про кэшируется можно поподробнее пожалуйста?))) что это и как это реализовать?
Offline
#12 23.01.08 07:44
Re: Хочу заменить GDI.......чем-нибудь более существенным.
Пример рисования в гди моего приложения)) на всякий случай:
Graphics g = this.CreateGraphics();
g.Clear(_wc);
Pen pen = new Pen(_bc);
Point p1 = new Point(2, 2);
Point p2 = new Point(this.Width, this.Height);
g.DrawRectangle(pen, p1.X, p1.Y, p2.X, p2.Y);
Offline
#13 27.01.08 18:47
#14 03.02.08 09:35
#15 18.02.08 07:34
#16 20.02.08 18:15
#17 20.02.08 22:56
#18 20.02.08 23:09
#19 20.02.08 23:22
#20 20.02.08 23:57
#21 21.02.08 00:05
Re: Хочу заменить GDI.......чем-нибудь более существенным.
Offline
#22 21.02.08 22:54
Re: Хочу заменить GDI.......чем-нибудь более существенным.
Я то переписал))) (чем и занимался ти 2 месяца) добавил кучу новых возможностей, и осталось место для еще боле новых)))
рисуется все канечно побыстрее, т.к. там некоторые лишние действия убрал или вообще новые добавил, но все попрежнему перерисовывается(( раздражает(((
Offline
#23 21.02.08 22:57
#24 24.02.08 12:38
Re: Хочу заменить GDI.......чем-нибудь более существенным.
CbIP написал(а):
otaku, засунь себе эти правила куда-нибудь и ознакомься с методологией "экстремальное программирование".
Сыр учись программировать, не академически, а промышленно.
Не осознал причем ут экстремальное рпограммирование, при экстремальном прогарммирование, вообще нет времени переписывать код, ты сразу пишешь хороший.
А вот статью почитай мож станешь взрослее
http://www.linux.org.ru/view-message.jsp?msgid=2525031&lastmod=1203832051051
Узнаешь что такое профайлер
Offline
#25 24.02.08 15:48
Re: Хочу заменить GDI.......чем-нибудь более существенным.
otaku написал(а):
Не осознал причем ут экстремальное рпограммирование, при экстремальном прогарммирование, вообще нет времени переписывать код, ты сразу пишешь хороший.
да уж...
ознакомься повнимательней с разделом "рефакторинг" :)
что ты мне профайлером всё тычешь? причем тут он и мой совет автору топика рефакторить код? :)
Offline
#26 24.02.08 20:34
#27 24.02.08 22:09
#28 29.02.08 13:56
#29 02.03.08 13:08
Re: Хочу заменить GDI.......чем-нибудь более существенным.
drug_detei, я разорбрался с программкой, большое спасибо за последнюю ссылочку, очень помогло. Все стало очень быстро работать, почти незаметно. Еще раз спасибо!!! Прога стала жрать на 25 метров больше, но зато косяк мерцания исчез))))))))))
Offline

