|
Полезные функции Выкладываем полезные функции, чтоб не изобретать велосипед заново... |
10.10.2015, 20:01
|
#1
|
ПроЭктировщик
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений (для 71 пользователей)
|
Прозрачный прямоугольник с краем
Прямоугольник с изменяемой прозрачностью в пределах от 0 до 255.
Так же есть возможность отрисовки полупрозрачного борта .
Код функции под спойлером :
;===============================================
;
; Transparent Rect , alpha% = ( from 0 to 255 )
;
;
;===============================================
Function AlphaRect(Point_X# = 0 ,Point_Y# = 0 ,width ,height ,R = 255 ,G = 255 ,B = 255 ,A% = 255 ,border = False)
If A <= 0 And border = False
Return
ElseIf (A <= 0 And border = True ) Or (A > 0 And border = False ) Or (A > 0 And border = True )
Buffer = BackBuffer()
LockBuffer Buffer
RGB = 255 Shl 24 Or R Shl 16 Or G Shl 8 Or B ;
For localY# = Point_Y To Point_Y + height -1
For localX# = Point_X To Point_X + width -1
If localX > 0 And localX < GraphicsWidth() And localY > 0 And localY < GraphicsHeight()
bgRGB = ReadPixelFast (localX ,localY ,Buffer )
WritePixelFast localX ,localY , GetPixelForOpacity( bgRGB , RGB , A),Buffer
If border
NewRGB =(255-RGB *(A-((255-RGB )*(255-bgRGB ) Shr 8)-A) Shr 8)
WritePixelFast localX ,Point_Y , NewRGB ,Buffer
WritePixelFast localX ,Point_Y+ height , NewRGB , Buffer
WritePixelFast Point_X ,localY, NewRGB ,Buffer
WritePixelFast Point_X + width ,localY, NewRGB , Buffer
EndIf
End If
Next : Next
UnlockBuffer Buffer
End If
End Function
Function GetPixelForOpacity( pixelBackground, pixelForeground, pixelAlpha)
If pixelForeground = $ff000000 Then pixelForeground = pixelBackground
bgsourceR = ((pixelForeground And $00FF0000) Shr 16);
bgsourceG = ((pixelForeground And $0000FF00) Shr 8);
bgsourceB = ((pixelForeground And $000000FF));
sourceR = ((pixelBackground And $00FF0000) Shr 16);
sourceG = ((pixelBackground And $0000FF00) Shr 8);
sourceB = ((pixelBackground And $000000FF));
newR = sourceR * pixelAlpha/255 + bgsourceR * ( 255-pixelAlpha)/255;
newG = sourceG * pixelAlpha/255 + bgsourceG * (255- pixelAlpha)/255;
newB = sourceB * pixelAlpha/255 + bgsourceB * (255- pixelAlpha)/255;
Return (255 Shl 24 Or newR Shl 16 Or newG Shl 8 Or newB);
End Function
P.S. Думаю тут и без скриншота всё понятно .
__________________
Мой проект здесь
Последний раз редактировалось polopok, 14.10.2015 в 08:47.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо polopok за это полезное сообщение:
|
|
11.10.2015, 17:00
|
#2
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: Прозрачный прямоугольник с краем
Это конечно круто, но что мешает выводить так любую картинку?
Попиксельные операции дают полную свободу действий, однако производительность страдает, для того и есть фрагментные шейдеры.
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
11.10.2015, 19:23
|
#3
|
ПроЭктировщик
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений (для 71 пользователей)
|
Ответ: Прозрачный прямоугольник с краем
Сообщение от SBJoker
Это конечно круто, но что мешает выводить так любую картинку?
Попиксельные операции дают полную свободу действий, однако производительность страдает, для того и есть фрагментные шейдеры.
|
По поводу прозрачности картинки уже писал в этом http://forum.boolean.name/showthread.php?t=17431 посте.
Эффективность можно повысить если изображение загрузить в банк памяти и соответственно буфер представить банком памяти , остаётся лишь проход по значениям обоих банков с выводом результата в банк буфера
__________________
Мой проект здесь
|
(Offline)
|
|
12.10.2015, 02:42
|
#4
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Прозрачный прямоугольник с краем
Зачем?
Не лучше ли заняться реальной разработкой игр или приложений, исползуя современные и развитые платформы и библиотеки?
Зачем заниматься некро-кодингом?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
12.10.2015, 04:23
|
#5
|
ПроЭктировщик
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений (для 71 пользователей)
|
Ответ: Прозрачный прямоугольник с краем
Сообщение от moka
Зачем?
Не лучше ли заняться реальной разработкой игр или приложений, исползуя современные и развитые платформы и библиотеки?
Зачем заниматься некро-кодингом?
|
А никто ни кого ни к чему не принуждает ...
P.S.Каждый ***чит ,как ,где и чем хочет.
__________________
Мой проект здесь
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо polopok за это полезное сообщение:
|
|
13.10.2015, 02:46
|
#6
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Прозрачный прямоугольник с краем
Сообщение от polopok
А никто ни кого ни к чему не принуждает ...
P.S.Каждый ***чит ,как ,где и чем хочет.
|
При чем тут принуждение?
Вот, залайкавший L.D.M.T. некро-кодил, и за столько лет ничему не научился, даже примитивную html форму по работе не может сделать, готов заплатить другим.
Заачем?
Разве нету желания создавать что-то крутое и интересное, что люди смогут попробовать и использовать?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
13.10.2015, 03:19
|
#7
|
ПроЭктировщик
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений (для 71 пользователей)
|
Ответ: Прозрачный прямоугольник с краем
По моему переходим к трёпу
Для меня программирование просто хобби ,а блитз ностальгия ,хотя и сейчас думаю многие кодят на нём.
__________________
Мой проект здесь
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
13.10.2015, 11:36
|
#8
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Прозрачный прямоугольник с краем
moka - ты сублимируешь латентную религиозность в кодовых холиварах. Надоел уже с этой темой хуже фанатиков. В каждом треде (хоть про цпп, хоть про б3д) вспыхивает один и тот же флейм, а ведь ворчание стариков опрокинуло blitz.pp в своё время. Ведёшь себя как член комиссии, выделяющей грант на мильон евро за вышеприведённый код. Тыжнормальный - лучше запили нам демку какую, или про эвент какой расскажи.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Эти 4 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
|
|
13.10.2015, 13:55
|
#9
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Прозрачный прямоугольник с краем
Сообщение от impersonalis
moka - ты сублимируешь латентную религиозность в кодовых холиварах. Надоел уже с этой темой хуже фанатиков. В каждом треде (хоть про цпп, хоть про б3д) вспыхивает один и тот же флейм, а ведь ворчание стариков опрокинуло blitz.pp в своё время. Ведёшь себя как член комиссии, выделяющей грант на мильон евро за вышеприведённый код. Тыжнормальный - лучше запили нам демку какую, или про эвент какой расскажи.
|
Ничего против CPP не имею. Язык может и работу дать, только если опять же, не манчкинством заниматься, а делом.
На демки времени нету совсем, работа-работа-рабство.
Евенты, когда пройдут, расскажу.
Причины по которым я негодую, это то что почти все кто тут сидит с давних времен, пересели с б3д на что-то более дельное, и чем раньше это сделали, тем лучше.
Посмотри на HolyDel, PAX, Mr_F, ARENSHI, да почти все наши старожилы на что-то дельное перешли, и все пробиваются, все двигаются вперед, получают свои деньги за свои творения, или хотя бы реальные проекты, с реальными пользователями.
А не код, который максимум 3 человека скопи-пастят, и больше никто не увидит. Хотя бы на JS'е писал тоже самое, так хоть побольше людей увидило, и может кому-то пригодилось бы, но и это сомнительно.
Разве никто не хочет чтобы его хобби стало работой, приносящей не только фан, но и бабло?
|
(Offline)
|
|
13.10.2015, 14:03
|
#10
|
Быдлокодер
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,024
Написано 2,312 полезных сообщений (для 5,349 пользователей)
|
Ответ: Прозрачный прямоугольник с краем
Сообщение от moka
Причины по которым я негодую, это то что почти все кто тут сидит с давних времен, пересели с б3д на что-то более дельное, и чем раньше это сделали, тем лучше.
Посмотри на HolyDel, PAX, Mr_F, ARENSHI, да почти все наши старожилы на что-то дельное перешли, и все пробиваются, все двигаются вперед, получают свои деньги за свои творения, или хотя бы реальные проекты, с реальными пользователями.
А не код, который максимум 3 человека скопи-пастят, и больше никто не увидит. Хотя бы на JS'е писал тоже самое, так хоть побольше людей увидило, и может кому-то пригодилось бы, но и это сомнительно.
Разве никто не хочет чтобы его хобби стало работой, приносящей не только фан, но и бабло?
|
Интересно, что за таракан в твоей голове заставляет писать это.
Тебе важно что бы каждое действие имело конечную цель и обязательно полезную/продуктивную.
Пишешь что не надо навязывать мнение другим и сам отчаянно навязываешь своё.
Почему же ты так беспокоишься за других.
|
(Offline)
|
|
Эти 5 пользователя(ей) сказали Спасибо Arton за это полезное сообщение:
|
|
13.10.2015, 14:15
|
#11
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Прозрачный прямоугольник с краем
Сообщение от Arton
Интересно, что за таракан в твоей голове заставляет писать это.
Тебе важно что бы каждое действие имело конечную цель и обязательно полезную/продуктивную.
Пишешь что не надо навязывать мнение другим и сам отчаянно навязываешь.
Почему же ты так беспокоишься за других.
|
Картинка иллюстрирует твою сторону взгляда, т.к. тебе не ясна моя мотивация.
Мотивация простая, такая же как у любого другого человека который стремиться чего-то добиваться в жизни, и желает того же другим.
Я чему-то вроди научился, и начинал с б3д, много общего со многими на булке.
И выбравшись до какого-то уровня, вижу свои и чужие "ошибки", или скорее "погрехи", которые если увидеть чутка раньше, можно лучше и дальше уйти вперед в итоге.
Разве это не круто видеть как народ развивается, и достигает успехов? По мне так это отлично.
Я лично имею список людей, которые кто-то также начинал на булке, а кто-то еще где-то. Мне удалось в ранее время их немного направить, советом или объяснив там что-то по коду. И сейчас они весьма в хорошем положении. Я не приписываю себе ничего, т.к. каждая мелкая деталь важна, и в итоге - это они делают, не я за них. И когда видишь такой рост и развитие. Чертовски приятно, и радостно за людей.
Желаю просто всем чтобы двигались, и развивались. Всего-то.
Порой слышу отмазы, которые звучат для меня как "он тупой, и ему нравится быть тупым, оставь его в покое, не мешай ему тупить". От таких отмаз, мне становится грустно.
Думаю мотивация теперь ясна?
|
(Offline)
|
|
13.10.2015, 14:57
|
#12
|
Быдлокодер
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,024
Написано 2,312 полезных сообщений (для 5,349 пользователей)
|
Ответ: Прозрачный прямоугольник с краем
Сообщение от moka
Картинка иллюстрирует твою сторону взгляда, т.к. тебе не ясна моя мотивация...
|
С чего ты это взял? Мне понятна твоя мотивация, хотя и не ясны причины, а вот ты меня похоже не понял, или не хочешь.
Когда человек действительно понимает (осознаёт), он перестаёт повторять одно и тоже.
Объяснять что-либо тебе я не собираюсь, вдруг обидишься ты сам в состояние разобраться.
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 500 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.
|
P. S. Больше не отвечай пожалуйста, как правило ты стараешься оставить последнее слово за собой, и споры часто становятся бессмысленным словоблудием.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
13.10.2015, 15:01
|
#13
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Прозрачный прямоугольник с краем
Сообщение от moka
Желаю просто всем чтобы двигались, и развивались. Всего-то.
Порой слышу отмазы, которые звучат для меня как "он тупой, и ему нравится быть тупым, оставь его в покое, не мешай ему тупить". От таких отмаз, мне становится грустно.
|
Фанатики рассуждают точно также. Основная проблема - система ценностей: кто-то хочет поиграться с алгоритмами, кто-то заняться ненормальным программированием, кто-то тихонько ковыряется в свободное время (как хобби, которое не умерщвляется, став работой), кто-то изобретает велосипед, т.к. для него это лучший подход к пониманию материала и т.п.
Разумеется, стоит прокомментировать, на случай если человек действительно не понимает, что занят не совсем тем, на что рассчитывает (возможно, даже перенести тему из данного раздела в какие-нибудь "примеры кода"). Но не одним и тем же людям по n-ому разу.
Большинство фанатиков свято верят, что несут свет знаний тёмным дикарям. Тех, кто лишь прикрывается личной миссионера - не так много.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
|
|
13.10.2015, 15:16
|
#14
|
ПроЭктировщик
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений (для 71 пользователей)
|
Ответ: Прозрачный прямоугольник с краем
Мда ... Все ,вы ,правы и даже я .
moka , я очень признателен за попытки мотивировать меня ,так же рад тому ,что на этом голубом ,овалообразном шарике земли таки есть люди не равнодушные к другим человек'ам ,ведь одно понимание собственной необходимости повышает стремление к познанию и расширения мира.
__________________
Мой проект здесь
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо polopok за это полезное сообщение:
|
|
13.10.2015, 16:49
|
#15
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Прозрачный прямоугольник с краем
Сообщение от impersonalis
Фанатики рассуждают точно также. Основная проблема - система ценностей: кто-то хочет поиграться с алгоритмами, кто-то заняться ненормальным программированием, кто-то тихонько ковыряется в свободное время (как хобби, которое не умерщвляется, став работой), кто-то изобретает велосипед, т.к. для него это лучший подход к пониманию материала и т.п.
Разумеется, стоит прокомментировать, на случай если человек действительно не понимает, что занят не совсем тем, на что рассчитывает (возможно, даже перенести тему из данного раздела в какие-нибудь "примеры кода"). Но не одним и тем же людям по n-ому разу.
Большинство фанатиков свято верят, что несут свет знаний тёмным дикарям. Тех, кто лишь прикрывается личной миссионера - не так много.
|
Это все очевидные вещи, и мне известно то что ты здесь пишешь.
Я еще не подрос чтобы мириться с окружением, и принимать его как есть. У меня все еще подростковый максимализм где-то, частично остался. И желание "бежать" вперед есть. Время прийдет, и я угомонюсь. А пока, с осознанием того что ты и остальные пишут, я буду гнуть свою палку.
Вреда в моих текстах не вижу, и это важно. Тем более каждый имеет право не читать.
Arton, причины такие же как у любого ученого стремление к познанию, или ребенка попробовать все на вкус, любопытство и не усидчивость - причина которая ведет к мотивации описанной выше.
Я все же не удержался и ответил.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:35.
|