Войти
Вело-изобретателиФорумSR2D - софтовый 2D движок

SR2D, тестируем x64 версию. (18 стр)

Страницы: 113 14 15 16 17 18
#255
8:30, 26 окт 2023

SilentPrayerCG
Да, прибавить то можно - OpAdd, а вот вычесть с такой точностью не выйдет, не предусматривал. Разве что, в два хода:
1. С помощью MullAddS2X вычесть 2.
2. С помощью OpAdd2D найти полусумму исходного и полученного.

#256
14:06, 26 окт 2023

Mikle
А как с помощью OpAdd вообще это сделать?

#257
15:40, 26 окт 2023

Не OpAdd, а OpAdd2D. Это полусумма (среднее арифметическое) источника и приёмника.
Псевдокод:

spr1.MullAddS2X spr2, 0, 0, argb(127,128,128,128), argb(128,128,128,128)
spr1.draw spr2, 0, 0, OpAdd2D
#258
21:08, 26 окт 2023

Mikle а в этом примере, в спрайте1 и спрайте2 изначально одна и та-же картинка?
получится, MullAddS2X убавит яркость
а OpAdd2D чуть чуть прибавит?
или как?

#259
22:40, 26 окт 2023

SilentPrayerCG
> в этом примере, в спрайте1 и спрайте2 изначально одна и та-же картинка?
Во втором спрайте исходник, в первом - не важно, MullAddS2X полностью перезаписывает содержимое.
SilentPrayerCG
> получится, MullAddS2X убавит яркость а OpAdd2D чуть чуть прибавит?
OpAdd2D найдёт среднее между приёмником и источником, в данном случае получается, что прибавит, а если бы мы с помощью MullAddS2X в начале повышали яркость, то OpAdd2D бы убавил её.

#260
20:58, 27 ноя 2023

Mikle
Привет, не знаешь, на .net можно как-то подружить painttodevice и событие paint?
В том плане, что если это форма, то вроде работает нормально
т.е всю логику отрисовки можно засунуть в paint евент, и в конце добавить Paint to device

а вот если это, к примеру picturebox на форме, уже немного иначе себя ведет paint

в случае с формой, если я увожу форму за пределы доступных экранов, а потом двигаю её обратно (т.е участок формы который нужно обновить меняется в положительную сторону), он перерисовывает её нормально

а в случае если я вывожу на picturebox, вродебы поведение такое-же, но если резко поднять форму "со дна", то он PainttoDevice не выресовывавает содержимое целиком, остается пробел, пока invalidate вручную, не сделаешь.
тоже самое с ресайзом

как бы это сделать, чтобы и зазря не перерисовывалось, и дорисовывалось как надо?

причем похоже стандартный e.graphics в paint в picturebox работает нормально, именно Painttodevice не хочет, конфликт чтоли какой-то, я так понимаю в конце события он каку-то отрисовку сам делает. может это вообще не айс paint to device пихать в paint
хотя вроде в форме работает как надо

#261
21:15, 27 ноя 2023

SilentPrayerCG
Так глубоко в эти тонкости я не лазил. На VB6 это всё отлично работает.

#262
21:18, 27 ноя 2023

Mikle
ну похоже придется просто сделать рендер() и вызывать его если происходит ресайз в большую сторону и если форма возвращается на экран (вот это я пока хз как сделать, учитывая что экраны всякие разные могут быть)

потому что просто засунув все в паинт, и потом тыкая invalidate() - вызывает фликкеринг.

я так думаю он в конце paint делает какой-то свой redraw который конфликтует с paint to device

Страницы: 113 14 15 16 17 18
Вело-изобретателиФорумSR2D - софтовый 2D движок