Конференция "Media" » Аналоговые часы
 
  • исследователь © (18.08.07 20:41) [20]
    Нет, 2 гига, но все же...
  • Ricks © (18.08.07 20:49) [21]
    ты потратишь больше памяти на копирование непрямоугольной картинки...
  • исследователь © (18.08.07 20:59) [22]
    Кстати, стала очень заметна рябь при использовании больших картинок.

    И еще: как теперь привязать к этому скины... копируем-то мы ПРЯМОУГОЛЬНЫЙ циферблат, а форма будет НЕПРЯМОУГОЛЬНАЯ...
  • исследователь © (18.08.07 20:59) [23]
    Кстати, стала очень заметна рябь при использовании больших картинок.

    И еще: как теперь привязать к этому скины... копируем-то мы ПРЯМОУГОЛЬНЫЙ циферблат, а форма будет НЕПРЯМОУГОЛЬНАЯ...
  • antonn © (18.08.07 21:20) [24]
    копируй прямоугольные, форму вырезай непрямоугольную, в чем загвоздка?
  • исследователь © (18.08.07 21:34) [25]
    Да я уж проверил... все норм... а вот с мерцанием -  это отстой.
  • исследователь © (18.08.07 21:38) [26]
    А как сделать линии плавными? В инете лишь дурацкий урок какой-то, но он не катит, а при изменении максимума x и у в нем на width и height формы она вообще не видна становится
  • исследователь © (18.08.07 23:32) [27]
    Никто не знает?
  • Vendict © (19.08.07 12:34) [28]
    была здесь как-то подобная тема, советовали сглаживание использовать. а по поводу как вырезать дырки из формы, у Флёнова(не ругайте, знаю) был пример.
  • исследователь © (19.08.07 14:46) [29]
    Да скин я сделал, а как сглаживание юзать?
  • @!!ex © (19.08.07 17:40) [30]
    > Кстати, стала очень заметна рябь при использовании больших
    > картинок.

    Косяк связанный с тем, что при перерисовке сначала форма заливаеться родным цветом, а потом на нее уже ложиться BitBlt.
    Из за этогО, елси например форма синяя, а копируеться белый битмап будет мерцание:
    форма при перерисовке заливаеться синим, на нее накладываеться битмап, при перерисовке битмап стирается цветом формы и накладываеться опять.

    решения есть, но я их точно не помню, а сейчас лезть искать код мне влом, поищи сам, тут где то не далеко это обсуждали.
  • antonn © (19.08.07 20:48) [31]
    решение против мерцания - либо двойной буфер (кстати bltbtn очень быстро работает, с ним не должно быть мерцания), либо выводит окошко через updatelayeredwindow() - понятия мерцать там вообще нет (как и понятия контрол, хыхыхы).
    рисовать гладкие линии - антиалиасинг. Простой метод - создавать битмап, в несколько раз больше "обычного", рисовать на нем все стрелки и фон так же в несколько раз больше, а потом в эти несколько раз уменьшать до размеров "обычного"
  • @!!ex © (19.08.07 20:55) [32]
    > [31] antonn ©   (19.08.07 20:48)

    Я думаю мерцание из-за того, что форма перерисовываеться сама.
    А насчет сглаживания, зачем уменьшать? Сразу рисовать с StretchBlt.
  • antonn © (19.08.07 21:17) [33]
    никаких StretchBlt, попиксельно через scanline со смешением цветов, а то науменьшаешь до "квадратиков":)
  • исследователь © (20.08.07 13:37) [34]
    Я нашел попиксельное решение, но даже с засовыванием в отделный тред прога просто виснет и все.
  • Dib@zol © (20.08.07 14:32) [35]
    InvalidateRect(<Компонент на который выводишь>.Handle, nil, FALSE);
    Это теоретически позволит избежать мерцания.
  • antonn © (20.08.07 15:39) [36]

    > Я нашел попиксельное решение, но даже с засовыванием в отделный
    > тред прога просто виснет и все.

    значит это не решение
  • исследователь © (20.08.07 16:16) [37]
    Может, ты подскажешь?
    Я имел ввиду, как ты понял, не свой код, а нашел в инете.
  • clickmaker © (20.08.07 16:23) [38]

    > исследователь ©   (18.08.07 18:14)

    а стрелка - это что? Bitmap или линиями?
    вариант с SetROP2 инверсным не подойдет?
  • исследователь © (20.08.07 17:27) [39]
    Стрелка линией рисуется, выше я это писал.
 
Конференция "Media" » Аналоговые часы
Есть новые Нет новых   [134431   +10][b:0][p:0.001]