From f271eb856f5af5c6a1f6f217977e75ab66cc3d7f Mon Sep 17 00:00:00 2001 From: peterino2 Date: Tue, 2 Sep 2025 21:19:40 -0700 Subject: [PATCH] papyrus starting to work again --- engine/papyrus/src/papyrus.zig | 2 +- engine/ui/shaders/fragmentHelpers.hlsli | 4 +- engine/ui/shaders/rect.frag.hlsl | 2 +- engine/ui/shaders/text.frag.hlsl | 20 +- engine/ui/shaders/text.frag.json | 20 +- engine/ui/shaders/text.vert.json | 7 +- engine/ui/shaders/text_shared.hlsli | 3 +- engine/ui/src/sgpu/papyrusSgpu.zig | 22 +- projects/content/_shaders/dxil/rect.frag.dxil | Bin 6284 -> 6188 bytes projects/content/_shaders/dxil/text.frag.dxil | Bin 4744 -> 5940 bytes projects/content/_shaders/dxil/text.vert.dxil | Bin 4888 -> 4892 bytes projects/content/_shaders/msl/rect.frag.msl | 208 +++++++++--------- projects/content/_shaders/msl/text.frag.msl | 72 +++++- projects/content/_shaders/msl/text.vert.msl | 1 - projects/content/_shaders/spv/rect.frag.spv | Bin 6316 -> 6248 bytes projects/content/_shaders/spv/text.frag.spv | Bin 2388 -> 4600 bytes projects/content/_shaders/spv/text.vert.spv | Bin 2004 -> 1960 bytes projects/sampleGame/externGame/externGame.zig | 7 +- 18 files changed, 212 insertions(+), 156 deletions(-) diff --git a/engine/papyrus/src/papyrus.zig b/engine/papyrus/src/papyrus.zig index dbd0380..be5acc1 100644 --- a/engine/papyrus/src/papyrus.zig +++ b/engine/papyrus/src/papyrus.zig @@ -1218,7 +1218,7 @@ pub const Context = struct { .tl = .{ .x = 30 - 5, .y = yOffset - 5 }, .size = .{ .x = width + 5, .y = sizePerLine * @as(f32, @floatFromInt(self.debugTextCount + 2)) }, .borderColor = Color.fromRGBA(0x444444ee), - .backgroundColor = Color.fromRGBA2(0.0, 0.0, 0.0, 0.94), + .backgroundColor = Color.fromRGBA2(0.05, 0.05, 0.08, 0.88), }, }, }); diff --git a/engine/ui/shaders/fragmentHelpers.hlsli b/engine/ui/shaders/fragmentHelpers.hlsli index 776a37b..4a6edc0 100644 --- a/engine/ui/shaders/fragmentHelpers.hlsli +++ b/engine/ui/shaders/fragmentHelpers.hlsli @@ -24,8 +24,8 @@ float getSample( bool scissor(float2 position, float2 topleft, float2 size) { - if(position.x >= topleft.x && position.x <= topleft.x + size.x && - position.y >= topleft.y && position.y <= topleft.y + size.y ) + if((position.x >= topleft.x) && (position.x <= (topleft.x + size.x)) && + (position.y >= topleft.y) && (position.y <= topleft.y + size.y)) { return true; } diff --git a/engine/ui/shaders/rect.frag.hlsl b/engine/ui/shaders/rect.frag.hlsl index 7b7431b..4547c90 100644 --- a/engine/ui/shaders/rect.frag.hlsl +++ b/engine/ui/shaders/rect.frag.hlsl @@ -111,7 +111,7 @@ PSOut main( } else { - o.Color = float4(pow(color, 2.2), alpha); + o.Color = float4(color, alpha); //float4(pow(color, 2.2), alpha); } return o; diff --git a/engine/ui/shaders/text.frag.hlsl b/engine/ui/shaders/text.frag.hlsl index f540a38..bfe7f82 100644 --- a/engine/ui/shaders/text.frag.hlsl +++ b/engine/ui/shaders/text.frag.hlsl @@ -24,8 +24,10 @@ float4 main( float2 size = fontBuffer[Instance].size; if(!scissor(pixelPosition, position, size)) + //if(pixelPosition.x > (position.x + size.x)) { - // discard; + // return float4(pixelPosition.x / 1920, 0.0, 0.0, 1.0); + discard; } float4 textColor = float4( @@ -34,7 +36,7 @@ float4 main( getBlueFromUint(Color), getAlphaFromUint(Color)); - if(isSdf == 0) + if(isSdf == 1) { float dist = tex.r; float width = fwidth(dist); @@ -73,17 +75,17 @@ float4 main( #if 0 float4 outFragColor = 0; - //if(!rect(pixelPosition, position, size)) - //{ - //} + if(!rect(pixelPosition, position, size)) + { + } outFragColor = float4(1.0, 0.0, 0.0, 1.0); return outFragColor + o * 0.00001; #else - float alpha = 1.0; - float gray = dot(textColor.xyz, float3(0.2126, 0.7152, 0.0722)); - o = float4(textColor.xyz, tex.x);//pow(tex.x / gray, 1/(2.2)) );//textColor.* alpha); - return float4(1.0, 1.0, 1.0, tex.x) + o * 0.00001; + //float alpha = 1.0; + // float gray = dot(textColor.xyz, float3(0.2126, 0.7152, 0.0722)); + // o = float4(textColor.xyz, tex.x);//pow(tex.x / gray, 1/(2.2)) );//textColor.* alpha); + return o; // float4(1.0, 1.0, 1.0, tex.x) + o * 0.00001; #endif } diff --git a/engine/ui/shaders/text.frag.json b/engine/ui/shaders/text.frag.json index efe412b..49b9cba 100644 --- a/engine/ui/shaders/text.frag.json +++ b/engine/ui/shaders/text.frag.json @@ -6,7 +6,7 @@ } ], "types" : { - "_12" : { + "_13" : { "name" : "FontInfo", "members" : [ { @@ -28,20 +28,15 @@ "name" : "pad0", "type" : "uint", "offset" : 20 - }, - { - "name" : "pad2", - "type" : "vec2", - "offset" : 24 } ] }, - "_11" : { + "_12" : { "name" : "type.StructuredBuffer.FontInfo", "members" : [ { "name" : "_m0", - "type" : "_12", + "type" : "_13", "array" : [ 0 ], @@ -49,7 +44,7 @@ true ], "offset" : 0, - "array_stride" : 32 + "array_stride" : 24 } ] } @@ -65,6 +60,11 @@ "name" : "in.var.TEXCOORD1", "location" : 1 }, + { + "type" : "vec2", + "name" : "in.var.TEXCOORD2", + "location" : 2 + }, { "type" : "uint", "name" : "in.var.TEXCOORD3", @@ -96,7 +96,7 @@ ], "ssbos" : [ { - "type" : "_11", + "type" : "_12", "name" : "fontBuffer", "readonly" : true, "block_size" : 0, diff --git a/engine/ui/shaders/text.vert.json b/engine/ui/shaders/text.vert.json index fb09e79..ce5e1e7 100644 --- a/engine/ui/shaders/text.vert.json +++ b/engine/ui/shaders/text.vert.json @@ -28,11 +28,6 @@ "name" : "pad0", "type" : "uint", "offset" : 20 - }, - { - "name" : "pad2", - "type" : "vec2", - "offset" : 24 } ] }, @@ -49,7 +44,7 @@ true ], "offset" : 0, - "array_stride" : 32 + "array_stride" : 24 } ] }, diff --git a/engine/ui/shaders/text_shared.hlsli b/engine/ui/shaders/text_shared.hlsli index 3ae2d39..e4f5ee9 100644 --- a/engine/ui/shaders/text_shared.hlsli +++ b/engine/ui/shaders/text_shared.hlsli @@ -2,8 +2,7 @@ struct FontInfo { float2 position; // 8 bytes alignment 0 float2 size; // 8 bytes alignment 8 uint isSdf; // 4 bytes 16 - uint pad0; // 4 bytes - float2 pad2; // 8 bytes + uint pad0; // 4 bytes 20 }; float getRedFromUint(uint color) diff --git a/engine/ui/src/sgpu/papyrusSgpu.zig b/engine/ui/src/sgpu/papyrusSgpu.zig index 0880b65..fb9c8e9 100644 --- a/engine/ui/src/sgpu/papyrusSgpu.zig +++ b/engine/ui/src/sgpu/papyrusSgpu.zig @@ -241,7 +241,15 @@ pub fn createRectPipeline(self: *@This()) !void { pci.target_info.color_target_descriptions = &[_]gpu.GPUColorTargetDescription{ .{ .format = ctx.swapchainTargetFormat, - .blend_state = std.mem.zeroes(gpu.GPUColorTargetBlendState), + .blend_state = std.mem.zeroInit(gpu.GPUColorTargetBlendState, .{ + .alpha_blend_op = .blendopAdd, + .color_blend_op = .blendopAdd, + .src_color_blendfactor = .blendfactorSrcAlpha, + .dst_color_blendfactor = .blendfactorOneMinusSrcAlpha, + .src_alpha_blendfactor = .blendfactorSrcAlpha, + .dst_alpha_blendfactor = .blendfactorOneMinusSrcAlpha, + .enable_blend = true, + }), }, }; @@ -311,7 +319,7 @@ pub fn drawToTarget(self: *@This(), cmd: *gpu.GPUCommandBuffer, ctx: *papyrus.Co .imageSize = .{ .x = rect.size.x, .y = rect.size.y }, .anchorPoint = .{ .x = -1.0, .y = -1.0 }, .scale = .{ .x = 1.0, .y = 1.0 }, - .alpha = 1.0, + .alpha = rect.backgroundColor.a, // there should be background alpha and border alpha .baseColor = .{ .x = rect.backgroundColor.r, .y = rect.backgroundColor.g, @@ -346,9 +354,11 @@ pub fn drawToTarget(self: *@This(), cmd: *gpu.GPUCommandBuffer, ctx: *papyrus.Co .isSdf = if (meshBuffer.isSDF) 1 else 0, .position = .{ .x = text.tl.x, .y = text.tl.y }, .size = .{ .x = text.size.x, .y = text.size.y }, - .pad0 = undefined, - .pad2 = undefined, + .pad0 = 0xff, + // .pad0 = 0xff, + // .pad2 = undefined, }; + // textBuffer[textIndex] = .{ // .. fill this shit out // }; @@ -437,8 +447,8 @@ pub fn drawToTarget(self: *@This(), cmd: *gpu.GPUCommandBuffer, ctx: *papyrus.Co const tmb = text.textMeshBuffer; tr.bindFontBuffersAndSamplers(pass, tmb); - pass.bindGPUVertexStorageBuffers(0, &self.screenBuffers.rect.buffer, 1); - pass.bindGPUFragmentStorageBuffers(0, &self.screenBuffers.rect.buffer, 1); + pass.bindGPUVertexStorageBuffers(0, &self.screenBuffers.text.buffer, 1); + pass.bindGPUFragmentStorageBuffers(0, &self.screenBuffers.text.buffer, 1); pass.bindGPUFragmentSamplers(0, @ptrCast(&self.getFontSampler(text.textMeshBuffer.fontHandle)), 1); pass.bindGPUGraphicsPipeline(self.textPipeline); diff --git a/projects/content/_shaders/dxil/rect.frag.dxil b/projects/content/_shaders/dxil/rect.frag.dxil index 8c775adba24e5cbc9b79191e5732bdd683ff25ca..768208bc6c4142d8cf9330fde2cd8155db62c368 100644 GIT binary patch delta 1262 zcmY+EeM}p57{`Ctd+DuQrKP-Fp|G-2rlgLRw}AuJ7HB0yY_{rvV0OH8)R914B3poj zyOx)mD^t8>F#|W8kPyR^(HL>+(w44k1htEp2wAk?jKs`X{R7Bi7O!dd$L^oY^ZnlM z``q(+F6Y+GYvr{~#+n`cr;W9H`W~~bs&RMj@nZ-8pqY?op`9WC=vx(LL4HIC0L9CD zyjR;)-vIc#gs(%qZmjYCl1l*aH^hA^y6VxxlmJTQK0;OS-nSeVLSOXkp@T?;hS>#k zZ$vw;DZUT%)tb-6VrIng*f-&4W8J*|G?wz*6#an>&GH>(h)t4&0Khi`0XJ9!(qb?| zT5vSeqOHrch}0+bsKP=+BUa0ZxlSI|nt)Tu4i)o{0~NLpI4SBTvo#B4HYBQBzJF(# zOiQBr96B+_WLo1Dy~E2R#JCeVCFaWU9fknAy*LnUYg?JXh@8WWCZm&DagxL=XV+ zO}C+?w5!<}7(Q67!Z3c^=z{SDWLe6Pl3z8hw-DPmP@+RnbXJ1-6r4hqpSv#DKW_*N ztC}sce(X8F99m2?;-?^2mk0$Vii8?EbKFiE2_g_Xu;; zs2ublVLhs<{Bv`)sP;8&J006n^RZP|`2#_fJ0J0)%a`JGG1-pgxn2jiomx;=y_xKD z)Y3SQrv!~N3lHBtdO4sm*o-OHr7#Q(+Vg(nL7sIahwZ(>eBx{ozE4YGgf~L|t-MFM zdhTReqoU}G=?fF~k*nk@IGr?_ta zGwH|Gzlra&7pW4HOu)k#Q*9kk@*l%zNv1d^IQhr9i$mqyW_re}FD;AB4^ZQv8ac88 zuu};-^8O{$si{CWPsfKYw}b;-t3*8e`HjESSmGt8n1Jt(mBmVLT9|e{@hM2}oeH z2aY;grMZnTAz8=%Q9>p^%)&BeT3Vn+%!oyFQ^~lPpL=f6Y!DFaV4S_#I#o zNa}QczD|k6>upGUxeNJRfA@>BoACyS8&B$#l8UtjH4(giaWCbSLMVm(dmjK5vIkHk z`8^~?%%jN9cARC!q{hae9g^Sn9<1pF7>evmEI28@4QV4Qdy>Hv>Og8qr!*Cyl+DJK z$fs~wRn%$S_7JgP$Wp{f+G@FrCl2CK?W}^lh;eJ(QK^@^oH&o~H%FzW2=QJ{e z5_~>@z3xjKZGY!!%HNgowhBR*Hp5e_EZ8TqNrk^=cV2+&W*~em^rNuXREVlB;R~5AvEx^oLzj)# z?u9OFk~FHQEq+N@kF`y}K^;eRIJ`EWTXZ6dPgcIzS+GJCI?`be$9FZ-yH>nq*xT4k zFUMyUS3_}LOOX|2@Z@nK%!0kerEY&VUZ;=yO2lRZT-_2F%3xTB6!ykG+b~thrL7`1 z%oGBFl(Y?{fi9K2mpDE-dc|eBJRm)WT4O#<(&&H??sOdZcsg|xr^h8(tez9}swAKI zZU09iehF+3-_NbBRM(K(Q$A*%EIuZH+2h?}$9_2db@Vm6l5J?JB>Xva9?o8Df5H0Q?8Y4ZY|9 diff --git a/projects/content/_shaders/dxil/text.frag.dxil b/projects/content/_shaders/dxil/text.frag.dxil index f8d8799602c156b76f3f1d512ee354fe0830b220..a6bc6edf7710e5b62faa33246a3bb24ff118facf 100644 GIT binary patch delta 3600 zcmeHIdsGuw8ox7{OeQZfk$^*hWWpmxL>nF|x-OkbBBJ7okGlA1n}GN#AU^8i%9_c; zG;Xn?!4@AYL9L~hw&_Z{+U<4|f=Vf+XuB3I_5?&XJ+-IW+7`DSckcl9wENfo)BpCK z^WEI5 z`X$r%SSSjxIBUn2)3P4SRx>Tl{bysimkeUf zviy{#qJ+qz1la~b4%N-kf?Vjj>aoK8Q+z$XH@?7%w6TBg+o=s{DS#fuQKZM&;|dU64Rb{Fgk?HQoshRD^oKmV{DP@1u58*BiXpOtE;*~Ipl&h>PHa-w zBw|j*G}Q{~7JFG_=@@G7Ki}JRQ%{5~;kqv;*Hu+Hjm4Rl`fo;|%{)8hgFRKxonLkJ z%J{^DJ!jiazdqw_ar;!OvUyVYhteI=)Kt@NJ>TE>PXEdIV^d&gmFup^PfCs%B`1m{ zeygN&qTiI^cV=+y8JzD)kxTi9-d(Z}%Wu8fv*)#3Ru+Sm&14{1X!@U1`(AuC6CqxJv1!6*#>6K}MufbYJvW8E*!8cKM7 z*_uXbzkGtGjcGZ8__yF(?;9$2jRr6z@K^IB!?Q#s&l2{BEYV2IKEQ28L-2zIB)&Gx zrFCFBSw0%;9ymzLdOhxv#x+zD+DJDb@C7?2N0pU@xOcs`SqERXoCRc$|5J{P`-l`E z6-28X6M|1LME;JPoyL-2T%~P&m8Ip60ngE+C%k$Bo66FseFqYc=;)lpK0ZmOnMmH6ZikFfO@+ zswnC3f0I9raOq@TBju7~2`578HpDmal}An)&z{bHTa4~oKoXTsV^JcORqv8Z@8IP? zWW6oll*rU>3F!PTxhwHw#K;!9DqReuj?(M5K-jk}rVegr+O?AUQKq@WEs168Nfo^e$ms!*zu5PS&2(25WuJXQAaW=#fKXW*qtn!Dv~qW zj4HnqO|GLTKsb>Diqni;l#1gJROa(=W?#tbKp=|6KQPj5Rus|362p!4lCQJaxS_II zy5qtyBdiac6^OZzh+QdGm_Nc8ZO~3uI&f{hLp7& z1-pajruw}hyP4D`;`d7E&b1v8-qjkQcQcv-Sqy|WI8M5s7z&|y{@COloIUS|c}9bS z@(X6(?^xK1&8*X7oNyDVm3DG4Xava@h4ZoaGp^b?t#i1~*m(hEp+^KUw!SGW!X6k) ztNE#Ter3=SQJlA9w-d5zcwpvE*-)w(9FRviP1H8|@}NFC(sva04McYnM(_R9lx5BUCp}V=QoMT%@Vm|l=mDdi+bf))(@FI_RP(;QA`XM3F*oJq8}xV5f+~!9*u%dU|yDdMC#4___R9b3!h|HVkS74{H_nC7@dRwz>X;Sf^dPx_rweZ^N tdb(?rGYoIuiEj<5kFz5b;dCrc+!#`~>eS(%x&6AIxoz-+ delta 2416 zcmeHJYfu~46~3!oR*P6kDBv509U?bwRC9@ zD!IHKQt}LhC%_O8MfZEsQg{}sM6^PP4?vlcwR+J!#QzP-<+q5Qiiy6Nn6D6}Z+u;V z7J=OoikPZP%YZNv0`C#xg+=~9X>b6-5I-v!g?96Ln1VdKGfvxIK7HqVi$x{h>@3-& zfB3uhQ#ZFBuA^?gd1LkIyBh7ckx^D-4yl|;DSr{-q|^RpPRg`#A;oCMnvu><3{PsyILxqn^Gl@%O?X>JJ zA-hla%R893J68DvvwYPo>t-Z<7Wo}o_8=l#^^2GNvU`N=fgiOn;)4J^=oRk|$vy+} z`;oW@9(lwp(~*tw_AZO7bHvr#34dQF?(@3#dtBWfc-InqKjdnf1QgGI5JS<`v+okKHuo+P(%F8d<3w3Va-8F05|A{3 zl9V{T`})j`9lh*=n?&qqS;>ZIL37m|tIro$|JkGRFwjmYy(aFyx=e z-#nQkM15rh+E`Smi`$G#p)#W2Ft$4>?T5!}lI9S$IS(_P*CeI6HK@~*hh51vV)n!Q z8)$Za(0`5S(}t%$zV0?Bu+kknN)_b<_A}CaKBbNYe5@vD!DqbqoP~xt zJY?aR8a2mqj79C(ywxuKh(cdx&{jVRtMU2}s^&H?`si93t&gCM^a#YF%|5mSHdx_} zl`pt3K8ZZwDK(I$t}1 z?N~H7vmWuMX@r80+p8|xGjbV$<|j-3R#Ax{9O1%v53VThd+W_`!(SOGr-AuZyyV zMOhR~!fp;PVZ4&s`aOudJhEr$;jR8dd>qNE3SW3L`ywZ~H+eAx3dT zMt?ceK4#0Uxp@D}LK9FbM3;R8uajt?Vt%J2-SUIL=4h%4HjTV={e6hQt+~-Q3sz#R zEKxmz;Jdn0*e%yl7e+Wbs>lLmFi;&j|H_MX>b_?;x3QiZTDfq=T1rPsU z!LhvR-xbVC_z)gs{#OYrgdXIiji~sqrBA0#Fe_t_w-dDnCkXpi8DNNT<5~}+x^0f? zw*RqiM<{$2Woe!Nayj8_n6_$z2zv{Qs+FU2)$z6LDBFoyxJbjA)`$gXy>-M%CKraO z?N<>EeqM@I=%sqX@AQWmGw3WQf|hGUy%K?_g~XpP7dy^ktt+3E9%|+olM*Qm6ND0} z9i{O8dDMtIrEv?r>7*k-pg{wwM7S`4E0L37%55Xts-5rQ1%i5S;7++T52^LBE&2B< z?KC-M#q9b;+G9+97vi(tdHyVYVKV18u_CsdaJOryHFWzSVAok>5rJcE}zC@ zm%{2fh&GaNo1OV2fI4e$t$<11C2xm)Fqk}q?fS1()Bm4U!%_fr3#Y9_ik^vHz){bg z1H*-y;hKl?;qRPLmE1_E1&RjdDh5*P5KXLepP@K3x>v>pNa)&!zxwT2T3i!IHOUVsP+X&OC~B8c8SawdsKES)gD5Vaz+WT zrDlJiBGI&(l_~Ra<+IyrC8ypq@3uk0`of0$0_nz>|qAjC(|*N#J{Ay_UKOu0RI4U!U%W( diff --git a/projects/content/_shaders/dxil/text.vert.dxil b/projects/content/_shaders/dxil/text.vert.dxil index 33fa0b5ac2450a66e52dacc98e046bd5ef1113f6..1ddba0c56b356a09b39bd07291d52166deae119f 100644 GIT binary patch delta 554 zcmbQCHb+g;CBn&hGwYpe87H1>*>O{|q2!d;Hbw>p2APeL#vFPsv!w6J^zPiUS>Mb^ zsyH(}zPLn~Ws#Coc-!}*-^ARuHF~!Ch=w(awuL#wJQST=%`tQHcK)M`lW%YdSc)xL zbTZ)iqRZEnm(TceOH0Qk!qZ2FgMlG|fsuioiGcyc2QnE1fVQy!#hsiF+*9OXVEDIL zkvpD^F?DjIphUfaYB-lMgGrBIg968+`y2-(7&)30IJlBo6gZlG=!1ou5*Qei**F=R z5*#`ilWOISlO`}IaIjsGP!W@8aD?(Wq;g^<5>9kDGBqejC}bWeO`4zz(Uh>p(VZ=M zfhLrL9Pp@@q!I$>S~Fc4{df3>};M z3mt3Rc!U^O4m$j7HaO92)6krKM1j#kfJeffgW2{3vqk*|h64SUT>qTAEV{cQiFGcqtRNNkie=FmSDbL*zKv}EtjEt}U{ z?&4$$6kMo%_;*q@w{mje^k;77+Z#PweMG|=MJI$6w1!JeuHu-vc?bUy#>qFh1S}PU z+CFKpifU^8;<c{Tzz39{ z0nrYUeg>3Ikc4PI%735%B)tJ4{RC)wf&|=j2fhytyiF+5cMeD+ODFK!u>ivr7)=1O CE~$?I diff --git a/projects/content/_shaders/msl/rect.frag.msl b/projects/content/_shaders/msl/rect.frag.msl index 15adce0..497baf5 100644 --- a/projects/content/_shaders/msl/rect.frag.msl +++ b/projects/content/_shaders/msl/rect.frag.msl @@ -38,222 +38,222 @@ struct main0_in fragment main0_out main0(main0_in in [[stage_in]], const device type_StructuredBuffer_Scene& scene [[buffer(0)]], texture2d Texture0 [[texture(0)]], sampler Sampler0 [[sampler(0)]]) { main0_out out = {}; - bool _73 = in.in_var_TEXCOORD2.x < scene._m0[in.in_var_TEXCOORD3].rounding.x; - bool _80; - if (_73) + bool _71 = in.in_var_TEXCOORD2.x < scene._m0[in.in_var_TEXCOORD3].rounding.x; + bool _78; + if (_71) { - _80 = in.in_var_TEXCOORD2.y < scene._m0[in.in_var_TEXCOORD3].rounding.y; + _78 = in.in_var_TEXCOORD2.y < scene._m0[in.in_var_TEXCOORD3].rounding.y; } else { - _80 = false; + _78 = false; } - float _97; - float3 _98; - if (_80) + float _95; + float3 _96; + if (_78) { - float _84 = distance(in.in_var_TEXCOORD2, float2(scene._m0[in.in_var_TEXCOORD3].rounding.x)); - float _95; - float3 _96; - if (_84 > scene._m0[in.in_var_TEXCOORD3].rounding.x) + float _82 = distance(in.in_var_TEXCOORD2, float2(scene._m0[in.in_var_TEXCOORD3].rounding.x)); + float _93; + float3 _94; + if (_82 > scene._m0[in.in_var_TEXCOORD3].rounding.x) { discard_fragment(); } else { - if (abs(_84 - scene._m0[in.in_var_TEXCOORD3].rounding.x) < 1.0) + if (abs(_82 - scene._m0[in.in_var_TEXCOORD3].rounding.x) < 1.0) { - _95 = scene._m0[in.in_var_TEXCOORD3].edgeColor.w; - _96 = scene._m0[in.in_var_TEXCOORD3].edgeColor.xyz; + _93 = scene._m0[in.in_var_TEXCOORD3].edgeColor.w; + _94 = scene._m0[in.in_var_TEXCOORD3].edgeColor.xyz; } else { - _95 = scene._m0[in.in_var_TEXCOORD3].alpha; - _96 = in.in_var_TEXCOORD0.xyz; + _93 = scene._m0[in.in_var_TEXCOORD3].alpha; + _94 = in.in_var_TEXCOORD0.xyz; } } - _97 = _95; - _98 = _96; + _95 = _93; + _96 = _94; } else { - _97 = scene._m0[in.in_var_TEXCOORD3].alpha; - _98 = in.in_var_TEXCOORD0.xyz; + _95 = scene._m0[in.in_var_TEXCOORD3].alpha; + _96 = in.in_var_TEXCOORD0.xyz; } - float _101 = scene._m0[in.in_var_TEXCOORD3]._imageSize.x - scene._m0[in.in_var_TEXCOORD3].rounding.y; - bool _108; - if (in.in_var_TEXCOORD2.x > _101) + float _99 = scene._m0[in.in_var_TEXCOORD3]._imageSize.x - scene._m0[in.in_var_TEXCOORD3].rounding.y; + bool _106; + if (in.in_var_TEXCOORD2.x > _99) { - _108 = in.in_var_TEXCOORD2.y < scene._m0[in.in_var_TEXCOORD3].rounding.y; + _106 = in.in_var_TEXCOORD2.y < scene._m0[in.in_var_TEXCOORD3].rounding.y; } else { - _108 = false; + _106 = false; } - float _125; - float3 _126; - if (_108) + float _123; + float3 _124; + if (_106) { - float _112 = distance(in.in_var_TEXCOORD2, float2(_101, scene._m0[in.in_var_TEXCOORD3].rounding.y)); - float _123; - float3 _124; - if (_112 > scene._m0[in.in_var_TEXCOORD3].rounding.y) + float _110 = distance(in.in_var_TEXCOORD2, float2(_99, scene._m0[in.in_var_TEXCOORD3].rounding.y)); + float _121; + float3 _122; + if (_110 > scene._m0[in.in_var_TEXCOORD3].rounding.y) { discard_fragment(); } else { - if (abs(_112 - scene._m0[in.in_var_TEXCOORD3].rounding.y) < 1.0) + if (abs(_110 - scene._m0[in.in_var_TEXCOORD3].rounding.y) < 1.0) { - _123 = scene._m0[in.in_var_TEXCOORD3].edgeColor.w; - _124 = scene._m0[in.in_var_TEXCOORD3].edgeColor.xyz; + _121 = scene._m0[in.in_var_TEXCOORD3].edgeColor.w; + _122 = scene._m0[in.in_var_TEXCOORD3].edgeColor.xyz; } else { - _123 = _97; - _124 = _98; + _121 = _95; + _122 = _96; } } - _125 = _123; - _126 = _124; + _123 = _121; + _124 = _122; } else { - _125 = _97; - _126 = _98; + _123 = _95; + _124 = _96; } - bool _134; - if (_73) + bool _132; + if (_71) { - _134 = in.in_var_TEXCOORD2.y > (scene._m0[in.in_var_TEXCOORD3]._imageSize.y - scene._m0[in.in_var_TEXCOORD3].rounding.y); + _132 = in.in_var_TEXCOORD2.y > (scene._m0[in.in_var_TEXCOORD3]._imageSize.y - scene._m0[in.in_var_TEXCOORD3].rounding.y); } else { - _134 = false; + _132 = false; } - float _153; - float3 _154; - if (_134) + float _151; + float3 _152; + if (_132) { - float _140 = distance(in.in_var_TEXCOORD2, float2(scene._m0[in.in_var_TEXCOORD3].rounding.x, scene._m0[in.in_var_TEXCOORD3]._imageSize.y - scene._m0[in.in_var_TEXCOORD3].rounding.y)); - float _151; - float3 _152; - if (_140 > scene._m0[in.in_var_TEXCOORD3].rounding.y) + float _138 = distance(in.in_var_TEXCOORD2, float2(scene._m0[in.in_var_TEXCOORD3].rounding.x, scene._m0[in.in_var_TEXCOORD3]._imageSize.y - scene._m0[in.in_var_TEXCOORD3].rounding.y)); + float _149; + float3 _150; + if (_138 > scene._m0[in.in_var_TEXCOORD3].rounding.y) { discard_fragment(); } else { - if (abs(_140 - scene._m0[in.in_var_TEXCOORD3].rounding.y) < 1.0) + if (abs(_138 - scene._m0[in.in_var_TEXCOORD3].rounding.y) < 1.0) { - _151 = scene._m0[in.in_var_TEXCOORD3].edgeColor.w; - _152 = scene._m0[in.in_var_TEXCOORD3].edgeColor.xyz; + _149 = scene._m0[in.in_var_TEXCOORD3].edgeColor.w; + _150 = scene._m0[in.in_var_TEXCOORD3].edgeColor.xyz; } else { - _151 = _125; - _152 = _126; + _149 = _123; + _150 = _124; } } - _153 = _151; - _154 = _152; + _151 = _149; + _152 = _150; } else { - _153 = _125; - _154 = _126; + _151 = _123; + _152 = _124; } - bool _165; + bool _163; if (in.in_var_TEXCOORD2.x > (scene._m0[in.in_var_TEXCOORD3]._imageSize.x - scene._m0[in.in_var_TEXCOORD3].rounding.w)) { - _165 = (scene._m0[in.in_var_TEXCOORD3]._imageSize.y - in.in_var_TEXCOORD2.y) < scene._m0[in.in_var_TEXCOORD3].rounding.w; + _163 = (scene._m0[in.in_var_TEXCOORD3]._imageSize.y - in.in_var_TEXCOORD2.y) < scene._m0[in.in_var_TEXCOORD3].rounding.w; } else { - _165 = false; + _163 = false; } - float _185; - float3 _186; - if (_165) + float _183; + float3 _184; + if (_163) { - float _172 = distance(in.in_var_TEXCOORD2, float2(scene._m0[in.in_var_TEXCOORD3]._imageSize.x - scene._m0[in.in_var_TEXCOORD3].rounding.x, scene._m0[in.in_var_TEXCOORD3]._imageSize.y - scene._m0[in.in_var_TEXCOORD3].rounding.y)); - float _183; - float3 _184; - if (_172 > scene._m0[in.in_var_TEXCOORD3].rounding.y) + float _170 = distance(in.in_var_TEXCOORD2, float2(scene._m0[in.in_var_TEXCOORD3]._imageSize.x - scene._m0[in.in_var_TEXCOORD3].rounding.x, scene._m0[in.in_var_TEXCOORD3]._imageSize.y - scene._m0[in.in_var_TEXCOORD3].rounding.y)); + float _181; + float3 _182; + if (_170 > scene._m0[in.in_var_TEXCOORD3].rounding.y) { discard_fragment(); } else { - if (abs(_172 - scene._m0[in.in_var_TEXCOORD3].rounding.y) < 1.0) + if (abs(_170 - scene._m0[in.in_var_TEXCOORD3].rounding.y) < 1.0) { - _183 = scene._m0[in.in_var_TEXCOORD3].edgeColor.w; - _184 = scene._m0[in.in_var_TEXCOORD3].edgeColor.xyz; + _181 = scene._m0[in.in_var_TEXCOORD3].edgeColor.w; + _182 = scene._m0[in.in_var_TEXCOORD3].edgeColor.xyz; } else { - _183 = _153; - _184 = _154; + _181 = _151; + _182 = _152; } } - _185 = _183; - _186 = _184; + _183 = _181; + _184 = _182; } else { - _185 = _153; - _186 = _154; + _183 = _151; + _184 = _152; } - bool _193; + bool _191; if (!(in.in_var_TEXCOORD2.x < scene._m0[in.in_var_TEXCOORD3].borderWidth)) { - _193 = in.in_var_TEXCOORD2.x > (scene._m0[in.in_var_TEXCOORD3]._imageSize.x - scene._m0[in.in_var_TEXCOORD3].borderWidth); + _191 = in.in_var_TEXCOORD2.x > (scene._m0[in.in_var_TEXCOORD3]._imageSize.x - scene._m0[in.in_var_TEXCOORD3].borderWidth); } else { - _193 = true; + _191 = true; } - bool _200; - if (!_193) + bool _198; + if (!_191) { - _200 = in.in_var_TEXCOORD2.y < scene._m0[in.in_var_TEXCOORD3].borderWidth; + _198 = in.in_var_TEXCOORD2.y < scene._m0[in.in_var_TEXCOORD3].borderWidth; } else { - _200 = true; + _198 = true; } - bool _209; - if (!_200) + bool _207; + if (!_198) { - _209 = in.in_var_TEXCOORD2.y > (scene._m0[in.in_var_TEXCOORD3]._imageSize.y - scene._m0[in.in_var_TEXCOORD3].borderWidth); + _207 = in.in_var_TEXCOORD2.y > (scene._m0[in.in_var_TEXCOORD3]._imageSize.y - scene._m0[in.in_var_TEXCOORD3].borderWidth); } else { - _209 = true; + _207 = true; } - float _214; - float3 _215; - if (_209) + float _212; + float3 _213; + if (_207) { - _214 = scene._m0[in.in_var_TEXCOORD3].edgeColor.w; - _215 = scene._m0[in.in_var_TEXCOORD3].edgeColor.xyz; + _212 = scene._m0[in.in_var_TEXCOORD3].edgeColor.w; + _213 = scene._m0[in.in_var_TEXCOORD3].edgeColor.xyz; } else { - _214 = _185; - _215 = _186; + _212 = _183; + _213 = _184; } - float4 _241; + float4 _238; if ((scene._m0[in.in_var_TEXCOORD3].flags & 1u) > 0u) { - float4 _229 = Texture0.sample(Sampler0, float2(in.in_var_TEXCOORD1.x, 1.0 - in.in_var_TEXCOORD1.y)); - _241 = float4(_229.xyz, _229.w * _214); + float4 _227 = Texture0.sample(Sampler0, float2(in.in_var_TEXCOORD1.x, 1.0 - in.in_var_TEXCOORD1.y)); + _238 = float4(_227.xyz, _227.w * _212); } else { - _241 = float4(powr(_215, float3(2.2000000476837158203125)), _214); + _238 = float4(_213, _212); } - out.out_var_SV_Target0 = _241; + out.out_var_SV_Target0 = _238; return out; } diff --git a/projects/content/_shaders/msl/text.frag.msl b/projects/content/_shaders/msl/text.frag.msl index b3e2448..6fdccbf 100644 --- a/projects/content/_shaders/msl/text.frag.msl +++ b/projects/content/_shaders/msl/text.frag.msl @@ -9,7 +9,6 @@ struct FontInfo float2 size; uint isSdf; uint pad0; - float2 pad2; }; struct type_StructuredBuffer_FontInfo @@ -17,7 +16,7 @@ struct type_StructuredBuffer_FontInfo FontInfo _m0[1]; }; -constant float _43 = {}; +constant float _59 = {}; struct main0_out { @@ -28,26 +27,77 @@ struct main0_in { uint in_var_TEXCOORD0 [[user(locn0)]]; float2 in_var_TEXCOORD1 [[user(locn1)]]; + float2 in_var_TEXCOORD2 [[user(locn2)]]; uint in_var_TEXCOORD3 [[user(locn3)]]; }; fragment main0_out main0(main0_in in [[stage_in]], const device type_StructuredBuffer_FontInfo& fontBuffer [[buffer(0)]], texture2d Texture0 [[texture(0)]], sampler Sampler0 [[sampler(0)]]) { main0_out out = {}; - float4 _51 = Texture0.sample(Sampler0, in.in_var_TEXCOORD1); - float4 _65 = float4(float(in.in_var_TEXCOORD0 & 255u) * 0.0039215688593685626983642578125, float((in.in_var_TEXCOORD0 >> 8u) & 255u) * 0.0039215688593685626983642578125, float((in.in_var_TEXCOORD0 >> 16u) & 255u) * 0.0039215688593685626983642578125, _43); - float4 _73; - if (fontBuffer._m0[in.in_var_TEXCOORD3].isSdf == 0u) + float4 _67 = Texture0.sample(Sampler0, in.in_var_TEXCOORD1); + bool _104; + do { - float3 _71 = powr(_65.xyz, float3(2.2000000476837158203125)); - _73 = float4(_71.x, _71.y, _71.z, _65.w); + bool _85; + if (in.in_var_TEXCOORD2.x >= fontBuffer._m0[in.in_var_TEXCOORD3].position.x) + { + _85 = in.in_var_TEXCOORD2.x <= (fontBuffer._m0[in.in_var_TEXCOORD3].position.x + fontBuffer._m0[in.in_var_TEXCOORD3].size.x); + } + else + { + _85 = false; + } + bool _92; + if (_85) + { + _92 = in.in_var_TEXCOORD2.y >= fontBuffer._m0[in.in_var_TEXCOORD3].position.y; + } + else + { + _92 = false; + } + bool _101; + if (_92) + { + _101 = in.in_var_TEXCOORD2.y <= (fontBuffer._m0[in.in_var_TEXCOORD3].position.y + fontBuffer._m0[in.in_var_TEXCOORD3].size.y); + } + else + { + _101 = false; + } + if (_101) + { + _104 = true; + break; + } + _104 = false; + break; + } while(false); + if (!_104) + { + discard_fragment(); + } + float _110 = float(in.in_var_TEXCOORD0 & 255u) * 0.0039215688593685626983642578125; + float _114 = float((in.in_var_TEXCOORD0 >> 8u) & 255u) * 0.0039215688593685626983642578125; + float _118 = float((in.in_var_TEXCOORD0 >> 16u) & 255u) * 0.0039215688593685626983642578125; + float4 _181; + if (fontBuffer._m0[in.in_var_TEXCOORD3].isSdf == 1u) + { + float _124 = _67.x; + float _125 = fwidth(_124); + float _126 = 0.529411792755126953125 - _125; + float _127 = 0.529411792755126953125 + _125; + float2 _133 = (dfdx(in.in_var_TEXCOORD1) + dfdy(in.in_var_TEXCOORD1)) * 0.3540000021457672119140625; + float4 _140 = float4(in.in_var_TEXCOORD1 - _133, in.in_var_TEXCOORD1 + _133); + float4 _171 = float4(_110, _114, _118, (fast::clamp(smoothstep(_126, _127, _124), 0.0, 1.0) + (0.5 * (((fast::clamp(smoothstep(_126, _127, Texture0.sample(Sampler0, _140.xy).x), 0.0, 1.0) + fast::clamp(smoothstep(_126, _127, Texture0.sample(Sampler0, _140.zw).x), 0.0, 1.0)) + fast::clamp(smoothstep(_126, _127, Texture0.sample(Sampler0, _140.xw).x), 0.0, 1.0)) + fast::clamp(smoothstep(_126, _127, Texture0.sample(Sampler0, _140.zy).x), 0.0, 1.0)))) * 0.3333333432674407958984375); + float3 _173 = powr(_171.xyz, float3(2.2000000476837158203125)); + _181 = float4(_173.x, _173.y, _173.z, _171.w); } else { - _73 = _65; + _181 = float4(_110, _114, _118, powr(_67.x / dot(float4(_110, _114, _118, _59).xyz, float3(0.2125999927520751953125, 0.715200006961822509765625, 0.072200000286102294921875)), 0.4545454680919647216796875)); } - float _74 = _51.x; - out.out_var_SV_Target0 = float4(1.0, 1.0, 1.0, _74) + (float4(_73.xyz, _74) * 9.9999997473787516355514526367188e-06); + out.out_var_SV_Target0 = _181; return out; } diff --git a/projects/content/_shaders/msl/text.vert.msl b/projects/content/_shaders/msl/text.vert.msl index 8f4fe39..fdb1abb 100644 --- a/projects/content/_shaders/msl/text.vert.msl +++ b/projects/content/_shaders/msl/text.vert.msl @@ -9,7 +9,6 @@ struct FontInfo float2 size; uint isSdf; uint pad0; - float2 pad2; }; struct type_StructuredBuffer_FontInfo diff --git a/projects/content/_shaders/spv/rect.frag.spv b/projects/content/_shaders/spv/rect.frag.spv index de42cd147f7292571efcc7aa657223b6d38b263f..f89070bec878445fe8419429bd344edc4d5a4545 100644 GIT binary patch literal 6248 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 literal 6316 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 Y_pbrX-q?5aos|x)h!y*96rLXZ4_PaVBme*a diff --git a/projects/content/_shaders/spv/text.frag.spv b/projects/content/_shaders/spv/text.frag.spv index 240a1988c04ae93b101b5d3baf4fe2b2da979131..302c6caff186e3d28aa5bfd07a3f8f67d50fdccb 100644 GIT binary patch literal 4600 zcmZ9OS9eua6on5Zi2@2p2f6IkOg~^xv*D*Nh zoqGBw<>_3zwtj6@XQ8ob{(?EiFHHJ4rLloYzoaj`H`v|K(yHI6zA{h_*dQ5%*Bp5t z{u$eXql}F6;DtTyO;z(6t6Fw9>}o;xN*wC@Fslbk9?3TYn zwGAXUy_aIIdoHIoy+OZ&B$2yck@ro{GY;EPOHIE6ZF{DzZf*C{cCEI((pF!7z2CqD z5c%5Ufx~?7Js;Q3$JLdOYa3V3YShF%PsDbF&$vFn&G4x~-=LgN-THCq|IEyqOh;TK6UbBwdc7CZmr^d7JnCuurKE~ z>-pn;?Z@v}S2HhWo#$T+)UNIMtAW}hz67pTZTnXP?2WefzZBS;P3&clmw_6fe={q+ zljT6awH-@2t#_~j*hk+4_wg-=eOJPbo9q3o0{L9mn5*X6EFQV5OLBcvB6khk_-~y0 z8fM2|aQl5Nus_aAIgfo^3%tA7&mLcw`PUQCz8B*q7C>hg-+k*IE6IaO)fUgBnrG`B!?Th8uuyhvzZheblmv*`XG5HUoWX zk;mD$z&(5P&$Dg?`a|!HaL?}d7iYf-Zk{oNVee)piTBLv7~V3iPQ> z9@@6SOSNssr$4kcz(ZU3Zo_AP)f@fY0XNrJ^tTbd9T@Wrp}{%M&;<7kp38jod4^_Y zhi5QnC(!2^@K6!=M_R&FuY|?ViRT0p{pGocRu9{!yvFnD;2$I>ut{!JIG7eh8nrj_^GO z*Qd_#Jq~xhBYaQ5^_ds<^CaAw)^LqEb=;lWp902(!*%iZ3s#e2ITd=iml&uj?nuW+?XTuybdqb zYhJ|P$l~fXw^Z+Od}=l?^u7rXz4q7o(cib=H6X9|ZEXFnbA;Y^;Km%G=Uuq<@^^1u z#NW%}>NU4i@B8?U1M}kTIRPIHjKw{CkaFMVb9pD>`mY4>8#o2ezftDY@jhJ4{2?$d z9O||o1Ne;?|0wghx4C0M9seih***rYGp8>o1LeSP)xRx!n0?!P<6^&0;J%r{5&Iow z^$6@wfjJXE^!PLQa^N_W<$Vs1*y+Ze#>ph^qz0X5mWgME*;{8&Z?+4V zGw3y%v7Y4TOu$Za#Jaa}wy7p7Ol%^~uCrGCsnM^l++SRq2e~IjApNG+E!zL>f@E5X@}$HFJMZX9!d%4tr& z0sTMYbe7_~h;)Q=2IMHG@elBs?HzUNGhZp! ztuY53VyroI@f7PDWU*qb zOX$Y(+fT7BBa0VfT|pO5vF4G*jCGgZoyk?$dd)KryRToU**AC%wtwIMYqoQpQ+i9^ z+HSx%VRxxqVyOs#@-Oc8q8aHU=IbTMUY&fV9-+xh&?)05jnU A0ssI2 delta 78 zcmZ3%e}#X-9|1N7Rt6ph1_l-&E=Wu<+V~@dNznsIP#Gv80mSY=B?3U24Tu#cXEJ|f RWS<<*BFZSXxsb)282}bk41xdv diff --git a/projects/sampleGame/externGame/externGame.zig b/projects/sampleGame/externGame/externGame.zig index 8c1ddb7..597eb6e 100644 --- a/projects/sampleGame/externGame/externGame.zig +++ b/projects/sampleGame/externGame/externGame.zig @@ -93,19 +93,20 @@ pub const ExternGameObject = struct { { const ctx = ui.getScreen(); const panel2 = try ctx.addPanel(.{}); + ctx.drawDebug = true; { ctx.getPanel(panel2).hasTitle = true; //ctx.get(panel2).anchor = .TopRight; // ctx.get(panel2).fill = .FillY; todo, this is a bug. why. ctx.get(panel2).pos = .{ .x = 900, .y = 200 }; - ctx.get(panel2).size = .{ .x = 100, .y = 100 }; + ctx.get(panel2).size = .{ .x = 300, .y = 400 }; ctx.get(panel2).style.backgroundColor = ui.ModernStyle.GreyDark; ctx.getPanel(panel2).titleColor = ui.ModernStyle.GreyDark; // add some text to this panel const text = try ctx.addText(panel2, "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."); - ctx.get(text).pos = .{ .x = 32, .y = 32 }; - ctx.get(text).size = .{ .x = 300, .y = 400 }; + ctx.get(text).pos = .{ .x = 2, .y = 2 }; + ctx.get(text).size = ctx.get(panel2).size.sub(.{ .x = 4, .y = 36 }); } }