SilentPrayerCG
Да, прибавить то можно - OpAdd, а вот вычесть с такой точностью не выйдет, не предусматривал. Разве что, в два хода:
1. С помощью MullAddS2X вычесть 2.
2. С помощью OpAdd2D найти полусумму исходного и полученного.
Mikle
А как с помощью OpAdd вообще это сделать?
Не OpAdd, а OpAdd2D. Это полусумма (среднее арифметическое) источника и приёмника.
Псевдокод:
spr1.MullAddS2X spr2, 0, 0, argb(127,128,128,128), argb(128,128,128,128) spr1.draw spr2, 0, 0, OpAdd2D
Mikle а в этом примере, в спрайте1 и спрайте2 изначально одна и та-же картинка?
получится, MullAddS2X убавит яркость
а OpAdd2D чуть чуть прибавит?
или как?
SilentPrayerCG
> в этом примере, в спрайте1 и спрайте2 изначально одна и та-же картинка?
Во втором спрайте исходник, в первом - не важно, MullAddS2X полностью перезаписывает содержимое.
SilentPrayerCG
> получится, MullAddS2X убавит яркость а OpAdd2D чуть чуть прибавит?
OpAdd2D найдёт среднее между приёмником и источником, в данном случае получается, что прибавит, а если бы мы с помощью MullAddS2X в начале повышали яркость, то OpAdd2D бы убавил её.
Mikle
Привет, не знаешь, на .net можно как-то подружить painttodevice и событие paint?
В том плане, что если это форма, то вроде работает нормально
т.е всю логику отрисовки можно засунуть в paint евент, и в конце добавить Paint to device
а вот если это, к примеру picturebox на форме, уже немного иначе себя ведет paint
в случае с формой, если я увожу форму за пределы доступных экранов, а потом двигаю её обратно (т.е участок формы который нужно обновить меняется в положительную сторону), он перерисовывает её нормально
а в случае если я вывожу на picturebox, вродебы поведение такое-же, но если резко поднять форму "со дна", то он PainttoDevice не выресовывавает содержимое целиком, остается пробел, пока invalidate вручную, не сделаешь.
тоже самое с ресайзом
как бы это сделать, чтобы и зазря не перерисовывалось, и дорисовывалось как надо?
причем похоже стандартный e.graphics в paint в picturebox работает нормально, именно Painttodevice не хочет, конфликт чтоли какой-то, я так понимаю в конце события он каку-то отрисовку сам делает. может это вообще не айс paint to device пихать в paint
хотя вроде в форме работает как надо
SilentPrayerCG
Так глубоко в эти тонкости я не лазил. На VB6 это всё отлично работает.
Mikle
ну похоже придется просто сделать рендер() и вызывать его если происходит ресайз в большую сторону и если форма возвращается на экран (вот это я пока хз как сделать, учитывая что экраны всякие разные могут быть)
потому что просто засунув все в паинт, и потом тыкая invalidate() - вызывает фликкеринг.
я так думаю он в конце paint делает какой-то свой redraw который конфликтует с paint to device
Привет! извиняюсь если отвлекаю, всплыл тут после долгой паузы со старым вопросом об Ассемблере 64бит - какие варианты существуют при условии что надо инлине режим т.е. вставки на языке более высокого уровня как например PowerBasic пишу ассем вставки dll пока на нём режим 32бита не смотря на версию 64бит самого PowerBasic.
Кроме Masm64 других вариантов не знаю, но особо и не искал. То есть это не инлайн асм.
Mikle
Так и не чекал мою перепись на C#?)
https://mega.nz/file/aPBiiSpC#h9sZZXaP1LDCt1beh_7VBkNEOun-HYL9KWje_tfnpYQ
SilentPrayerCG
Да всё никак. Просто у меня сейчас нигде шарп не установлен.
Постараюсь не забыть.
Mikle
А то может, можно что-то улучшить там.
Ты кстати вроде упоминал некую новую версию, планируемую?