From 959623e0e39a0d1b04a799a838bca04055df34ab Mon Sep 17 00:00:00 2001 From: Marius Horga Date: Sat, 26 Nov 2016 22:59:37 +0200 Subject: [PATCH] initial commit --- ch07/chapter07.xcodeproj/project.pbxproj | 20 ++++++++++++---- .../UserInterfaceState.xcuserstate | Bin 18537 -> 18734 bytes .../xcschemes/chapter07.xcscheme | 2 +- ch07/chapter07/MetalView.swift | 22 +++++++++--------- 4 files changed, 28 insertions(+), 16 deletions(-) diff --git a/ch07/chapter07.xcodeproj/project.pbxproj b/ch07/chapter07.xcodeproj/project.pbxproj index 2bb7acb..0d1d83c 100644 --- a/ch07/chapter07.xcodeproj/project.pbxproj +++ b/ch07/chapter07.xcodeproj/project.pbxproj @@ -35,6 +35,16 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 297F43081DEA2E3400638FC8 /* Supporting files */ = { + isa = PBXGroup; + children = ( + 29D8782F1C84D2B0007B5F17 /* Main.storyboard */, + 29D878321C84D2B0007B5F17 /* Info.plist */, + 29D878291C84D2B0007B5F17 /* AppDelegate.swift */, + ); + name = "Supporting files"; + sourceTree = ""; + }; 29D8781D1C84D2B0007B5F17 = { isa = PBXGroup; children = ( @@ -57,9 +67,7 @@ 29D878381C84D309007B5F17 /* MetalView.swift */, 29B186251C84FF5800E9C0AA /* MathUtils.swift */, 29D8783A1C84D335007B5F17 /* Shaders.metal */, - 29D8782F1C84D2B0007B5F17 /* Main.storyboard */, - 29D878321C84D2B0007B5F17 /* Info.plist */, - 29D878291C84D2B0007B5F17 /* AppDelegate.swift */, + 297F43081DEA2E3400638FC8 /* Supporting files */, ); path = chapter07; sourceTree = ""; @@ -91,7 +99,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0720; - LastUpgradeCheck = 0800; + LastUpgradeCheck = 0810; ORGANIZATIONNAME = "Marius Horga"; TargetAttributes = { 29D878251C84D2B0007B5F17 = { @@ -168,8 +176,10 @@ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "-"; @@ -212,8 +222,10 @@ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "-"; diff --git a/ch07/chapter07.xcodeproj/project.xcworkspace/xcuserdata/marius.xcuserdatad/UserInterfaceState.xcuserstate b/ch07/chapter07.xcodeproj/project.xcworkspace/xcuserdata/marius.xcuserdatad/UserInterfaceState.xcuserstate index 43480b97236a21fb94fc1511db74b7fd7ed640c0..ccf83e06cc7d124e422127bdeb8f1662c7d126c1 100644 GIT binary patch delta 10013 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 delta 9914 zcmZ`;2V7HE7r*0O60!)8kO5gFA;`!e1OchyUUlMLh=__?z&&!Gb#IMUTkBvr>$a}C z>#BQeowaVQwc1)+SNU$hf&E(YBYE$hanC*Hf6hJky*0DogBfr}82*7=@|{YG;?@Sk zgEMQoy)8gX&4C;>~rQm_oH z25Z1KU=!F0c7fes4>$;pfivI-a0y%nH^6Oh2b4kpAw&>E4iXpu1yBeBp$Lkh42D1@ z41*dN0S#VggVC@ObU+XM1XhLBU|m=b)`!htbJz~HhaF%?m=6o!KsX2vhC|>`I1CPl zBj6Y~9ex47gp1))xDu{`8{kH`32uiw;2yXi9)`!^X?Px9fmh*8cnkglAH!ea6Zi}T zAORAhKqNw9BtcT-l_4z(M-fPe^vHmW$b@Vt9=VVQrJz()6;(s&s1B-+8llFh9cqs{ zppK{$>WO-x-lz}iiw2;I$T|@ z9#@}hz%}Grb8Wb`Tsy8k*MaNEb>ez*y}Vp+t`FCj>&Nxy25=*}QJj~f+!SsqH;wy} zo6mj4E$3EnE4i<^E!$ttpztRw5m2C|v#A^XYq zXOqtQy%Zv;p-GIKdmDhuiZ75 zaa7OC$&!P>OnFeFoPw<0t#We)+w%wKb}Kjw0)YsKL2J+!L=}QIG@=l+qdGRzs}PM7 zbOKpLAQN<^dTOCj@0hbeHxN<;x`G^PpvEH59rU0k8cEqwLQLMK=5#6t{=YMzALtJT zfV_5=?A}@V`F*qcc0q2xzFB!gix^jao5mSUy7bJ+es9!3FytTe z3}f?Hso9*~cX5RoMgec9#u<$U7G!nlos(TXFE49oF&G6X$Zy>^qwKcalF{I^OnK;g z&JWWUgVBBi-mPyem-YlfYy!g~rjEv=(ztRYj*%FbjMEqLu<5 zm<{HD&%s9P&11b3t+3P-UD;;tLL}K%gK3X;99WWAFXvXsSs?S zm8q?5c8{$71vz=n%I{bde*!l_)Z)cuE;r}CHlPjZr?e4mOq+bo;_!_9KL>w;zrYLdl3iQD8y1bG?7tb! zpe<-i+KOGL)7I3s(WH_>FO)#(V%oe6JTM5#8D!srEF-6&n2iL3{FaR~*v%P#62VZA zwU|bQmcIQfA5^{7;b+iRxYm_jzg-bDLNf~&G{H#PmbNSMTStlC7@Kc}x_Uzx1LOSO z^yepxryZ!RT)7iu6+;(HfNt86cBa|ya}*}Ql#00nQ(+a_iDt4K^=Qn^VLGh&5xEwu zO|xhhYW}!pnA2zVFH5v{b~b>GK9Xz9)OIaXyHcao!VK8Tzl;{JCGAGL7Xb^fP!0Ro zeAhLD+rCrM3HAU{D_|z<46|Stm<_wa9M}zZr#)#e+MD*FeQ7`1pAMjTD_}0{$+V<_ zG}ssRgZ-Jld^(P4RI|@&x{vNJ)80w2Ne)NCQP9i0Od$_P!_RzXVMF6+3TOcxdjXDx z;}~f?oB$^>GKEv%R5%S}_@)UPM~tRpoQ6B)Q7xB~c|1{%A+6W!t$Wx2{Y-wwgGWkVzULmv{nyp&P+ zO_9IAorRm3#arN3xDE2{yY|Z-*oV#CviYZN3v&D9EGU#W_r(-Cq?tVxg zfr|>^Xy)UQ<;qXMlbLc`*%tJxI7k3bf&35mvbPqTfoFZ4B~i?Rb8NEClK2pK0sg=M z4lmO2h42!cz!0-Y;z){>vUovyg?^XTZ=|nxqaUO={CF%LWpTj@lU+@Kd317k2bOxPC zXHg%WP3O?hm%+bbDFO(Ba|k1j&ZYC{V!DilayebWtlKC3ItB$H1qdlYauke0P$>O^ zeo5!kuS$>-g#jy4(*<-POW{S#jy`e2ygTc@ER6vT+xknctFkL$WZU5hNv_KN`da~d zC=!{=p+}d}!gAP^xf(??*r7@&2F21MT1-p+0lRXP{WqKvP*NG5mVAt-j}TOjl{Q`T zvIa+IrdINGjEM1~>OhQYKpxeCTiJeU?~;|D)1Lk2<@C-f$Q_i!(6Ewv%c76!qI#?# zGWZptx*)&Y>;}yHs3BcNM`p^E@AsSGE>|-1Lz2rg@?BI=6Vw7km7u1m8ETF)=o-3~ zuA_?eC8#B8g<7LFbOYT=_t3q}{io!g#Gp*n)z9A1?H2%IZVq;1MlRKe%Y|dkCOBRPe5%qJebV+lq>Yu#N`}MZ@T~bm#kOibf(@vFsrp zji%e_4i?x?LNxWzcr@uF@?HaAzDliGCtOuc~Obq(j{mqJw%Uuuyh4l z^^qy7(Hix=8vUai10u?16y!stF3Zj;yeP};AfDWQV=zDY+9igY_X?lj9rRV5*dVyYC4lL+6 zI)P52Q|L50gU+%b{lG&ntJ^%B!NYkx+|I)tY^C?KHzKbi)&mryAJGl;6TL()(<{a3 z7P^h@(5v)!9>y}Z2jNR1e@4If-SmiFD@2d!kE|2#LZ%c8=$%3wNbj=IZMyhMG91cu z;2AH^BRV<+1@u^l_;Gy1#;yKn;ii-%z!tpryt%eOx=-m64r3uOTF{8mwztJQVRz z%tIwJe21ZFw13spZZSwT>O_58=vRI-I`ThGn53LpbdlVnT$MGm0 zM)T0d!zkv}S+SA6{&(M!9(LnlPagK+A%ji<4~Ot@_{Ygp>d%girPeek|4@b9D<`C6%4;(@myeH8RwPH3ldELP)62-$V&oOo+RDkF%!;j6ae;CEVc(k= zx9@t)M^?JZ`KxEjQ>JxTZX8#KXos zY{J8)C0uhZg9)|dVKW{!_X}l|361b=i8nYiIsb0Yb>_0TE*uLsV`DX_H4odAa5-Ez zCfI|AZF$(vFWA0JaF~zU4cZdDxMMo%}+X)Ml>k@6syG?D211 z+S@$hcy8Q(S~8xSP;Ln;d0omZ@s??=-SupT@S5dXoe8dYJr6gXV};{CRyBwFyj&Mc zY4!-HY*oy_+Fh#`%8s`2w~+}6iSIQn;EMd3{x2G8e>jRc))sL~dDxwYJ^ZTt50jFe z(au#IdzA1W;n=`!ET6v@4|~6z-#5dlb$-k3{!gJj+}?5_R)+h%6T0lwJHO|S|Eqm| z^GPb+(p-uv_!_u@Yn`jUIaG`->B2p*2~YZ~Pb z^o}uSedYvxC?A)!3{jE7@* zIF^Uwc*rW}1RhT0;iTn6$xgpkq9z)mCE>ur!^x~yVv|kb;Zz<@KB|2ru{@Dyv1;|Ht};nwTLDQXDLkCb!#PEy3Q6PP=RBOtv^7Yy z*=mxytm`7RNNvKB`U@U@$;0`@q#mhH8u0Kd9&Y2|x6I-568ki33bK}vW~4dEAT0>X z%LP0v;o))~uHxak_q!EoLpu0Xwk7RIdmb+2;UXR`E+!pGCz8p-LLL_Ju-N|?G|K1o z=zRsAF}5D0_rHnsA$>_d9xmY_gY+_Hg&|2}8%T!!8}BeOoUjnB;2|sLUo+m!Bz@9o z!czGEOu-5=flQ>2c(|H}Yp5+77_A5x&ycA=Os0|P8#gBPL*BJzXB{$=%@W_qJG&IfOL=OWC65l6j;(`I4|^fGvGJ4>z#Y^Kc^%zgfzBu#hYw zi`h4$F;8sb;btCgExXv{cS$5`->b9kW>Btgf=B7wnBw)WU`DMZU;EEw{=3ZrM zFq(&3$}L`gP43YRoDyx?HKw6l2py@}3pD8+M>48$nhfkWxgW z%8qYj3&>iAII@j=OSY38WGB8$nJahlu<|Y*?&0BgJlxO2Bo^flJ0l)hjx}k8F>rJ zP(Ti|7Zf5+!pYd{iOOvMY0q9V^k(lD`g3_)0XK+k2;;el++_BCVLCUH^Ko;yx!e!j zJt8Klqyrg3d@Mj)m?yTAon$xJOZJfi`kTI)hQ z8VQ;RIta1^*@7HFPeE@%UqOGtD8Wp@EWvz1iD0c@tKfj(h~TW?hTx9ip5TGtvEYf| zH^DQ(8)1M@DU1+Wgz>_f!Un?DLT@KwXJHp%S79$(A}o@Nlp>W#BhrhEqDYZNWEVL^bwnAWR-!hd_M(nnQKqQ3sGn$n zs6aGGG(-KF-Y8!CX%j_;gT_uv6AtU8IlE(63I%*M#(pl&63@c?$0{|~ih7Dhigt=DMYbYG(OuD3 z(O;3LC{PSi6e+${oKaj+Tvyys+*JIk_*)5-NXaP!ltQIQDN%+ibxMQMq%%umKeG|4bY=79nuZIzl z>a6O#>bmNN>Za

aOa(>Zv+Vtx)ULvFb#1k~&$Ps!mhaR@YV6S2t8QQa4feQBP8@ zRv%QKRG(6xQU9pEslKhgr+%RRS^Z4?Lj6kpMqR3rXo5AN8l^_7@kVI$8l$F?CP7n8 zQ%h4vQ%}=K(?ruulcDLT>89zS8K@be8KxPj@oIR@98Hm?SW}`|s@bU7tl6sBuGy*C ztvRc?s`*KCOLIqaPxDOkLi0-VMvJtZHb5)XhG@gJ(b{;eL+jEeX_K|7+B9urZEJ0R z?NIFq?IGi)YQs9iM#Cn<9i!Y>&DhsC*SOxe%edFL-+0J)#CXhj z!}!4X*!a}=%=p}dO+u5{Br}DY!b}=dxT%sU&D7bHYZ_!4ZW?9cP2)@xO;b$MOw&#C zOsh?sP1{U6OuI}cO_xkpO+T7$n(jn;Es^n&sgczpYed$LY!KNfvT0=V$hMK4BL_x$ zBPT>Ik6ashGV)I3Z;`)8K8t*A#%75*$Q)u;n$>2L*MOkbeY`L~xwm!E0woSJ0Z2N5oZHJ@9(duYzbVRfvIy<_5 zbY65p^x){7(MO_>MW2X19fM=!F(EOE7*$MWOz)V!G5urmV>ZX^i#ZT;DCS74Fjg6> ziq*tM#I}p=9-AB6E4FX!%GfQj+hVuJ?uspqlf)_G)N$c)`Z$v}E+#HM&KZ{w=ZUKv z*F0`$-1xY)aa-f|#~qKm9Cs`3Zrp>oM{&Q#{T25r?(cXIkK;+aF}`km%lMJ;CYzb1Zt{5SDi;=hgG7k@DRaQxBu6Y;0wf3}C%jrMx>X7+aWEPG%3VEa(}aQjHR z*FM2M**?ua!|t=sv3nQVm)kekciX?WAGM#bpSGW~U$ft^-?HDa-?u-s|89Td5II5} zVGfNW!eMYkJ7OJnhtuJ9cpOz7bsa4n9UYw=*^X|GTt}W`pks(*m}8{F>zLq}<5=Wa z<=Eud>e%ks<=E>u;yCU&&Q{L0&MwXzXAfsjXCG%j=Md*;=QQVhXNhx}bER{&bDeXWbBA-cbFXv1 z^Puyj^Rn}n^NI6?^R=_ogF&bcnSF1xO|Zn$o_?z$ehUb^16 zN)uoLmmo+GB}fy35`q)L6QUBTCA3QDl|U2bC9F@_nQ$}VLBhj?7w!Oepj+Y&a)-DT zZj;;Wwz{L;z1>6IqujiEjC-Pciq}2eJ<~ncz0kePz0SSUz2AMveZ+m-ea?N+ec64@ z{bOQCVtitq#3qUD5<4b#PRvg1mYAE^D{)AoH*s|0*u)8m(-UVU&Pkk?_+{e0#HSve zC(0A=sqCrcY3OO}Y36C+Y47Re$?|mdbo2D{4Dby0jPXqNO!Lh2%=XOpEcAE_Jtdx{ zp0%D0o*kaUo>QK)o(rB!o*SNobIlwm2KrA$tloiaCNamuokRVjN? zzDqflaz5pUl*=hsQ|_cZOL?C1BIR}Gl+sj`N>YWXqEuC?CN(@&pBkGQpXx|WNF9{= zS?bu-@u`zikELEpy^?w@^+uJbD()(tDwV6GrsbuLNt>89z3f#3K&bqeTrK~7_nkKL Ef91Kj_5c6? diff --git a/ch07/chapter07.xcodeproj/xcuserdata/marius.xcuserdatad/xcschemes/chapter07.xcscheme b/ch07/chapter07.xcodeproj/xcuserdata/marius.xcuserdatad/xcschemes/chapter07.xcscheme index c45abd3..1f22050 100644 --- a/ch07/chapter07.xcodeproj/xcuserdata/marius.xcuserdatad/xcschemes/chapter07.xcscheme +++ b/ch07/chapter07.xcodeproj/xcuserdata/marius.xcuserdatad/xcschemes/chapter07.xcscheme @@ -1,6 +1,6 @@ .size * 3, options:[]) + uniformBuffer = device!.makeBuffer(length: MemoryLayout.size * 16, options: []) let bufferPointer = uniformBuffer.contents() - memcpy(bufferPointer, Matrix().modelMatrix(Matrix()).m, sizeof(Float.self) * 16) + memcpy(bufferPointer, Matrix().modelMatrix(Matrix()).m, MemoryLayout.size * 16) } func registerShaders() { let library = device!.newDefaultLibrary()! - let vertex_func = library.newFunction(withName: "vertex_func") - let frag_func = library.newFunction(withName: "fragment_func") + let vertex_func = library.makeFunction(name: "vertex_func") + let frag_func = library.makeFunction(name: "fragment_func") let rpld = MTLRenderPipelineDescriptor() rpld.vertexFunction = vertex_func rpld.fragmentFunction = frag_func rpld.colorAttachments[0].pixelFormat = .bgra8Unorm do { - try rps = device!.newRenderPipelineState(with: rpld) + try rps = device!.makeRenderPipelineState(descriptor: rpld) } catch let error { self.print("\(error)") } @@ -51,14 +51,14 @@ class MetalView: MTKView { override func draw(_ dirtyRect: NSRect) { super.draw(dirtyRect) - if let rpd = currentRenderPassDescriptor, drawable = currentDrawable { + if let rpd = currentRenderPassDescriptor, let drawable = currentDrawable { rpd.colorAttachments[0].clearColor = MTLClearColorMake(0.5, 0.5, 0.5, 1.0) - let commandBuffer = device!.newCommandQueue().commandBuffer() - let commandEncoder = commandBuffer.renderCommandEncoder(with: rpd) + let commandBuffer = device!.makeCommandQueue().makeCommandBuffer() + let commandEncoder = commandBuffer.makeRenderCommandEncoder(descriptor: rpd) commandEncoder.setRenderPipelineState(rps!) commandEncoder.setVertexBuffer(vertexBuffer, offset: 0, at: 0) commandEncoder.setVertexBuffer(uniformBuffer, offset: 0, at: 1) - commandEncoder.drawPrimitives(.triangle, vertexStart: 0, vertexCount: 3, instanceCount: 1) + commandEncoder.drawPrimitives(type: .triangle, vertexStart: 0, vertexCount: 3, instanceCount: 1) commandEncoder.endEncoding() commandBuffer.present(drawable) commandBuffer.commit()