Gui
контролов, использующие собственные скины.
Для подрузки скинов используется свой менеджер, который подргужает скины, и передаёт их контролам.
Проблемма заключается в следующем:
При наличии большого колличества контролов на форме
очень долгая отрисвка формы.
(Для всех контролов установлено необходимые SetStyle(...))
Если кто ни будь сталкивался с проблеммой долгой отрисовки,
подскажите плизз, или как зделать так, что бы GUI использовла ресурсы видеокарты, а не процессора.
Есть несколько решений: использовать возможности GDI+ в Windows Forms. Второе решение - юзай Managed DirectX, и, наконец, третье - используй WinAPI-функции. Последний вариант не будет CLS Compliant.
1. GUI+ И так, всё через него.
2. API не могу, т.к. все должно работать под MONO.
Managed DirectX - можно по подробнее,
что именно ты имееш ввиду,
если не рисование контролов через DirectX.
Не GUI+, а GDI+ (Graphic Device Interface). Библиотека .NET Framework содержит классы для работы с графическим интерфейсом устройств (тот самый GDI), такие классы как GraphicsPath, FPoint почти весь System.Drawing. Раз ты юзаешь MONO - значит из под *nix, как ты собираешься Managed DirectX юзать? При помощи него можно рисовать примитивы и размещать их в графической памяти, весь глюк заключается в работе через хэндлы и интерфейсы. Последняя версия Managed DirectX - это 1.0.2902.0, можешь скачать на сайте мелкомягких
Естественно все через регоины и Gr Path
DirectX - вообще юзать не собирался даже,
просто думал, иоже я чего не понял.
А проблемма вообще, не в ДНК. Перелазил весь
codeproject, rsdn и т.д. Пока один 10 20 контролов
всё ок. А когда их на табе из 10 вкладок всего штук 200
перещиывается долго, а если перещитывать
только при переключении по табам, то все равно видно,
не успевает прорелизиться.
И самое обидное что железо навароченое, а не калькулятор :{
Единственное, что приходит в голову - это распараллелить прорисовку. Если проц поддерживает HyperThreading, то прирост будет в десятки раз. Распаралель при помощи Threading. Но не увлекайся, максимум потоков 5.
ведь в одном должен идти функционал
плюс делигаты и т.д. ?
Да 5 не критично, просто код сложный будет. Из своей практики всегда 2-3 потоками обходился