From 979133f3146d1cf0196bf8213719ad6757caeaf5 Mon Sep 17 00:00:00 2001 From: Sven Vogel Date: Tue, 6 Jul 2021 14:17:53 +0200 Subject: [PATCH] Bug fixes --- Matrix App/Defaults.cs | 2 +- .../PregeneratedMods/MatrixGifGenerator.cs | 8 +++- Matrix App/adds/PortCommandQueue.cs | 6 +-- .../bin/Debug/netcoreapp3.1/Matrix App.dll | Bin 354304 -> 354816 bytes .../bin/Debug/netcoreapp3.1/Matrix App.pdb | Bin 38256 -> 38380 bytes Matrix App/forms/MatrixDesigner.cs | 37 ++++++++++++------ .../obj/Debug/netcoreapp3.1/Matrix App.dll | Bin 354304 -> 354816 bytes .../obj/Debug/netcoreapp3.1/Matrix App.pdb | Bin 38256 -> 38380 bytes 8 files changed, 34 insertions(+), 19 deletions(-) diff --git a/Matrix App/Defaults.cs b/Matrix App/Defaults.cs index ecd9b33..5c19a2f 100644 --- a/Matrix App/Defaults.cs +++ b/Matrix App/Defaults.cs @@ -30,7 +30,7 @@ namespace Matrix_App public const int FilterPreviewWidth = 32; public const int FilterPreviewHeight = 32; - public const int ArduinoSuccessByte = 21; + public const int ArduinoSuccessByte = 75; public const int ArduinoCommandQueueSize = 2; public const int ArduinoReceiveBufferSize = 1 + 1 + 1 + MatrixLimitedWidth * MatrixLimitedHeight; diff --git a/Matrix App/PregeneratedMods/MatrixGifGenerator.cs b/Matrix App/PregeneratedMods/MatrixGifGenerator.cs index 35fcda0..5ecfc79 100644 --- a/Matrix App/PregeneratedMods/MatrixGifGenerator.cs +++ b/Matrix App/PregeneratedMods/MatrixGifGenerator.cs @@ -119,7 +119,13 @@ namespace Matrix_App Text = FieldWidgets.GetBetterFieldName(generator.GetType().Name) }; button.Width = anchor.ClientSize.Width - button.Margin.Right - button.Margin.Left; - button.Click += (sender, e) => OpenGeneratorUi(generator, matrix); + button.Click += (sender, e) => + { + lock (matrix) + { + OpenGeneratorUi(generator, matrix); + } + }; button.Image = CreateSnapshot(generator); button.TextImageRelation = TextImageRelation.ImageBeforeText; button.TextAlign = ContentAlignment.MiddleRight; diff --git a/Matrix App/adds/PortCommandQueue.cs b/Matrix App/adds/PortCommandQueue.cs index 383f6e1..1dd929d 100644 --- a/Matrix App/adds/PortCommandQueue.cs +++ b/Matrix App/adds/PortCommandQueue.cs @@ -72,11 +72,7 @@ namespace Matrix_App } catch (ThreadInterruptedException) { Thread.CurrentThread.Interrupt(); - } - catch (Exception) - { - // omit - } + } } [SecurityPermissionAttribute(SecurityAction.Demand, ControlThread = true)] diff --git a/Matrix App/bin/Debug/netcoreapp3.1/Matrix App.dll b/Matrix App/bin/Debug/netcoreapp3.1/Matrix App.dll index 8f876cabf9f0ae1fe18f2e98ecd317024e6a12ad..84515e2b7ed69dac1140900b635855299e33490c 100644 GIT binary patch delta 15576 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 delta 15288 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 diff --git a/Matrix App/bin/Debug/netcoreapp3.1/Matrix App.pdb b/Matrix App/bin/Debug/netcoreapp3.1/Matrix App.pdb index b3193b22b9e4a3f9d6f8c95c445fce23c9ba8b79..9716389d0ac5043f514f13316fee2efd6e7aa0c8 100644 GIT binary patch delta 5100 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 delta 5102 zcmZ9Q30zdw9>@P@W*la5WEl_;bcRJ)6hU!e6$XvPGPOd*;IRm(z0ww6FA|+m%JQkb z^tR};j7q6o(j1dqv$T{~scGsntz0uwOwBCI;{E>D%XmJ{=kuL=zW@I@=iYP9y=N|5 zSf#tPQuq9Thc?6!#mppH9#3?i0p)wAJvw>H#K#Dq-}(?CL@~wp(hZbzxm-|OGz`bA zB%%S6;CT;Dt%7fVt+M5aYi;iKS2krfL@b#&c=XImUl19`mcL;(TZshf99;N%oNz5{ zDd_Ypw7?r8T7=s#O;5SN1D1jhz)8>wt^s|zfg*tm>;vtu(j7~HHybg|mkW3?` zft*aD@=O!G23CVjU@BpX>&w)lT%4MP|@R*CJ+2uAU=KJ1PJy4m4PdTvP*)HGQb0Bs4#tA&s&4cW z*azBxX+jt34w}H43I4PJYyqZffAX&mpbYSMH4iM18ma?n8JFD@L@TO;D7Geude_(~ z2jqhhU=r9>!wrJzNKG)cfvc*A5Y>i|1M~t(wOuJ4j087N5K0f!hLWe2+eXmR+6Y<= zQYJ>yxQQIQ^-ECL(8(rdxVfF|T*nGJ2 zAnh3A9qU)76RqC&&HJqGmyvsuLg`&>V1rPu(0m=7%RRty_I3g!}h2){|Cdu#C zd_C%O+hp(-@?NcdXZYK<+)W&K=T?9=YrYW;94PbLbG{iKgYr1dKY+)hT&Ve0cmv7_ zU?u8rgY$>?T=oy)T~QteR$=aTsChS08Um|*0iuOYqBUsnk=8*X^6yGM1ilvY*^!?D zUne=A;63=qTKgdQdda)Py&aD8QyADl-F*#sM&6g4r*Wg?;qYe3IsXBCr*^_t_$K(L zn)~55WHY=)^Usmr0{x|aVM z9tiIb--G(cwEnllTU2-7JRx7ze-SvYRp2%MOmh4#(-#!w%kvuV1>b1({ZQT~xe4X{ zl5_q`$vJ<3-7R%+@U{wHNzNS{lAJp@EIH?oNY45HNzVDBl5_rRJWpM*R5&O3 zS@;i|-)*=Z^<$A@I3En>x_nOwcnF+7 zd_j7V>hnzA{|pF(NfnGD$>;TG;RlbB@+Qf7ip^q>FK>ohBoBaFB`<+@hWFI^b7$fN zHUxT0C-4{PKF>gd0Lgg-fsz-%?YN*mTKjh;=S_xxeuI%ulKKz1$#ryfad~2=zIy zajJ0moL{*HO3qtzn&hW%^OKtAqJQ26TQqmU%lMJ-YJofi_+{iB&4Jll~KU>*%AFldE|__`OxojB37J`m5#s zH3M)QsFpvg8H{5Zh*JHTTD~oL+`LWUqAGK6%mq9*aiphWOB^=2mHZ+xs;GSA81Ikq zZ+3FN&)cC=-3-=W8Qtg7p`SiHKi;J%(!uQ!%dj#Jk3eaZRa;U|u6Yb>#+ zj-GaI{S9hs81>3ssZ0KTV9EKhssEV#T%vbE@&Ms{vZ&&*qhaL-E2p-noW8f{xrgo< z`sy3jnFkLq7dPHM@!<_`bIMzK=aO|NpN;r*=ls(TyxiLMZM$>WnDL$?O{K3*AG7t; zq^Al-cxMinouc#1Qbf%(d!Po770 z-&?2_i5)1!^Rz9HLJcPTg{!N>-}yLHQ|&i)J$yvxIlE*szX^!}+UJAFuDDkLBWYGrksh&Uy={-ER=l%JL`5 zM6#l*yC@R8m+NALdlc@AUb8P^NYOg7QUZ?|!|g)B29tq8w9yArln#F{nhh2VSVuh! z?k=RCQOJLEj5d+oRN0yA+)@}G3B*{F8#>uSxUr>U^hpg?TUT|K&_PUt9p{VD;bv8K zO?O5_VY0PZifZU}Q|j;vl-$ryX`fy!VwK|h7*Xu4tAE0RX}B_{UY}SdymQ6IYd0sO zv`#b++(hVcpcPNCPedYpk2l z3u_g9XEGiLr)Q3mJ+HsLG0=~?&A{>rQ(ZpB<@7Wuv*+cDol48RSg}{RIImeal&1N~ zNolqOiV5NwP**$5I4d6!(O+HqfLRl4>P#5AMZLS@8@%l;2qctKnM diff --git a/Matrix App/forms/MatrixDesigner.cs b/Matrix App/forms/MatrixDesigner.cs index 64dea05..6c5bad6 100644 --- a/Matrix App/forms/MatrixDesigner.cs +++ b/Matrix App/forms/MatrixDesigner.cs @@ -524,8 +524,8 @@ namespace Matrix_App matrixView.SetPixelNoRefresh(x, y, pixel); - gifBuffer[i][index * 3] = pixel.G; - gifBuffer[i][index * 3 + 1] = pixel.R; + gifBuffer[i][index * 3 + 0] = pixel.R; + gifBuffer[i][index * 3 + 1] = pixel.G; gifBuffer[i][index * 3 + 2] = pixel.B; } } @@ -547,8 +547,8 @@ namespace Matrix_App int index = x + y * bitmap.Width; - gifBuffer[Timeline.Value][index * 3] = pixel.G; - gifBuffer[Timeline.Value][index * 3 + 1] = pixel.R; + gifBuffer[Timeline.Value][index * 3 + 0] = pixel.R; + gifBuffer[Timeline.Value][index * 3 + 1] = pixel.G; gifBuffer[Timeline.Value][index * 3 + 2] = pixel.B; } } @@ -633,8 +633,8 @@ namespace Matrix_App var color = matrixView.GetPixel(x, y); - gifBuffer[Timeline.Value][tmp] = color.G; - gifBuffer[Timeline.Value][tmp + 1] = color.R; + gifBuffer[Timeline.Value][tmp + 0] = color.R; + gifBuffer[Timeline.Value][tmp + 1] = color.G; gifBuffer[Timeline.Value][tmp + 2] = color.B; } } @@ -756,13 +756,27 @@ namespace Matrix_App int width = data[0]; int height = data[1]; - this.matrixWidth.Value = width; - this.matrixHeight.Value = height; - - for (var x = 0; x < width * height * 3; x++) + matrixWidth.Value = width; + matrixHeight.Value = height; + + for (var y = 0; y < height; y++) { - gifBuffer[0][x] = data[2 + x]; + for (var x = 0; x < width; x++) + { + var i0 = x * 3 + y * width * 3; + + var x1 = height - y - 1; + var y1 = width - x - 1; + + var i1 = x1 * 3 + y1 * width * 3; + + // degamma + gifBuffer[0][i0 + 0] = (byte) MathF.Sqrt(data[i1 + 0 + 2] / 258.0f * 65536.0f); + gifBuffer[0][i0 + 1] = (byte) MathF.Sqrt(data[i1 + 1 + 2] / 258.0f * 65536.0f); + gifBuffer[0][i0 + 2] = (byte) MathF.Sqrt(data[i1 + 2 + 2] / 258.0f * 65536.0f); + } } + Timeline.Value = 1; Timeline.Value = 0; } @@ -835,7 +849,6 @@ namespace Matrix_App gammaImage[i0 + 2] = rgbImageData[i1 + 2]; } } - for (var i = 0; i < rgbImageData.Length; i++) { diff --git a/Matrix App/obj/Debug/netcoreapp3.1/Matrix App.dll b/Matrix App/obj/Debug/netcoreapp3.1/Matrix App.dll index 8f876cabf9f0ae1fe18f2e98ecd317024e6a12ad..84515e2b7ed69dac1140900b635855299e33490c 100644 GIT binary patch delta 15576 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 delta 15288 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 diff --git a/Matrix App/obj/Debug/netcoreapp3.1/Matrix App.pdb b/Matrix App/obj/Debug/netcoreapp3.1/Matrix App.pdb index b3193b22b9e4a3f9d6f8c95c445fce23c9ba8b79..9716389d0ac5043f514f13316fee2efd6e7aa0c8 100644 GIT binary patch delta 5100 zcmZ9O30PF+8pq#nW*BAx5r<{ioWTJ_4Nx{w1Ox@NT=KeQsjLH9rf7E6BnQRoO|nu? zX_-&m(rj@_olLJ{x5YHYHZm{PM(a=>HEZUSX%$Zpj`VmURFPxMDC&>$04^7d88QgxDtP5& zc<$8cCGf;mRj*YnsLiiyC~w+ejl2-wz0ctN{*-vCpFp5j4D z20D^qpcla#U^Cbb>cD5i~`Q@1?7mNnQU=G*`eg{{dYKN;iOb*h-y%1M~$aLBS(dY5|24tTb;z7)4GDqX#Eq^?8mkdJMh`oC9|z zhPfzzQW#YLM`0L^0!}cqkh43};zB#^1@)i-{0L5fGoTq<1-F2<$WA5@2yCEdQ8ZbL zyHIYijVeJEP{3-i9&7_2frG^^8y!KR2{eP7z))hNV9*65g8pC#7z;{4C3qUtmV{Fs zxC$(#;gnF?fd+y@;JeZQItEUHgt7oiE$c`{U`-i!ERfzU3#7eVc2Os)FY842J3G-x zr-htgDtH1s56(IHf*`u>3?fT;5QUes2UFMbV9EnS!Km^ODg;l0wgy6JS$Qa}_vA*< zC*={;0LE5C()otP>laO7w8oPYMmxQ^VRX<_4yT@zk!ZC< zP=9PbL=iMhJx_9v^PQ*>r`_9)Uz=T-f@m#;(q?R6eUYbCeG9x4{t4jtR`{bRzpwf> z_)L^v0qYR|5YC4kyd`-ke7)quRo{X9&OEA#sCXL*JJlQb!QZ*Z-<5n9;_SPTZ$p{q zhP@8%K=~on_rS4L(_qyE~qvXr& zM4OPmPmT9Le6!?P@b@v^?eS^wEt2#7x5D@H^=KdKifCJV1QBEUI#y{I`?o7 z{Cm~8fsZg5?YPJY2w+iGlwc;pln1=EuPo0f^P#fSW+KU^sJ5ST+ zlJlb6CwUk6e#y<6HgClJOz12xbdLW*F1#~Qk%WpbP;o+S@FVyE$@!rU!cVGkp7VOi z@xGuhDcT$7IsOVXsrkMre=WHIjWk z8B}B;IJ>QaeupoFC&PcDu5=d8$5imM(>`B@h#E=d*V;D1W~2mG?+ z=iyf*zW~1~c{99K@)r1Cl3#>hliYO)71yPTKjAkdzYM=A`4#vr$*)omx~=+lj8LoO z>)?OE@2K%&_%%3*wkgHN=R)I{DYfDb64!1VL5Sga7@Tt>(LM=OgrkBFEPV7n+3Wa5CmlRWit9zZ*Q;=WFTAT1H%QL!7Nbb> z#*J{3J2l{fIqyK)Ifmf>-B!f?>5|X3_f+Y{f1tF62+c8x1^XBtDVTGr*KQKHDo+jNdLh@L|BfXCC=O^wgvb-1c zhT9~cf|mz-2Hz0LGu3$idpr|96Y&x?o^_9B!w)0ASd9;0cc~S2G?0S|K6uF32g3RD zDFH-_TpFatgW+)^)ayLQ$-?G!e!Hbg&RcW3SuaMWszuV$>K zcQWSF&&qS%Y%Wt@eoYBV>u2(u+dh2+J($5yCFtK7ym|$#$l)QtNahB4&d=oY2ZEr4 z5&X1*rjF-DB&c~j@8NtU1D9k=uYqR=PK>mO|zrij>HsU_icRq^4QfCD|R$qTU3;JOz-r2^!2As zj6E|n%QvvTX=|B#cCWX!_PM7YYF&B%Yio|JT>Mz&o4V}E<8^l?>FaOQtr_#hw&Z$p zXQeFcC1xw1md!E>&0Ow;|0rdMGhLJ^3!T|fbNtPetigw9kOo`3jaLoQBC)vyS1(W+ zosnXRa?=^-Smn>(s+Q_C{zgt<395dhO#<=F6i~h1onM|QM3j3`MTig?%Bz$6>!QT& z4EOQLMtwk~_?U7Q3-<=$zKBZY^0Xq6;T}DGi7w5DYd@y^Sk#LhMlSXi?p@-8EnLjz zpOM-)?S0x9E>;@xv#|Q4+cN7Bo#?7epEFS;D__oO7V+-7xelSJu2xPw72*n{Ae})+ z!Q8EId>T@u20uof344GK&IT=?Z9119S-IDt8ZuC{4(nxv9v?p=GX zhFcxJ=$e!^nTxk(VokR4%Dge6i_$XBAxhkqsyQZ%&(g(J+8#B+y+nN2+BQlPUKcx3 zd7wU~30wJRpEgDt=NXd)!<3}jSq8mMgHO2b9hA+r5go>L#dIY+kcdTXuU@JgtxdA5 z5A>z*r!j-VFgG8MZm-^`L_V7@4k)G1#)!kpGtcf2vC4p@iSb$f-O163JL#EltA4>y z)QBX{>~~x+#oyCeJwG01bj{M2@x-amtb|O2dn<3Hm=+;!3yx delta 5102 zcmZ9Q30zdw9>@P@W*la5WEl_;bcRJ)6hU!e6$XvPGPOd*;IRm(z0ww6FA|+m%JQkb z^tR};j7q6o(j1dqv$T{~scGsntz0uwOwBCI;{E>D%XmJ{=kuL=zW@I@=iYP9y=N|5 zSf#tPQuq9Thc?6!#mppH9#3?i0p)wAJvw>H#K#Dq-}(?CL@~wp(hZbzxm-|OGz`bA zB%%S6;CT;Dt%7fVt+M5aYi;iKS2krfL@b#&c=XImUl19`mcL;(TZshf99;N%oNz5{ zDd_Ypw7?r8T7=s#O;5SN1D1jhz)8>wt^s|zfg*tm>;vtu(j7~HHybg|mkW3?` zft*aD@=O!G23CVjU@BpX>&w)lT%4MP|@R*CJ+2uAU=KJ1PJy4m4PdTvP*)HGQb0Bs4#tA&s&4cW z*azBxX+jt34w}H43I4PJYyqZffAX&mpbYSMH4iM18ma?n8JFD@L@TO;D7Geude_(~ z2jqhhU=r9>!wrJzNKG)cfvc*A5Y>i|1M~t(wOuJ4j087N5K0f!hLWe2+eXmR+6Y<= zQYJ>yxQQIQ^-ECL(8(rdxVfF|T*nGJ2 zAnh3A9qU)76RqC&&HJqGmyvsuLg`&>V1rPu(0m=7%RRty_I3g!}h2){|Cdu#C zd_C%O+hp(-@?NcdXZYK<+)W&K=T?9=YrYW;94PbLbG{iKgYr1dKY+)hT&Ve0cmv7_ zU?u8rgY$>?T=oy)T~QteR$=aTsChS08Um|*0iuOYqBUsnk=8*X^6yGM1ilvY*^!?D zUne=A;63=qTKgdQdda)Py&aD8QyADl-F*#sM&6g4r*Wg?;qYe3IsXBCr*^_t_$K(L zn)~55WHY=)^Usmr0{x|aVM z9tiIb--G(cwEnllTU2-7JRx7ze-SvYRp2%MOmh4#(-#!w%kvuV1>b1({ZQT~xe4X{ zl5_q`$vJ<3-7R%+@U{wHNzNS{lAJp@EIH?oNY45HNzVDBl5_rRJWpM*R5&O3 zS@;i|-)*=Z^<$A@I3En>x_nOwcnF+7 zd_j7V>hnzA{|pF(NfnGD$>;TG;RlbB@+Qf7ip^q>FK>ohBoBaFB`<+@hWFI^b7$fN zHUxT0C-4{PKF>gd0Lgg-fsz-%?YN*mTKjh;=S_xxeuI%ulKKz1$#ryfad~2=zIy zajJ0moL{*HO3qtzn&hW%^OKtAqJQ26TQqmU%lMJ-YJofi_+{iB&4Jll~KU>*%AFldE|__`OxojB37J`m5#s zH3M)QsFpvg8H{5Zh*JHTTD~oL+`LWUqAGK6%mq9*aiphWOB^=2mHZ+xs;GSA81Ikq zZ+3FN&)cC=-3-=W8Qtg7p`SiHKi;J%(!uQ!%dj#Jk3eaZRa;U|u6Yb>#+ zj-GaI{S9hs81>3ssZ0KTV9EKhssEV#T%vbE@&Ms{vZ&&*qhaL-E2p-noW8f{xrgo< z`sy3jnFkLq7dPHM@!<_`bIMzK=aO|NpN;r*=ls(TyxiLMZM$>WnDL$?O{K3*AG7t; zq^Al-cxMinouc#1Qbf%(d!Po770 z-&?2_i5)1!^Rz9HLJcPTg{!N>-}yLHQ|&i)J$yvxIlE*szX^!}+UJAFuDDkLBWYGrksh&Uy={-ER=l%JL`5 zM6#l*yC@R8m+NALdlc@AUb8P^NYOg7QUZ?|!|g)B29tq8w9yArln#F{nhh2VSVuh! z?k=RCQOJLEj5d+oRN0yA+)@}G3B*{F8#>uSxUr>U^hpg?TUT|K&_PUt9p{VD;bv8K zO?O5_VY0PZifZU}Q|j;vl-$ryX`fy!VwK|h7*Xu4tAE0RX}B_{UY}SdymQ6IYd0sO zv`#b++(hVcpcPNCPedYpk2l z3u_g9XEGiLr)Q3mJ+HsLG0=~?&A{>rQ(ZpB<@7Wuv*+cDol48RSg}{RIImeal&1N~ zNolqOiV5NwP**$5I4d6!(O+HqfLRl4>P#5AMZLS@8@%l;2qctKnM