From d4b7b6baf00eeb1cc2bcdc2ea4869c3653b485a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Thu, 17 Sep 2020 11:53:27 +0200 Subject: [PATCH] [ion] Simulator: key layouts assets are PNG instead of JPG I (fix macos) --- ion/src/simulator/assets/horizontal_arrow.jpg | Bin 1530 -> 0 bytes ion/src/simulator/assets/horizontal_arrow.png | Bin 0 -> 11397 bytes ion/src/simulator/assets/large_squircle.jpg | Bin 1569 -> 0 bytes ion/src/simulator/assets/large_squircle.png | Bin 0 -> 11630 bytes ion/src/simulator/assets/round.jpg | Bin 2086 -> 0 bytes ion/src/simulator/assets/round.png | Bin 0 -> 12416 bytes ion/src/simulator/assets/small_squircle.jpg | Bin 1456 -> 0 bytes ion/src/simulator/assets/small_squircle.png | Bin 0 -> 11028 bytes ion/src/simulator/assets/vertical_arrow.jpg | Bin 1527 -> 0 bytes ion/src/simulator/assets/vertical_arrow.png | Bin 0 -> 11157 bytes ion/src/simulator/macos/images.m | 32 ++++++++++-------- ion/src/simulator/shared/apple/helpers.mak | 12 +++---- ion/src/simulator/shared/layout.cpp | 15 ++++---- ion/src/simulator/shared/platform.h | 2 +- 14 files changed, 32 insertions(+), 29 deletions(-) delete mode 100644 ion/src/simulator/assets/horizontal_arrow.jpg create mode 100644 ion/src/simulator/assets/horizontal_arrow.png delete mode 100644 ion/src/simulator/assets/large_squircle.jpg create mode 100644 ion/src/simulator/assets/large_squircle.png delete mode 100644 ion/src/simulator/assets/round.jpg create mode 100644 ion/src/simulator/assets/round.png delete mode 100644 ion/src/simulator/assets/small_squircle.jpg create mode 100644 ion/src/simulator/assets/small_squircle.png delete mode 100644 ion/src/simulator/assets/vertical_arrow.jpg create mode 100644 ion/src/simulator/assets/vertical_arrow.png diff --git a/ion/src/simulator/assets/horizontal_arrow.jpg b/ion/src/simulator/assets/horizontal_arrow.jpg deleted file mode 100644 index 248143985dc5137e0e97a8c286376ad6e7a58bf2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1530 zcmex=ma3|jiIItm zOAI4iKMQ#V{6EAX$iWcJ(7?>7#K0uT$SlbC{|JLD&<9LR%plLe00$=vJ2NXA6XX9| z3>*-N`DbgH7l(KKtll2wEKQl$0Ca^2 zvi%TufGuYdfH{f*k1A#qRSp6Sj4X^yOss62Jj`J2j7-cdtZeLp3>=CEhK`9s!XgSr zNdlru%1(jFMU4(Fg~d(HEt3~*+_d@Np^H#YGuku!Fy#(2sMTvwdphl;^E-uACTt94 zG5tI4UwyBg@^S9x`Ez4+f9&uriQ=$T)ZaBxFH?T|C*h;dmS*vJJ?`FnHg6g0w{1_Z z*Ia*aLs7X^(>pNeO330{o_Bs-jm!&mc@($gWNw1Rt zPf7s$mNQ>i?6>du?I8OnO!U~4&+HAa7DYG4tA1M;N-!diTYyPqnmX_yFyydfN@5Z{)p5@&ACnjv#y5>K_gLkqG zr8#zg!f#HNd@fl#b?LFYxvtz!m&&<3WfhulR6N~2)AZ@<&W7ik+>hU836EI6!0)$u z-SYno=O0{~>({yDhsvLh7R!{EU%Ym_dQ%qNykLGIgQ#|Qb+-0v%kSpGGSd@HzwTH3 z?)SRz=-iXG+5G!Ozoi_j%-MJ9(qlifMN=1MTDPk7O>lh4-WR_$R%&^}(fO8F{?taf zXor-qywX46$A^-_v;PYA^at}9%3jLexZ;t4?6K$v7N7nzY_j?nWE^f-8{X>k`iR4c z88Pg^cb{M4?$Q4@CrzCDgwdIKUyn}JI(98(Q+>><>DM2XonCmVaQC(=LA!o?6dja3 z+8(t3M2_OlSi2JTwsUS1UUSQR&eF84;pp?9%g3!;u3~pvL+*1Ir%bVM=g#)mY{~p* zMcn4=+&XG|Dy#h5+&w~@g0H_|(|H!V`i5&k&dQF<7n9Xr@f`g5iNC4Ksp8phZ`sp@ z8b9~iB<+qVRG!hR-69OUVig; z_hZFlMlyZ}Ppz3YEj8te@a~{l!6}XR=Kd0yFL>optI@Gwf$T@NTG6LCGTWqs`z#jU znX*L4U&{UDKgX&s(R+P9z0z{z7VS{JyrjbN&Z&wO%U2#>tr&FiKpJm}S+kFOqM}AF z^FRN}uX!spK3Qb1JE8e7(m6a^Si<@3zq!-+rCu+xitTeOI@T|oCDXcK&9o&aIoJ=f zo>wU}++wQv?6$P3wgP{&L&;&bvpGt}lLLQciMTz!6rcUq+h5`wYipv9SYb}mu8k@= sTaPDdmY(1DeB1sbzvhF=4nd?64qPe(KuQ=!U`}_&qX1Ymf)v~Y09WZ(egFUf diff --git a/ion/src/simulator/assets/horizontal_arrow.png b/ion/src/simulator/assets/horizontal_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..37c38df24526e1cdf765ed227e510f9368a55a64 GIT binary patch literal 11397 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 G!T$>%!9@lD literal 0 HcmV?d00001 diff --git a/ion/src/simulator/assets/large_squircle.jpg b/ion/src/simulator/assets/large_squircle.jpg deleted file mode 100644 index cb729b6b9fa7a0a0eeafd99a8d481699fa2454d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1569 zcmex=ma3|jiIItm zOAI4iKMQ#V{6EAX$ia}oFprs0iGfLwky()O{}BdRpbwasm_eR_0S-0k-ap(g@0MO+VZ*_tI#uE4E%m)RBuLHc)`Gz%NOfj)ycr{RqxZrWDf?W z+JpZY1Q-~nKH9^;V4XUngMqm$=SK$v!^WT7-v1d4806MIdNTDbQv*Y!&Gpi?FFY7z zmw)-kahK&w{sYE$?|Eeb? zmZnehERG*t&NZRzp!t>4tF9gK`8Lb;jGfn19*)iIU)Sd_hZfZOHKjf>@7?!GNaT;X z?UZfyg^T|)EIewL+u9>FL+H(#rJIF#!lr!byV;GeQ@p#ZB?WSnb#!M6-qGFB{7Z0K<9k4~yWioJX1Deo!k-E!Efd8LFYTP%kvTe6JGCc9_e zb&J>j5iz^B->6vg>g^2PT|QE56T=St+LiJ3p6y>F_uxD2COTecHe~iU9J-nJNF(xr z&=P^e_tkFdE_!cd{d>7c$Zl@Upexnh@22zr{c2;cHMb*je=1{^_qt;tMeYxSF72P5 z#GxYiQr1^9=sZiGdd|P870-%i1ng*%)Mf>?bO_5yXuq{ z-mHK1+2iN8`^ucLY)cKN8k`g;vdAb|{b$DllNbLP;u>F7_dn9^_MD#fDN6bDldaLh z-yT=JoA)Su+rG>RS9NVRE$h1Fd&KzZ*DU*)8S?3OUU|BmH+oYZoA_KWwEG?n>8-(pwK)JZW{F9aXczY*b?XHwRFtMKqe*~44jHY6Ds@R-XV$?nhzJL2tK z!Y60>__fvh&ynf}_bzMQ%@?vZ^vFYD!OxfW_FVX~<^8h*f4G02Tf8f;b7$XCx8G}q zp*_`QQ{2q36IxaLSu9pC39_UO{>46UdsLQ|F$s?2lX-Clb)^TQjS=OGGTq}M#N`KQA5yz!DUs;3fdJWovT) diff --git a/ion/src/simulator/assets/large_squircle.png b/ion/src/simulator/assets/large_squircle.png new file mode 100644 index 0000000000000000000000000000000000000000..b83f4e2237c058227b9ec962820e21742f28bb35 GIT binary patch literal 11630 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 literal 0 HcmV?d00001 diff --git a/ion/src/simulator/assets/round.jpg b/ion/src/simulator/assets/round.jpg deleted file mode 100644 index 9311aaceec92e54d0275a658d768358e61b8eaf4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2086 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

l%i}3FT-dm%jjxSG$-> zfTM~#1?Pd)yRV%w4@!FCnWSgO%_%XfH6Lxo1DKrL?BhUyqP^Vh$05dOSH14luwUiYM#k;AFtj1mP(L`eqxuqO~8rMNx2#A=y8$gz`{I6N~O zS7Gg_urAA=f`We3y|B>O%!T=sDuWBr6zDw42t_+nz{**oKS%9Q`U)N2!f}l+4{a$y zD6`-$K`suOY8!;MWHeKR!)fo{;selP6WX2}C3D_3!0h3_k!h02EFc%0L)(_wL?4$n z0W?7X<>$zlaa9jMYDPx!JVek-maUcRM+lUw~FbRIt@=w#1^=%jsJsWma3|jiIItm zOAI4iKMQ#V{6EAX$iWcGP|wV$#K0uT$SlbC{|JLD&<9LR%plLe00$=*-N`DguE7H?BLkg|!dI*&;@Z2CEdcbhG{7p!9cz+k;DYscdo461v=e=sn<{n5Z+ zv?qW;TFb@h0z(ALouz9O7}CFozIt#qaEXI-*A3&ty^K7Irbj$;KU=9+4|ISCveghL zfbC@xfVqbOk1A#qRptT=jLgi8Y)l-?oDkiNOw25-Z0rmifCbJp)T>O*V|JM;v{cCR zmH%FkJ@2`gChU^E8oqqW+{ZW7_MHEvk#*|UXRT;GldGjauFEi9-MNC-gY&n1_P;}0 zyFUMIp4y}o^h}GjK)JJI_0P`LylFH)vhex5$im}d>r%afwomdeet2xMl1!WGk=kP_Mq74VUaPY(Bg*f? zl9e_G*%wOP+?{E9ue&?({-z*3hCUAA^NKe7%5&#`$yJ?pPIr^D$n>T>tBXaZ_PaTl zzi+Bv>}T=#oW$kAh)XKY6OQcY-*Ki*#(S;Rt*)@v1@FBk zxf?h>VKfx zTz$W}*PhzGeB=C-lV*?KvpDWhuxh^H(KhLq_}|8=Rp-lA2Codcud>@H_>!3aQNJ~7 zetdhI<-0qwJ)&dN^u@o<3E6!Sk^fNN@cMH2UC!HSUw7+%pRHl?Ys-lPIxk-Q)!Q$h{4^ws&#E{<));w87(^|aQE2E%c$JHlRc8_z>dPT z=dG^qSS(_9@=@vo{#BC>+BZJyKdSYyaGllql;5j(H#%iBJ>;IQv1Hn#l zHJtrU@N@XL;MMtc|Acqf@0z%$@y=_}H-F|#+2-`_vY*#)$FKhxR`o{CR(n((_-tv& zBhMYnlxLWlHcQAa=53f{*Zt^9#l=SkXCl^^o#s_g+&0_8Nnqjy6+Q=ke^9m;L@JlS WIXVDRI4}Zpt1})2zyb}V;3fbY{5oL( diff --git a/ion/src/simulator/assets/small_squircle.png b/ion/src/simulator/assets/small_squircle.png new file mode 100644 index 0000000000000000000000000000000000000000..9e7583a4f9a5c4a633116074193f1c801f4d1c84 GIT binary patch literal 11028 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 M)mth>N>)Mt1?j}q`v3p{ literal 0 HcmV?d00001 diff --git a/ion/src/simulator/assets/vertical_arrow.jpg b/ion/src/simulator/assets/vertical_arrow.jpg deleted file mode 100644 index b6e34cf1dd4f397eba4c6d236c50789ab285d2a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1527 zcmex=ma3|jiIItm zOAI4iKMQ#V{6EAX$idLS5Y5b}#K0uT$SlbC{|JLD&<9LR%plLe00$>4I}*-N`Dat(FP?sGJG(94Th1kY)tm~|vy19p-wHq4u+j2*m*4ZiW zhfjeT^>pq51~oP&eTJ&_!Lh;d0h}9CPUJ@Zb(m;&|4!x#e)$5qy_=2F>eYen5J7eU zL_64eCIOhU81SfKMp0!gz`)4D$OsH4c20=D7=iv_Wn*XH5Hu7JQZxuGQgBL2ZagF+ zs^aL9xJg({TuC{guzAuVsE--#8D3nun|0vJA_+^@#j zwja21X6Et5kKOFdV=6fg*lYCXKCg2y+i}L|PGfe_clE6sgLcj=maYD};*0Z!`Ed`b zSY8Uwk(qXQRj%`+NoGgBcV6RhJhrcW#_9Qz?Avr#8b<|uc=TR$Nu|ea@A7>|ik>H5 zel9q%@74|{L6tS@c3ysNyJo)K$)K<)Yq_|*8Wft32-NaE{NB>N^uqqKjgzkQ?25K4 zdtkE8Z|9@UuavW+v#n1{PWvuAf3{t8>-8sgo3_hD{yu3p?|t>jn+Zk_9!1XCp87~z zaamlXcG>2WkB)blC4N&iIJ4rs;x##^n9O5WL|PXncLaI7QRs7D99GK5H$CCn&6o}C z@;Ph@?&|HA)T}si<>DjbPTYF;>az0ojeB>^c(PjZ{Mw)VJF3IB&a-EHV99vrUFjOW z)469g_fHFZ%)8E2dYxRZ`qmr!t*p$?pPRGm-0KZ9*8lBl(u%2No;X{F^*_VIeXk`> zANCs@X5-mrfFwvMp?j&83(`TFVMA@W6$;2 z9p|}1a_OTx+QNFvb~V52UZPMVeD}q)T?dbs>=s_Ksg!#n=SrSQn_qEqzv6Ey3+lSE zbj75lLY^Phcjx6S3y{uzs;WGJ{r3Z>jz>aer?tYJr#zXGr?Ry4+hird2N9(n@4oDI zTwAOo)~%A*D)x+1)&A9lZTn)kZ$C8W=-0U1(>@cKl@f(-g|Gfy(s295&)+KomPYz^ z#IJ{uaMFJzJMgy6aTGV&k)L;cXvg zg_wpjPG#cG{Pk*`xb%9et)O$_4}`Oi|H&k`@-YeUU$`^k89$U zXJ_(7D^^b`TfThNu~!L!mkwpA)~E#?$#~1h=_LFjYu)=9e5={j{kyXByXq%h6JWer z!G8JV#ckQU+*Ut&XYc3_QgWDUd*F;j{)vK5&blj)$~QUQ7P|}7v+23C=na=2XS6?>Y5d|=sA&4n5VE4O z?6U9K42`+HxhuYD?3&Rerk(V4BCGoC$OqfYI>mHr!W12Qu2ifsn|3pG3fpZbAq$qJ jnhzLc?LozcAX4!LE>8j=g$pAvr#s_O04x_l3T^@b^L9~^ diff --git a/ion/src/simulator/assets/vertical_arrow.png b/ion/src/simulator/assets/vertical_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..05672b9a54894b093fe25da4ef27b87711ee3f7a GIT binary patch literal 11157 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 FzX0Hr5Z?d* literal 0 HcmV?d00001 diff --git a/ion/src/simulator/macos/images.m b/ion/src/simulator/macos/images.m index 57f839e3e..03c82ab51 100644 --- a/ion/src/simulator/macos/images.m +++ b/ion/src/simulator/macos/images.m @@ -3,7 +3,7 @@ #include #include -SDL_Texture * IonSimulatorLoadImage(SDL_Renderer * renderer, const char * identifier, bool withTransparency, uint8_t alpha) { +SDL_Texture * IonSimulatorLoadImage(SDL_Renderer * renderer, const char * identifier) { NSImage * nsImage = [NSImage imageNamed:[NSString stringWithUTF8String:identifier]]; CGImageRef cgImage = [nsImage CGImageForProposedRect:NULL context:NULL @@ -15,11 +15,12 @@ SDL_Texture * IonSimulatorLoadImage(SDL_Renderer * renderer, const char * identi size_t height = CGImageGetHeight(cgImage); size_t bytesPerPixel = 4; - size_t bitsPerPixel = bytesPerPixel*8; size_t bytesPerRow = bytesPerPixel * width; size_t bitsPerComponent = 8; - void * bitmapData = malloc(height * width * bytesPerPixel); + size_t size = height * width * bytesPerPixel; + void * bitmapData = malloc(size); + memset(bitmapData, 0, size); CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); CGContextRef context = CGBitmapContextCreate( @@ -33,21 +34,24 @@ SDL_Texture * IonSimulatorLoadImage(SDL_Renderer * renderer, const char * identi CGContextRelease(context); CGColorSpaceRelease(colorSpace); - SDL_Surface * surface = SDL_CreateRGBSurfaceWithFormatFrom( - bitmapData, - width, - height, - bitsPerPixel, - bytesPerRow, - SDL_PIXELFORMAT_ABGR8888); + SDL_Texture * texture = SDL_CreateTexture( + renderer, + SDL_PIXELFORMAT_ABGR8888, + SDL_TEXTUREACCESS_STATIC, + width, + height + ); - SDL_SetColorKey(surface, withTransparency, SDL_MapRGB(surface->format, 0xFF, 0xFF, 0xFF)); - SDL_SetSurfaceAlphaMod(surface, alpha); + SDL_UpdateTexture( + texture, + NULL, + bitmapData, + bytesPerPixel * width + ); - SDL_Texture * texture = SDL_CreateTextureFromSurface(renderer, surface); + SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND); free(bitmapData); - SDL_FreeSurface(surface); return texture; } diff --git a/ion/src/simulator/shared/apple/helpers.mak b/ion/src/simulator/shared/apple/helpers.mak index eaec0ac4e..53442cd27 100644 --- a/ion/src/simulator/shared/apple/helpers.mak +++ b/ion/src/simulator/shared/apple/helpers.mak @@ -16,15 +16,15 @@ $(simulator_app_binary): $(foreach arch,$(ARCHS),$(BUILD_DIR)/$(arch)/%.bin) | $ # Background & Keys images -define rule_for_jpg_asset -simulator_app_deps += $(call simulator_app_resource,$(1).jpg) -$(call simulator_app_resource,$(1).jpg): ion/src/simulator/assets/$(1).jpg | $$$$(@D)/. +define rule_for_asset +simulator_app_deps += $(call simulator_app_resource,$(1)) +$(call simulator_app_resource,$(1)): ion/src/simulator/assets/$(1) | $$$$(@D)/. $(call rule_label,COPY) $(Q) cp $$^ $$@ endef -JPG_ASSETS = background horizontal_arrow large_squircle round small_squircle vertical_arrow -$(foreach ASSET,$(JPG_ASSETS),$(eval $(call rule_for_jpg_asset,$(ASSET)))) +ASSETS = background.jpg horizontal_arrow.png large_squircle.png round.png small_squircle.png vertical_arrow.png +$(foreach ASSET,$(ASSETS),$(eval $(call rule_for_asset,$(ASSET)))) # Process icons @@ -45,4 +45,4 @@ $(addprefix $(SIMULATOR_ICONSET)/,icon_%.png): ion/src/simulator/assets/logo.svg # Export simulator app dependencies simulator_app_deps += $(simulator_app_binary) -simulator_app_deps += $(call simulator_app_plist,Info.plist) \ No newline at end of file +simulator_app_deps += $(call simulator_app_plist,Info.plist) diff --git a/ion/src/simulator/shared/layout.cpp b/ion/src/simulator/shared/layout.cpp index 890ce13a6..a41c39e82 100644 --- a/ion/src/simulator/shared/layout.cpp +++ b/ion/src/simulator/shared/layout.cpp @@ -103,11 +103,11 @@ public: }; static constexpr size_t NumberOfShapes = (size_t)Shape::NumberOfShapes; static constexpr const char * imagePathForKey[KeyLayout::NumberOfShapes] = { - "horizontal_arrow.jpg", - "vertical_arrow.jpg", - "round.jpg", - "small_squircle.jpg", - "large_squircle.jpg" + "horizontal_arrow.png", + "vertical_arrow.png", + "round.png", + "small_squircle.png", + "large_squircle.png" }; constexpr KeyLayout(float x, float y, Shape shape) : @@ -198,14 +198,13 @@ static void getKeyRectangle(int validKeyIndex, SDL_Texture * texture, SDL_Rect * makeAbsolute(fRect, rect); } -static constexpr uint8_t k_blendingRatio = 0x44; static SDL_Texture * sBackgroundTexture = nullptr; static SDL_Texture * sKeyLayoutTextures[KeyLayout::NumberOfShapes]; void init(SDL_Renderer * renderer) { - sBackgroundTexture = IonSimulatorLoadImage(renderer, "background.jpg", false, 0xFF); + sBackgroundTexture = IonSimulatorLoadImage(renderer, "background.jpg"); for (size_t i = 0; i < KeyLayout::NumberOfShapes; i++) { - sKeyLayoutTextures[i] = IonSimulatorLoadImage(renderer, KeyLayout::imagePathForKey[i], true, k_blendingRatio); + sKeyLayoutTextures[i] = IonSimulatorLoadImage(renderer, KeyLayout::imagePathForKey[i]); } } diff --git a/ion/src/simulator/shared/platform.h b/ion/src/simulator/shared/platform.h index ce566a4a9..494c83c23 100644 --- a/ion/src/simulator/shared/platform.h +++ b/ion/src/simulator/shared/platform.h @@ -11,7 +11,7 @@ extern "C" { /* Those functions should be implemented per-platform. * They are defined as C function for easier interop. */ -SDL_Texture * IonSimulatorLoadImage(SDL_Renderer * renderer, const char * identifier, bool withTransparency, uint8_t alpha); +SDL_Texture * IonSimulatorLoadImage(SDL_Renderer * renderer, const char * identifier); char * IonSimulatorGetLanguageCode(); #if EPSILON_SDL_SCREEN_ONLY