{"41724":{"id":41724,"votes":3,"views":0,"text":"O takie posty nic nie robi\u0142em :P","html":"
O takie posty nic nie robi\u0142em :P<\/p>\n","parent_id":41721,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41721#comment-41724","created_at":"2019-02-08T00:43:05+01:00","updated_at":"2019-02-08T00:43:05+01:00","comments":[],"user":{"id":68151,"name":"Pixello","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/55e363f875dff.png","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IlRLOHZDaFh6cW44d3RXRlVUcDE2Wmc9PSIsInZhbHVlIjoiUXQ4cm92ZzQxeVpzTVJaa0Q3T0d4Z2RCQVd3Q2FyUEFkWVAzQVpvRm43TWxqM1dIK1MrOE9JSy8yU28vU1E0KyIsIm1hYyI6ImRhMjViNTA3YWM2ZGNlMzYzMDRlNWIwZTQwNzliMTlkNDc2MzExNTc1YTRlM2FjMzgwYTlmZDBkZDZkZDc1ZWEiLCJ0YWciOiIifQ==","deleted_at":null},"41747":{"id":41747,"votes":0,"views":0,"text":"Cos ten post sie rozjezdza na androidzie.","html":"
Cos ten post sie rozjezdza na androidzie.<\/p>\n","parent_id":41721,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41721#comment-41747","created_at":"2019-02-08T12:33:23+01:00","updated_at":"2019-02-08T12:33:23+01:00","comments":[],"user":{"id":48869,"name":"vpiotr","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/5f\/5f9df87cb6749.jpg","deleted_at":"2022-05-14T20:38:46.000000Z","is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IjBlWTNoaU05OXlraGFhK05OaHVBb2c9PSIsInZhbHVlIjoiejZZamZTQ3lhZXpYbWN2SU9BdzBFbmZtaGVhSXRGUThTaFB3WDBQem0wajE1ODkrbzlwcDVvQmNndG1CaGVTKyIsIm1hYyI6IjgyOTc4MzA0ZmRkNmIyMzQ5MmM4NGU1ZTk1ZTBjMDFiYzAxYmMwMDdiMzg2ZTViZWFkZGIxYjg0M2JjOTVjNDciLCJ0YWciOiIifQ==","deleted_at":null},"41748":{"id":41748,"votes":3,"views":0,"text":"Czy Ty piszesz gr\u0119 na NESa?\r\nNie przesadzaj z tymi optymalizacjami. Jak Ci si\u0119 co\u015b podoba, to wrzucaj. Wszystkie wsp\u00f3\u0142czesne kompy to \u0142ykn\u0105, a gra si\u0119 wzbogaci o co\u015b, co wci\u0105\u017c b\u0119dzie retro...\r\n\r\nJe\u015bli chodzi o post-efekty, to spodoba\u0142yby Ci si\u0119 shadery. Dzia\u0142aj\u0105 szybciej ni\u017c zwyk\u0142e procedury na CPU. M\u00f3g\u0142by\u015b sobie na ka\u017cdy element albo na ca\u0142y renderowany obraz elegancko na\u0142o\u017cy\u0107 jakie\u015b scanlines ;)","html":"
Czy Ty piszesz gr\u0119 na NESa?
\nNie przesadzaj z tymi optymalizacjami. Jak Ci si\u0119 co\u015b podoba, to wrzucaj. Wszystkie wsp\u00f3\u0142czesne kompy to \u0142ykn\u0105, a gra si\u0119 wzbogaci o co\u015b, co wci\u0105\u017c b\u0119dzie retro...<\/p>\n
Je\u015bli chodzi o post-efekty, to spodoba\u0142yby Ci si\u0119 shadery. Dzia\u0142aj\u0105 szybciej ni\u017c zwyk\u0142e procedury na CPU. M\u00f3g\u0142by\u015b sobie na ka\u017cdy element albo na ca\u0142y renderowany obraz elegancko na\u0142o\u017cy\u0107 jakie\u015b scanlines ;)<\/p>\n","parent_id":41721,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41721#comment-41748","created_at":"2019-02-08T12:38:13+01:00","updated_at":"2019-02-08T12:38:13+01:00","comments":[],"user":{"id":2027,"name":"Spine","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/t6WNZBg287b5LMJ3bcLhxcQT4ufWI5sIhyCKEgbs.jpg","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6Im5xMjMrVU84SlJpaHNCc283NmlRclE9PSIsInZhbHVlIjoiUDcrUFp1bHJDd09WVmxQT29WTTdqb2p2a2V4MXJoa21uWVZVTzNRcy9TU2JBMU9Sc3VFY3ZIWkJTdGJWTTVPTCIsIm1hYyI6IjZlMTBmNzA4ZWY1OTE1NDQzNjljN2NhMDcyYmRmNmU4OWM4OGUwN2JkYTVmMmU5ZmY4OGNmY2Y4YmE0ZDAyMDMiLCJ0YWciOiIifQ==","deleted_at":null},"41750":{"id":41750,"votes":0,"views":0,"text":"@vpiotr: nie tylko na androidzie. Rozje\u017cd\u017ca si\u0119\u00a0te\u017c na Chrome (OS X), ale tylko gdy jest zwini\u0119ty. @{Adam Boduch}","html":"
@vpiotr: nie tylko na androidzie. Rozje\u017cd\u017ca si\u0119\u00a0te\u017c na Chrome (OS X), ale tylko gdy jest zwini\u0119ty. @Adam Boduch<\/a><\/p>\n","parent_id":41721,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41721#comment-41750","created_at":"2019-02-08T13:01:39+01:00","updated_at":"2019-02-08T13:01:39+01:00","comments":[],"user":{"id":72192,"name":"Desu","is_online":false,"photo":null,"deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6InlpRXdZTFN4UEtSLzJONi85WTFqOVE9PSIsInZhbHVlIjoiSEVDR2FhRHpWOFowQmQ1eERlSXVCMElKYnZMSGxObElHbkVKdWRyV0UyOE5NWms4TDRnWHVTZmNCTVlpWGhPWiIsIm1hYyI6Ijg0NTVjOWE0ODk4MjA5MzRlYTg0YmY3Y2QwNTdiNjc2ZWMwY2ZkNTI5Y2I3ZjUyNGQ3OWYzODVkZWY2OGJiYzYiLCJ0YWciOiIifQ==","deleted_at":null},"41751":{"id":41751,"votes":0,"views":0,"text":"Na Safari to samo. Dodatkowo rozjecha\u0142 si\u0119 u mnie post @Spine. Obrazek -> https:\/\/imgur.com\/a\/LdmI0LD","html":" Na Safari to samo. Dodatkowo rozjecha\u0142 si\u0119 u mnie post @Spine<\/a>. Obrazek -> https:\/\/imgur.com\/a\/LdmI0LD<\/a><\/p>\n","parent_id":41721,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41721#comment-41751","created_at":"2019-02-08T13:21:37+01:00","updated_at":"2019-02-08T13:21:37+01:00","comments":[],"user":{"id":96317,"name":"Kot Sylwester","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/5bfd480f50959.jpg","deleted_at":"2019-11-29T11:20:43.000000Z","is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IlR1OWxGbGlDVlhvSW9oRGpwbHZxTlE9PSIsInZhbHVlIjoiSkdCelRKUUJVM1ZqNlBGVEVoSjYrR3hlT2J6REVMaTl0MkdPRnRsdW1kTVVGa0F0ek52UVlPMktOSVZLaUhPbCIsIm1hYyI6ImY4ZDZjNWJkZjQ0ZGM5ZDIzZWVjNzhhNjkwMjIwNjExMzFkNWY5NjdhNDY3ODhmYzc3ZDhhYTM5MmNlNmNhZTMiLCJ0YWciOiIifQ==","deleted_at":null},"41752":{"id":41752,"votes":1,"views":0,"text":"Nie zwalaj na mnie, mi si\u0119 rozje\u017cd\u017ca\u0142o (na telefonie) jeszcze zanim komentarz napisa\u0142em :P\r\nKt\u00f3ry\u015b element si\u0119 rozpycha, ale jak klikn\u0119 poka\u017c ca\u0142o\u015b\u0107, to szeroko\u015b\u0107 strony wraca do normy.\r\nPo prostu te ukryte elementy widocznie nie s\u0105 zw\u0119\u017cane i si\u0119 robi co b\u0105d\u017a.","html":" Nie zwalaj na mnie, mi si\u0119 rozje\u017cd\u017ca\u0142o (na telefonie) jeszcze zanim komentarz napisa\u0142em :P @vpiotr i @Desu<\/a>: wsz\u0119dzie si\u0119 rozje\u017cd\u017ca (i na PC i na mobilnych), ale tylko w postaci zwini\u0119tej \u2013 po rozwini\u0119ciu wszystko gra. Obstawiam, \u017ce problemem s\u0105 linie horyzontalne (markdownowy znacznik @Spine<\/a>: tego typu operacje graficzne mo\u017cna z powodzeniem zastosowa\u0107 r\u00f3wnie\u017c w aplikacjach okienkowych. Nie mam na my\u015bli akurat efektu linii skanowania (cho\u0107 zawsze by si\u0119 znalaz\u0142o zastosowanie), ale og\u00f3lnie wszystko co na temat grafiki wypisuj\u0119 na blogu. No a typowe \u015brodowisko okienkowe nie jest zbyt efektywne, je\u015bli o obr\u00f3bk\u0119 grafiki chodzi, dlatego wol\u0119 poda\u0107 wersj\u0119 jak najbardziej wydajn\u0105, a dla mniej wymagaj\u0105cych dodatkowo poda\u0142em og\u00f3lne, bardziej elastyczne wzory.<\/p>\n Z tymi liniami skanowania jest taki problem, \u017ce silnik mojej gry nie posiada zdefiniowanego mechanizmu post-processingu. Musia\u0142bym go dorobi\u0107, a jest przy tym troch\u0119 roboty. Wczoraj, przed napisaniem tego artyku\u0142u, przeanalizowa\u0142em kod projektu i trzeba by troch\u0119 kodu napisa\u0107, cho\u0107 to akurat da si\u0119 na spokojnie w dwie-trzy godzinki zrobi\u0107.<\/p>\n Bardziej przeszkadza mi to, \u017ce efekt ten nie pasuje do innych rozdzielczo\u015bci okna ni\u017c rozmiar domy\u015blny \u2013 trzykrotne powi\u0119kszenie, do kt\u00f3rego pasuje spos\u00f3b malowania linii, kt\u00f3ry opisa\u0142em wy\u017cej. Dla innych wielko\u015bci okna, linie skanowania nie b\u0119d\u0105 pasowa\u0107 do pikseli i albo trzeba by je renderowa\u0107 w nieco inny spos\u00f3b (dla powi\u0119kszenia czterokrotnego inkrementowa\u0107 licznik p\u0119tli o No i nie wiem teraz co robi\u0107 \u2013 czy rozbudowa\u0107 kod o ten mechanizm, czy nie. A je\u015bli to zrobi\u0107, to na sztywno malowa\u0107 linie w ten sam spos\u00f3b (ciemna, jasna, oryginalna itd.) dla wszystkich rozmiar\u00f3w okna, czy mo\u017ce selektywnie, wzgl\u0119dem rozdzielczo\u015bci (lub w og\u00f3le, dla rozmiaru natywnego i powi\u0119kszenia dwukrotnego). Bardziej sk\u0142ania\u0142bym si\u0119 ku opcji drugiej, co wymaga\u0142oby kilku wersji procedury maluj\u0105cej linie skanowania:<\/p>\n Dodam jeszcze, \u017ce wykorzystanie macierzy struktur do indeksowania po pikselach nie jest konieczne \u2013 mo\u017cna skorzysta\u0107 ze zwyk\u0142ej macierzy bajt\u00f3w, dlatego \u017ce i tak ka\u017cd\u0105 sk\u0142adow\u0105 koloru poddaje si\u0119 takim samym operacjom.<\/p>\n No ale tego ju\u017c nie zmie\u015bci\u0142em we wpisie, ze wzgl\u0119du na ograniczenie jego d\u0142ugo\u015bci. :\/<\/p>\n","parent_id":41721,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41721#comment-41757","created_at":"2019-02-08T14:05:22+01:00","updated_at":"2019-02-08T14:05:22+01:00","comments":[],"user":{"id":49548,"name":"furious programming","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/fDAyteG6Up1A7088jM0TZ6Yj7gZX6QLATaFVIOXh.jpg","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IlQ1MkhJOEZwWnNXV1I3ZjJDWldyakE9PSIsInZhbHVlIjoiVDNCSkVLbEMzZGd1bDZqVFNQUk8vLzdQNzRndnc0RUZqRitPUFRYVWNHcEFBN2VnSXVuTG13QWlLMkVuTFlHSyIsIm1hYyI6IjY1ZjhkYTAxNjk5MjM3ZWZlZjYxMDc2ODVlYmNjMmZmYWVkMzEzYWIxYTJkMDllYjlmNDlhODAzZTJiYTQ4YjAiLCJ0YWciOiIifQ==","deleted_at":null},"41763":{"id":41763,"votes":0,"views":0,"text":"@{furious programming}: u mnie na chrom jest ok. Ju\u017c kiedy\u015b mieli\u015bmy taki problem i @Marooned zaproponowa\u0142 rozwi\u0105zanie kt\u00f3re s\u0142u\u017cy nam do dzi\u015b: https:\/\/4programmers.net\/Forum\/1318110\r\n\r\nProblem nie jest banalny i nie mam pomys\u0142u jak to rozwi\u0105za\u0107 inaczej :)","html":" @furious programming<\/a>: u mnie na chrom jest ok. Ju\u017c kiedy\u015b mieli\u015bmy taki problem i @Marooned<\/a> zaproponowa\u0142 rozwi\u0105zanie kt\u00f3re s\u0142u\u017cy nam do dzi\u015b: https:\/\/4programmers.net\/Forum\/1318110<\/a><\/p>\n Problem nie jest banalny i nie mam pomys\u0142u jak to rozwi\u0105za\u0107 inaczej :)<\/p>\n","parent_id":41721,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41721#comment-41763","created_at":"2019-02-08T20:52:11+01:00","updated_at":"2019-02-08T20:52:11+01:00","comments":[],"user":{"id":1,"name":"Adam Boduch","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/585043b1ae0f6.jpg","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6Inc2TmxRM3JDc3pjMUJLVzJ0OFJWaGc9PSIsInZhbHVlIjoiK3paZjg4ekppVFNnQ1FoVmhiNEp5L0FyVVNtZXp6RjQ0VjlWc2hJQjRWQ29pSGxnVDByemVVbVBndkNmdlJ4SSIsIm1hYyI6IjBkNzMwMzhjYTNjZTgwODkxNWZmZGZmNGQwOTAwYjU3OTVlYTRiNjhhYTNlMGFjMzIxMzk4ZDk3MWU4ZTRmYjYiLCJ0YWciOiIifQ==","deleted_at":null},"41764":{"id":41764,"votes":0,"views":0,"text":"@{Adam Boduch}: przed po\u0142udniem sprawdza\u0142em i wsz\u0119dzie by\u0142o \u017ale. Po po\u0142udniu sytuacja si\u0119 zmieni\u0142a i ju\u017c poprawnie si\u0119 strona wy\u015bwietla\u0142a. No i do tej pory jest dobrze \u2013 nie widz\u0119 p\u00f3ki co problem\u00f3w. Chyba problem sam si\u0119 rozwi\u0105za\u0142. :]","html":" @Adam Boduch<\/a>: przed po\u0142udniem sprawdza\u0142em i wsz\u0119dzie by\u0142o \u017ale. Po po\u0142udniu sytuacja si\u0119 zmieni\u0142a i ju\u017c poprawnie si\u0119 strona wy\u015bwietla\u0142a. No i do tej pory jest dobrze \u2013 nie widz\u0119 p\u00f3ki co problem\u00f3w. Chyba problem sam si\u0119 rozwi\u0105za\u0142. :]<\/p>\n","parent_id":41721,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41721#comment-41764","created_at":"2019-02-08T21:17:22+01:00","updated_at":"2019-02-08T21:17:22+01:00","comments":[],"user":{"id":49548,"name":"furious programming","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/fDAyteG6Up1A7088jM0TZ6Yj7gZX6QLATaFVIOXh.jpg","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6InBDYmFWbThBMG1CdUprRWdJaFhjblE9PSIsInZhbHVlIjoieUNkNXJHTHZBUURISy93YnozRy9oMjNQdVpUTlp6NnFlUytBRU9uY3lXTE5RVVF6YnlQemt5cGZJRkRudTJSaCIsIm1hYyI6ImEzNTEyZDU3NDdiNWNkMTYzMmQ5NDlkNjE0ZGE0MDJhMThkMWNmMDc2MjlkZTNhMzQ5YTdlNTk5YzA1NWE5YjEiLCJ0YWciOiIifQ==","deleted_at":null},"41768":{"id":41768,"votes":0,"views":0,"text":"Niestety nie ma tak latwo.","html":" Niestety nie ma tak latwo.<\/p>\n","parent_id":41721,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41721#comment-41768","created_at":"2019-02-08T23:03:21+01:00","updated_at":"2019-02-08T23:03:21+01:00","comments":[],"user":{"id":48869,"name":"vpiotr","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/5f\/5f9df87cb6749.jpg","deleted_at":"2022-05-14T20:38:46.000000Z","is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IkIvTDhzSlNoc3FGSUhtamJDcU01Mnc9PSIsInZhbHVlIjoiOGdKT01DOFp2QlExZ0V2Y01LK1FMSkhRYzc5Q014UytKM2ROQ0JhdTZDN3NtU1FEVjA4dUtPRDd6a1FUUk9RMyIsIm1hYyI6IjVkM2M3NDlkODg3YzQwY2MzMDhjMTMxMDdmZWEwNTg3NmQ0MGM0ZmYyMjhmYmYzMzMxMTMxYTM3NDQ5Y2JkYmUiLCJ0YWciOiIifQ==","deleted_at":null},"41771":{"id":41771,"votes":0,"views":0,"text":"@{furious programming}: nie by\u0142o \u017cadnego wdro\u017cenia na serwer wi\u0119c raczej niemo\u017cliwe aby si\u0119 samemu naprawi\u0142o :) mo\u017ce zmieni\u0142e\u015b tre\u015b\u0107, co\u015b usun\u0105\u0142e\u015b i si\u0119\u00a0naprawi\u0142o?","html":" @furious programming<\/a>: nie by\u0142o \u017cadnego wdro\u017cenia na serwer wi\u0119c raczej niemo\u017cliwe aby si\u0119 samemu naprawi\u0142o :) mo\u017ce zmieni\u0142e\u015b tre\u015b\u0107, co\u015b usun\u0105\u0142e\u015b i si\u0119\u00a0naprawi\u0142o?<\/p>\n","parent_id":41721,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41721#comment-41771","created_at":"2019-02-09T08:46:38+01:00","updated_at":"2019-02-09T08:46:38+01:00","comments":[],"user":{"id":1,"name":"Adam Boduch","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/585043b1ae0f6.jpg","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IlhpekttaG44R1ZYeHJsVUVFL3MyM2c9PSIsInZhbHVlIjoiK0xSc2lHdmZ1a1o5TTZTaUlGcm9sRDRyKzVoaFhnZS9LdnBkM2hnNFNzd3I2RWNjVXYrbjI0U2JBUFlXT3FlaiIsIm1hYyI6IjBiNDYxMWFhZmY4OWFhMTFlZTA3MDgzZDJhMWY3ZGMzN2YzOTAwNjQ3NmI1MjgyNTQ5NjYzNjAxMDNkZjYzODMiLCJ0YWciOiIifQ==","deleted_at":null},"41772":{"id":41772,"votes":1,"views":0,"text":"mo\u017cna napisa\u0107 to znacznie lepiej, zamiast posuwa\u0107 si\u0119\u00a0pixel po pixelu zrobi\u0107 cast tablicy na uint32, czyta\u0107 po 4 bajty na raz, na ka\u017cdym wykonujesz t\u0119 sam\u0105 operacje, zamiast 3x (kana\u0142 >> 1) mo\u017cna wykona\u0107 po prostu (( (int32) >> 1) & 0x7f7f7f7f) w ten spos\u00f3b masz 1 odczyt i 1 zapis oraz tylko 2 operacje logiczne. Dodatkowo poniewa\u017c odczytujesz po 4 bajty na raz to masz dane zawsze wyr\u00f3wnane do 4 co znacznie przy\u015bpiesza dost\u0119p do nich.","html":" mo\u017cna napisa\u0107 to znacznie lepiej, zamiast posuwa\u0107 si\u0119\u00a0pixel po pixelu zrobi\u0107 cast tablicy na uint32, czyta\u0107 po 4 bajty na raz, na ka\u017cdym wykonujesz t\u0119 sam\u0105 operacje, zamiast 3x (kana\u0142 >> 1) mo\u017cna wykona\u0107 po prostu (( (int32) >> 1) & 0x7f7f7f7f) w ten spos\u00f3b masz 1 odczyt i 1 zapis oraz tylko 2 operacje logiczne. Dodatkowo poniewa\u017c odczytujesz po 4 bajty na raz to masz dane zawsze wyr\u00f3wnane do 4 co znacznie przy\u015bpiesza dost\u0119p do nich.<\/p>\n","parent_id":41721,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41721#comment-41772","created_at":"2019-02-09T10:40:47+01:00","updated_at":"2019-02-09T10:40:47+01:00","comments":[],"user":{"id":52045,"name":"xxx_xx_x","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/5c\/5c5ffd80b4272.jpg","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6Im5ITFJiVFhwanlNZm0zTVNGUFpSNmc9PSIsInZhbHVlIjoiNGZyM01aTC9IQmNrYWV5azZXVlFrZVc4SFlIMnFwRitndEFoQW5LbURFNUY4eDcwZkRTR3JjWFUyN3Bmd05RcyIsIm1hYyI6IjQ2MmUwZGQ1MjY0ZWMyMGQ1ZDRkYWYwZWY0ZDFhNjM3NzAyNjUxNmQ5NWUyNGI3OGE5NzNhODJhY2Y4MmI4MzAiLCJ0YWciOiIifQ==","deleted_at":null},"41773":{"id":41773,"votes":0,"views":0,"text":"@xxx_xx_x: gorzej, je\u015bli potraktujesz tak np. piksel w kolorze \\#814120. Przesuwasz ca\u0142o\u015b\u0107 o bit w prawo i.... zamiast \\#402010 dostajesz jakiego\u015b babola \\#40A090 :D","html":" @xxx_xx_x<\/a>: gorzej, je\u015bli potraktujesz tak np. piksel w kolorze #814120. Przesuwasz ca\u0142o\u015b\u0107 o bit w prawo i.... zamiast #402010 dostajesz jakiego\u015b babola #40A090 :D<\/p>\n","parent_id":41721,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41721#comment-41773","created_at":"2019-02-09T10:53:42+01:00","updated_at":"2019-02-09T10:53:42+01:00","comments":[],"user":{"id":92941,"name":"superdurszlak","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/5c\/5cfd3048ba2b1.jpg","deleted_at":"2022-04-24T21:51:55.000000Z","is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IlZBTnYrYlRBTmNTdGs2RmJ0cWJJb0E9PSIsInZhbHVlIjoiVnFvaytFSGhZTUNsQUx5WUEzNG5WeTBQTUxKc01ZOU1ZQ1pxdlFEbjF5eVlkeXZ2R0JaSkRyQWEyVS90RXp6WCIsIm1hYyI6ImFjNDM1MDhlMWIwMzVjMDlmM2Q3M2MzNjYxZmY2MjQ5ZjlkNGUxZTM5ODI2OWVlOGI3NzQxZjk1NzdhOTFjMzAiLCJ0YWciOiIifQ==","deleted_at":null},"41774":{"id":41774,"votes":0,"views":0,"text":"@superdurszlak: nieprawda, po to masz operacje &0x7f7f7f7f, widz\u0119 tylko \u017ce mi ampersand uci\u0119\u0142o w po\u015bcie wy\u017cej","html":" @superdurszlak: nieprawda, po to masz operacje &0x7f7f7f7f, widz\u0119 tylko \u017ce mi ampersand uci\u0119\u0142o w po\u015bcie wy\u017cej<\/p>\n","parent_id":41721,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41721#comment-41774","created_at":"2019-02-09T10:56:42+01:00","updated_at":"2019-02-09T10:56:42+01:00","comments":[],"user":{"id":52045,"name":"xxx_xx_x","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/5c\/5c5ffd80b4272.jpg","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IlVoTkUvN2FrN282U200T3dYcUlUdFE9PSIsInZhbHVlIjoiazQ3VG9vaFhWanFPcXVuaWJ2aURJN1dkQzJVR0Y3SmJqKzNlM3M3dnFETlBxcG1EV0dNQlUwSis5YXlGcndCYiIsIm1hYyI6IjVkMDA1N2Y0N2ZhNTQzYTM2ODk3ODU5ZGQ4YzY3ZDJmZWU4OGI3NjIzZjZjMDg3MjFmYTJjZGNkMmE4M2NhZDIiLCJ0YWciOiIifQ==","deleted_at":null},"41775":{"id":41775,"votes":0,"views":0,"text":"przeoczy\u0142em. btw. brakuje Ci jedngo operatora w takim razie","html":" przeoczy\u0142em. btw. brakuje Ci jedngo operatora w takim razie<\/p>\n","parent_id":41721,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41721#comment-41775","created_at":"2019-02-09T10:58:08+01:00","updated_at":"2019-02-09T10:58:08+01:00","comments":[],"user":{"id":92941,"name":"superdurszlak","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/5c\/5cfd3048ba2b1.jpg","deleted_at":"2022-04-24T21:51:55.000000Z","is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IjhRS1plV3hid3k2eERxNFhPSkloSEE9PSIsInZhbHVlIjoiZEtuNngwNTkyU04zdXB1ekRrUSttSk03WTFaUmwxNmorYk1jZkJXU0xHMDdmQ0RTNUN2bi9TcnhJUkgrdGVyZCIsIm1hYyI6IjQyMTkxYzA3NjhmMDA0N2Y3ZTFjZTU0OWZhYWIwOGYyMjAwN2ZkNzA5OWJkOTEzOGUwNWUyNjNmMzgxOGIzODIiLCJ0YWciOiIifQ==","deleted_at":null},"41778":{"id":41778,"votes":0,"views":0,"text":"@xxx_xx_x: tak, mo\u017cna \u2013 problem w tym, \u017ce po cztery bajty mo\u017cna czyta\u0107 tylko i wy\u0142\u0105cznie wtedy, gdy \u0142\u0105czna liczba sk\u0142adowych w danej linii obrazu jest podzielna przez cztery. A to sprawia, \u017ce Tw\u00f3j spos\u00f3b jest w praktyce bezu\u017cyteczny \u2013 ka\u017cdy piksel opisuj\u0105 trzy bajty, a nie cztery. Nie pomy\u015bla\u0142e\u015b o tym, prawda? ;)\r\n\r\nSzybszym (cho\u0107 nieznacznie) rozwi\u0105zaniem jest skorzystanie z predefiniowanej palety warto\u015bci dla sk\u0142adowych, wykluczaj\u0105c tym samym wszelkie obliczania. Przy czym przypisywanie warto\u015bci do osobnych sk\u0142adowych (trzech w ka\u017cdej iteracji p\u0119tli) jest znacznie szybsze ni\u017c przypisywanie bajt po bajcie \u2013 dlatego skorzysta\u0142em z macierzy struktur, zamiast z macierzy bajt\u00f3w.","html":" @xxx_xx_x<\/a>: tak, mo\u017cna \u2013 problem w tym, \u017ce po cztery bajty mo\u017cna czyta\u0107 tylko i wy\u0142\u0105cznie wtedy, gdy \u0142\u0105czna liczba sk\u0142adowych w danej linii obrazu jest podzielna przez cztery. A to sprawia, \u017ce Tw\u00f3j spos\u00f3b jest w praktyce bezu\u017cyteczny \u2013 ka\u017cdy piksel opisuj\u0105 trzy bajty, a nie cztery. Nie pomy\u015bla\u0142e\u015b o tym, prawda? ;)<\/p>\n Szybszym (cho\u0107 nieznacznie) rozwi\u0105zaniem jest skorzystanie z predefiniowanej palety warto\u015bci dla sk\u0142adowych, wykluczaj\u0105c tym samym wszelkie obliczania. Przy czym przypisywanie warto\u015bci do osobnych sk\u0142adowych (trzech w ka\u017cdej iteracji p\u0119tli) jest znacznie szybsze ni\u017c przypisywanie bajt po bajcie \u2013 dlatego skorzysta\u0142em z macierzy struktur, zamiast z macierzy bajt\u00f3w.<\/p>\n","parent_id":41721,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41721#comment-41778","created_at":"2019-02-09T13:55:20+01:00","updated_at":"2019-02-09T13:55:20+01:00","comments":[],"user":{"id":49548,"name":"furious programming","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/fDAyteG6Up1A7088jM0TZ6Yj7gZX6QLATaFVIOXh.jpg","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IkN2MllENnFVcDB0MnkvTit3NG9BUkE9PSIsInZhbHVlIjoiTmE0VnZtRjlibG56Uy96ZWFicWZhdjFjaUdtRmVkb1BpTVJRSXdYVSs5OGlrdWtrU2RMTTY3blFWVDJ3aTBwNSIsIm1hYyI6Ijk1NTNhZjg0NTU4YWYzNjc0NTE2YjQzYzdhYzI5MzQ3Y2RiYzUwNzg0MDUwN2MxNzA5ZWEyNzE1NDllYWU1NDciLCJ0YWciOiIifQ==","deleted_at":null},"41779":{"id":41779,"votes":0,"views":0,"text":"@{Adam Boduch}: edytowa\u0142em jeszcze kilka razy ten wpis, ale jedyne co poprawi\u0142em to tre\u015b\u0107 w paragrafach, a to raczej nie mia\u0142o wp\u0142ywu na uk\u0142ad wpisu na stronie. Nie wiem dlaczego tak si\u0119 dzia\u0142o, ale chyba nadal jest \u017ale \u2013 rano @Hispano-Suiza zauwazy\u0142, \u017ce mu si\u0119 ten wpis rozje\u017cd\u017ca.","html":" @Adam Boduch<\/a>: edytowa\u0142em jeszcze kilka razy ten wpis, ale jedyne co poprawi\u0142em to tre\u015b\u0107 w paragrafach, a to raczej nie mia\u0142o wp\u0142ywu na uk\u0142ad wpisu na stronie. Nie wiem dlaczego tak si\u0119 dzia\u0142o, ale chyba nadal jest \u017ale \u2013 rano @Hispano-Suiza<\/a> zauwazy\u0142, \u017ce mu si\u0119 ten wpis rozje\u017cd\u017ca.<\/p>\n","parent_id":41721,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41721#comment-41779","created_at":"2019-02-09T14:02:48+01:00","updated_at":"2019-02-09T14:02:48+01:00","comments":[],"user":{"id":49548,"name":"furious programming","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/fDAyteG6Up1A7088jM0TZ6Yj7gZX6QLATaFVIOXh.jpg","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IjVMc2srbDZWbno1dGU4eDNsZWR1YlE9PSIsInZhbHVlIjoiVDdlSXBBMzJRZXpkWGp2ckc2NEhGQmZEdk9Zb3YrTmcwOVJHZHFKK2F5eFI1RCtWQ1ozUDMwaU10ZTZGdVF0KyIsIm1hYyI6IjJkODkxZDk4N2I5NzMyMTFkNDNhMmNhOWEzYzBiM2FlNjUyY2RmODBmN2U3MjNhZmRlODU3NDQ3OTJmY2I5NzgiLCJ0YWciOiIifQ==","deleted_at":null},"41780":{"id":41780,"votes":0,"views":0,"text":"https:\/\/www.wykop.pl\/cdn\/c3201142\/comment_eUD91FQm5qszZJQ4OAuMVUcF8UoLDOPx.jpg","html":" https:\/\/www.wykop.pl\/cdn\/c3201142\/comment_eUD91FQm5qszZJQ4OAuMVUcF8UoLDOPx.jpg<\/a><\/p>\n","parent_id":41721,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41721#comment-41780","created_at":"2019-02-09T14:09:57+01:00","updated_at":"2019-02-09T14:09:57+01:00","comments":[],"user":{"id":78956,"name":"Hispano-Suiza","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/5c\/5c26743c1c2bd.png","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6ImVkamxiaEJmK2FBNFE3UURpS3RYcWc9PSIsInZhbHVlIjoiNnJFcHZGd21hM0dzMjNJYnQ1WUVwZ1VwUmNDM240b3AwdVV0eGI5OG9FWkdiSFk3cSszODZNNGp3ekp4VDlnMiIsIm1hYyI6IjgzYTFhMTI4ZDViMzgzYTQ0ZGZhN2EzZWI5OGEyYzE5ZmMwNzM5NTg0MjI3YzM4NTZiNmQ1ODA4OTEzZWUwNmYiLCJ0YWciOiIifQ==","deleted_at":null},"41781":{"id":41781,"votes":0,"views":0,"text":"za\u0142o\u017cy\u0142em w\u0105tek na ten temat \u2013 **https:\/\/4programmers.net\/Forum\/Coyote\/322550-rozjezdzanie_sie_wpisu_na_mikroblogu**.","html":" za\u0142o\u017cy\u0142em w\u0105tek na ten temat \u2013 Rozje\u017cd\u017canie si\u0119 wpisu na mikroblogu<\/a><\/strong>.<\/p>\n","parent_id":41721,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41721#comment-41781","created_at":"2019-02-09T14:14:48+01:00","updated_at":"2019-02-09T14:14:48+01:00","comments":[],"user":{"id":49548,"name":"furious programming","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/fDAyteG6Up1A7088jM0TZ6Yj7gZX6QLATaFVIOXh.jpg","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6InhFU0t2ODNsbWZDVmRKWHFHdlVwUlE9PSIsInZhbHVlIjoiQWkvN1RDMnFTMHBpU3F1NTM0aWRwa2pRRllCZGhrTkFXM3JORis0d2FIT2ZFYXN5Ukd2WjdmTTBQYWhWbnk3cSIsIm1hYyI6IjNjYzllNmE5ZTk3NTIyZjU2YmMwZGNiMDI2NDZhOGNlMjNhM2U3MmUyMjE4N2ZlZWZlZjE3ODdlZjZiYjY3OGYiLCJ0YWciOiIifQ==","deleted_at":null},"41786":{"id":41786,"votes":0,"views":0,"text":"@{furious programming}: -_- no to teraz popatrz w ten spos\u00f3b masz x - pixeli w linii czyli 3\\*x bajt\u00f3w czyli mo\u017cesz po prostu przeliczy\u0107 w spos\u00f3b kt\u00f3ry poda\u0142em (x \\* 3) \/ 4 bloki, a ostatnie max 3 bajty przeliczy\u0107\u00a0w tradycyjny spos\u00f3b... albo pro\u015bciej dope\u0142ni\u0107\u00a0scanline do podzielnych przez 4 i wtedy w og\u00f3le usuwasz ten problem.\r\nBtw. Paleta o kt\u00f3rej piszesz na pewno nie by\u0142 by szybsza, randomowy dost\u0119p do pami\u0119ci palety spowodowa\u0142by tylko i wy\u0142\u0105cznie problem z cache procesora, dost\u0119p w ten spos\u00f3b do pami\u0119ci nigdy nie b\u0119dzie szybszy ni\u017c prosta operacja matematyczna wykonana w cyklu procesora.\r\nPaleta ma sens tylko dla skomplikowanych wylicze\u0144.","html":" @furious programming<\/a>: -_- no to teraz popatrz w ten spos\u00f3b masz x - pixeli w linii czyli 3*x bajt\u00f3w czyli mo\u017cesz po prostu przeliczy\u0107 w spos\u00f3b kt\u00f3ry poda\u0142em (x * 3) \/ 4 bloki, a ostatnie max 3 bajty przeliczy\u0107\u00a0w tradycyjny spos\u00f3b... albo pro\u015bciej dope\u0142ni\u0107\u00a0scanline do podzielnych przez 4 i wtedy w og\u00f3le usuwasz ten problem. Nie mog\u0119 \u201edope\u0142ni\u0107 ScanLine\u201d, bo wska\u017anik na blok pami\u0119ci z danymi pikseli ma sta\u0142y rozmiar i zarz\u0105dzany jest przez klas\u0119 bitmapy. Je\u015bli go dope\u0142ni\u0119 to nadpisz\u0119 dane innych linii (lub \u015bmieci w pami\u0119ci), co mo\u017ce popsu\u0107 bitmap\u0119, spowodowa\u0107 wyj\u0105tek i\/lub wykrzaczy\u0107 proces. Tego typu obliczenia da si\u0119 zastosowa\u0107 tylko w pewnych przypadkach.<\/p>\n Aby procedurka by\u0142a uniwersalna i zarazem efektywna, liczba iteracji p\u0119tli powinna by\u0107 niska. Dlatego modyfikacja sk\u0142adowych przebiega porcjami po trzy bajty. Je\u015bli skorzystam z Twojej sugestii to strac\u0119 uniwersalizm, a je\u015bli b\u0119d\u0119 iterowa\u0142 bajt po bajcie to strac\u0119 efektywno\u015b\u0107. Tak wi\u0119c to co poda\u0142em jest odpowiednim kompromisem, zapewniaj\u0105cym i jedno i drugie.<\/p>\n","parent_id":41721,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41721#comment-41787","created_at":"2019-02-09T18:05:36+01:00","updated_at":"2019-02-09T18:05:36+01:00","comments":[],"user":{"id":49548,"name":"furious programming","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/fDAyteG6Up1A7088jM0TZ6Yj7gZX6QLATaFVIOXh.jpg","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IjVZVkRwODhpdFRxM1YwQU96a3VaVXc9PSIsInZhbHVlIjoic1diUVY3SkNwa0pwM1NVM200NnNQcWdUZWJvZmJJcURTR21mM2lUOWh2ZU1KbWk3L0dzeGdCV0JqbytZcThNdCIsIm1hYyI6ImY4MGVlZDJmZGUzOTFkMjZmNjk3YzJmNzE2YzdlYjU2Zjk3YTdhZmI5MGJiZjEyNTRiNTY0OGI5MjQ5ZjM1NjUiLCJ0YWciOiIifQ==","deleted_at":null},"41788":{"id":41788,"votes":0,"views":0,"text":"@{furious programming}: czytasz w og\u00f3le co pisze? Czy musze wklei\u0107 fragment kodu kt\u00f3ry b\u0119dzie uniwersalny i b\u0119dzie spe\u0142nia\u0107 24bpp ?","html":" @furious programming<\/a>: czytasz w og\u00f3le co pisze? Czy musze wklei\u0107 fragment kodu kt\u00f3ry b\u0119dzie uniwersalny i b\u0119dzie spe\u0142nia\u0107 24bpp ?<\/p>\n","parent_id":41721,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41721#comment-41788","created_at":"2019-02-09T18:07:27+01:00","updated_at":"2019-02-09T18:07:27+01:00","comments":[],"user":{"id":52045,"name":"xxx_xx_x","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/5c\/5c5ffd80b4272.jpg","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IkFWcDRBblEyczNENmNZSWNSb1pLWUE9PSIsInZhbHVlIjoiWWhtRHJqVWxpMDFMS3dwMGhCMWR3Qk4wZ2UwaCtqVzl0VVdKYmRNNFc3Q2RhbUFWa2Z2aWtyN0w0S2k1a1V4ZyIsIm1hYyI6IjQ3MWZmMjY1OTMxMTEyYzM1NDQ1MWNkOWUyZTM1M2VkZTAxZWUyYzllZTcwNzM0MWJkOTA2YzI2MzAxNjdhMjciLCJ0YWciOiIifQ==","deleted_at":null},"41789":{"id":41789,"votes":0,"views":0,"text":"No wklej, bo wida\u0107 nie \u0142api\u0119 tego co masz na my\u015bli.","html":" No wklej, bo wida\u0107 nie \u0142api\u0119 tego co masz na my\u015bli.<\/p>\n","parent_id":41721,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41721#comment-41789","created_at":"2019-02-09T18:10:40+01:00","updated_at":"2019-02-09T18:10:40+01:00","comments":[],"user":{"id":49548,"name":"furious programming","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/fDAyteG6Up1A7088jM0TZ6Yj7gZX6QLATaFVIOXh.jpg","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6InBNYjNZMFJvcEsxa0tMVHBISmFpalE9PSIsInZhbHVlIjoiY1ZMaENrKzRCWG5BMGk5SlFFTTNnRnVPRGZZd3hjdzgvakRMajVCdEthSVhEVzRORnQrNk1vcHdZYkMxSHdYVSIsIm1hYyI6ImFjMzVkMGMwZDNjM2NjMmZlMjE3NGNjMmRlODJkN2IwZWQ0Nzc2NzE0ZTFhZWJkZWUxNTg2OTFmMDFjZDRiNTAiLCJ0YWciOiIifQ==","deleted_at":null},"41790":{"id":41790,"votes":0,"views":0,"text":"ok, p\u00f3\u017aniej wklej\u0119 mo\u017ce na mikro opisz\u0119\u00a0ten spos\u00f3b.","html":" ok, p\u00f3\u017aniej wklej\u0119 mo\u017ce na mikro opisz\u0119\u00a0ten spos\u00f3b.<\/p>\n","parent_id":41721,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41721#comment-41790","created_at":"2019-02-09T18:14:09+01:00","updated_at":"2019-02-09T18:14:09+01:00","comments":[],"user":{"id":52045,"name":"xxx_xx_x","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/5c\/5c5ffd80b4272.jpg","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6InB3U0dOckpzU09ubkkyVTE3MHVwdkE9PSIsInZhbHVlIjoiNzVaM1lFdFk1aUJsVlExRFF2eGpKcU9FdENqbmVzSXJSaVZIUzRhS0RTMDJJVDBBV0hQY0RLUVJKRlRWU3piVyIsIm1hYyI6ImY0NGY3ZWRjZTY0N2M5NWIxYjMyZTc0NWVjMjFlMzRhOTc2OTNiNDJjZGZhYzExNmZmYTA5M2FmYzY5YzViMTUiLCJ0YWciOiIifQ==","deleted_at":null},"41791":{"id":41791,"votes":0,"views":0,"text":"Co do tej palety to mylisz si\u0119. Spos\u00f3b zaproponowany przez @\u0141F jest szybszy \u2013 przetestowa\u0142em go i faktycznie jego efektywno\u015b\u0107 jest nieco wy\u017csza w stosunku do tego co poda\u0142em we wpisie (czyli sam `shr 1`), bez zmiany konstrukcji p\u0119tli.","html":"
\nKt\u00f3ry\u015b element si\u0119 rozpycha, ale jak klikn\u0119 poka\u017c ca\u0142o\u015b\u0107, to szeroko\u015b\u0107 strony wraca do normy.
\nPo prostu te ukryte elementy widocznie nie s\u0105 zw\u0119\u017cane i si\u0119 robi co b\u0105d\u017a.<\/p>\n","parent_id":41721,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41721#comment-41752","created_at":"2019-02-08T13:24:43+01:00","updated_at":"2019-02-08T13:24:43+01:00","comments":[],"user":{"id":2027,"name":"Spine","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/t6WNZBg287b5LMJ3bcLhxcQT4ufWI5sIhyCKEgbs.jpg","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IkF2R0RjdnY3SzI1N3VhZ0NwRUp1WXc9PSIsInZhbHVlIjoiS0ZuUFg1S1JyeC9SQ01sa3ZBZEI5UHEzWGNiVVFzUUJ4Z0N2QUtCbmVnc05ZRitjaVNSUVgzUGs3NEhFWk5oRSIsIm1hYyI6IjMxZDU3N2IzNGM4NjAxZDFkMzI5YzQzYmRkMTJhNzRjYjIzNGUyYTc2MGYwZTliOTQwYWI3YTBiNDRhZGVhOTYiLCJ0YWciOiIifQ==","deleted_at":null},"41755":{"id":41755,"votes":1,"views":0,"text":"@vpiotr i @Desu: wsz\u0119dzie si\u0119 rozje\u017cd\u017ca (i na PC i na mobilnych), ale tylko w postaci zwini\u0119tej \u2013 po rozwini\u0119ciu wszystko gra. Obstawiam, \u017ce problemem s\u0105 linie horyzontalne (markdownowy znacznik `----`).\r\n____\r\n\r\n@Spine: tego typu operacje graficzne mo\u017cna z powodzeniem zastosowa\u0107 r\u00f3wnie\u017c w aplikacjach okienkowych. Nie mam na my\u015bli akurat efektu linii skanowania (cho\u0107 zawsze by si\u0119 znalaz\u0142o zastosowanie), ale og\u00f3lnie wszystko co na temat grafiki wypisuj\u0119 na blogu. No a typowe \u015brodowisko okienkowe nie jest zbyt efektywne, je\u015bli o obr\u00f3bk\u0119 grafiki chodzi, dlatego wol\u0119 poda\u0107 wersj\u0119 jak najbardziej wydajn\u0105, a dla mniej wymagaj\u0105cych dodatkowo poda\u0142em og\u00f3lne, bardziej elastyczne wzory.\r\n\r\nZ tymi liniami skanowania jest taki problem, \u017ce silnik mojej gry nie posiada zdefiniowanego mechanizmu post-processingu. Musia\u0142bym go dorobi\u0107, a jest przy tym troch\u0119 roboty. Wczoraj, przed napisaniem tego artyku\u0142u, przeanalizowa\u0142em kod projektu i trzeba by troch\u0119 kodu napisa\u0107, cho\u0107 to akurat da si\u0119 na spokojnie w dwie-trzy godzinki zrobi\u0107.\r\n\r\nBardziej przeszkadza mi to, \u017ce efekt ten nie pasuje do innych rozdzielczo\u015bci okna ni\u017c rozmiar domy\u015blny \u2013 trzykrotne powi\u0119kszenie, do kt\u00f3rego pasuje spos\u00f3b malowania linii, kt\u00f3ry opisa\u0142em wy\u017cej. Dla innych wielko\u015bci okna, linie skanowania nie b\u0119d\u0105 pasowa\u0107 do pikseli i albo trzeba by je renderowa\u0107 w nieco inny spos\u00f3b (dla powi\u0119kszenia czterokrotnego inkrementowa\u0107 licznik p\u0119tli o `4`, a nie o `3` jak wy\u017cej). Przy czym dla trybu pe\u0142noekranowego nie da si\u0119 tego zrobi\u0107, ze wzgl\u0119du na skalowanie klatki.\r\n\r\nNo i nie wiem teraz co robi\u0107 \u2013 czy rozbudowa\u0107 kod o ten mechanizm, czy nie. A je\u015bli to zrobi\u0107, to na sztywno malowa\u0107 linie w ten sam spos\u00f3b (ciemna, jasna, oryginalna itd.) dla wszystkich rozmiar\u00f3w okna, czy mo\u017ce selektywnie, wzgl\u0119dem rozdzielczo\u015bci (lub w og\u00f3le, dla rozmiaru natywnego i powi\u0119kszenia dwukrotnego). Bardziej sk\u0142ania\u0142bym si\u0119 ku opcji drugiej, co wymaga\u0142oby kilku wersji procedury maluj\u0105cej linie skanowania:\r\n\r\n- rozmiar natywny okna \u2013 brak linii,\r\n- powi\u0119kszenie dwukrotne \u2013 tylko ciemne linie, malowane w co drugiej linii,\r\n- powi\u0119kszenie trzykrotne \u2013 jak w artykule: ciemna, jasna, niezmieniona itd.,\r\n- powi\u0119kszenie czterokrotne \u2013 tu podobnie: ciemna, jasna, dwie niezmienione itd.,\r\n- pe\u0142en ekran \u2013 brak linii.","html":"----<\/code>).<\/p>\n
\n4<\/code>, a nie o
3<\/code> jak wy\u017cej). Przy czym dla trybu pe\u0142noekranowego nie da si\u0119 tego zrobi\u0107, ze wzgl\u0119du na skalowanie klatki.<\/p>\n
\n
\nBtw. Paleta o kt\u00f3rej piszesz na pewno nie by\u0142 by szybsza, randomowy dost\u0119p do pami\u0119ci palety spowodowa\u0142by tylko i wy\u0142\u0105cznie problem z cache procesora, dost\u0119p w ten spos\u00f3b do pami\u0119ci nigdy nie b\u0119dzie szybszy ni\u017c prosta operacja matematyczna wykonana w cyklu procesora.
\nPaleta ma sens tylko dla skomplikowanych wylicze\u0144.<\/p>\n","parent_id":41721,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41721#comment-41786","created_at":"2019-02-09T17:55:30+01:00","updated_at":"2019-02-09T17:55:30+01:00","comments":[],"user":{"id":52045,"name":"xxx_xx_x","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/5c\/5c5ffd80b4272.jpg","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IldyRkJHclJVNkV2bGJjVWEwbW1EL0E9PSIsInZhbHVlIjoiS3ZETHZtSkNhSSsyNEIvNFZGL3AyM1FLeldMZ1JVaHJUVGtqaE5FNGR5cmF3MitHTHpYZHVac3A1dnZ5MVArMyIsIm1hYyI6IjMxZWRhOGM0MGNjM2U2NzlhMzBmNTQ4YjNlZmExYmNhMDFkN2Y0NTUwY2U1N2U3NWUzM2IxNGZmZDExNDc4ZjAiLCJ0YWciOiIifQ==","deleted_at":null},"41787":{"id":41787,"votes":0,"views":0,"text":"Nie mog\u0119 \u201edope\u0142ni\u0107 ScanLine\u201d, bo wska\u017anik na blok pami\u0119ci z danymi pikseli ma sta\u0142y rozmiar i zarz\u0105dzany jest przez klas\u0119 bitmapy. Je\u015bli go dope\u0142ni\u0119 to nadpisz\u0119 dane innych linii (lub \u015bmieci w pami\u0119ci), co mo\u017ce popsu\u0107 bitmap\u0119, spowodowa\u0107 wyj\u0105tek i\/lub wykrzaczy\u0107 proces. Tego typu obliczenia da si\u0119 zastosowa\u0107 tylko w pewnych przypadkach.\r\n\r\nAby procedurka by\u0142a uniwersalna i zarazem efektywna, liczba iteracji p\u0119tli powinna by\u0107 niska. Dlatego modyfikacja sk\u0142adowych przebiega porcjami po trzy bajty. Je\u015bli skorzystam z Twojej sugestii to strac\u0119 uniwersalizm, a je\u015bli b\u0119d\u0119 iterowa\u0142 bajt po bajcie to strac\u0119 efektywno\u015b\u0107. Tak wi\u0119c to co poda\u0142em jest odpowiednim kompromisem, zapewniaj\u0105cym i jedno i drugie.","html":"