Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2003.04.28;
Скачать: [xml.tar.bz2];

Вниз

Быстрая отрисовка 2D   Найти похожие ветки 

 
Stager   (2003-01-25 00:00) [0]

Делаю свой визуальный компонент, столкнулся с такой проблемой. Обновлять картинку бывает нужно достаточно часто, а отрисовка делается штриховкой. Короче говоря - при больших размерах весьма заметно моргает.

Когда-то давным-давно, под DOS"ом, я был приучен рисовать на невидимую страницу видеорежима и циклически менять страницы по мере отрисовки. Есть ли какие-то аналоги здесь? (Например, создать дополнительный TCanvas, рисовать на нем и т.д.) Если да, то как это сделать? Если нет, то как сделать правильно?

ЗЫ. Прошу воздержаться от комментариев типа: оптимизируй отрисовку - тормозить не будет. Уже оптимизирована.

С уважением, Алексей.


 
MBo   (2003-01-25 00:47) [1]

создать битмап, рисовать на нем, потом bitblt


 
Stager   (2003-01-25 02:03) [2]

2 MBo

Хмм... А будет ли это быстрее?

С уважением, Алексей.


 
MBo   (2003-01-25 04:01) [3]

Быстрее будет обновление


 
Mihey   (2003-01-25 19:06) [4]

Угу, ещё как. Есть ещё такая фича. Когда нужно нарисовать компонент неправильной формы (ну хотя бы круг), то сложно сделать отрисовку компонента прозрачной. Лучше всего использовтаь регионы. Если нужен пример, то пишите.


 
Brain   (2003-01-27 10:59) [5]

Рисуй прямо на CANVAS.

И два совета (выбери 1 или 2 способ):

1) Если добавить флаг csOpaque (непрозрачный) к свойству ControlStyle компонента - то фон компонента перерисовываться не будет.

constructor TMyControl.Create;
begin
inherited;
ControlStyle := ControlStyle + [csOpaque];
end;

2)Это позволяет отменить очистку BackGrounda;(Если с Transparent"ом)
private
Procedure WMEraseBkgnd(var Message: TWmEraseBkgnd); message WM_ERASEBKGND;

Procedure TbrPanel.WMEraseBkgnd(var Message: TWmEraseBkgnd);
Begin
Message.Result := 1;
End;



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2003.04.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.009 c
14-91495
Жорик
2003-04-10 14:05
2003.04.28
Удаленное управление GetRight


1-91370
anbezr
2003-04-16 09:26
2003.04.28
Узнать, что фокус ввода ушел с панели


3-91191
Ш-К
2003-04-10 07:23
2003.04.28
Убить поле


8-91411
ЮРИЙ_К
2003-01-24 12:36
2003.04.28
TImage при загрузке передергивается


14-91451
machmud
2003-04-11 17:38
2003.04.28
У кнопки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский