From f263110d939ef9a7aee97d655266498ab2339996 Mon Sep 17 00:00:00 2001 From: "therealmogminer@gmail.com" Date: Fri, 27 May 2016 14:45:28 +0200 Subject: [PATCH] Fix crash when using pillarbox shaders, nw --- bgfx/chains/pillarbox_left_horizontal.json | 2 +- bgfx/chains/pillarbox_left_vertical.json | 2 +- bgfx/chains/pillarbox_right_horizontal.json | 2 +- bgfx/chains/pillarbox_right_vertical.json | 2 +- .../pillarbox_left_horizontal/offset_sat.json | 34 ++++++++++++++++++ .../pillarbox_left_vertical/offset_sat.json | 34 ++++++++++++++++++ .../offset_sat.json | 34 ++++++++++++++++++ .../pillarbox_right_vertical/offset_sat.json | 34 ++++++++++++++++++ .../dx11/chains/misc/vs_saturation.bin | Bin 615 -> 575 bytes .../fs_offset_sat.bin | Bin 0 -> 523 bytes .../vs_offset_sat.bin | Bin 0 -> 615 bytes .../pillarbox_left_vertical/fs_offset_sat.bin | Bin 0 -> 523 bytes .../pillarbox_left_vertical/vs_offset_sat.bin | Bin 0 -> 615 bytes .../fs_offset_sat.bin | Bin 0 -> 523 bytes .../vs_offset_sat.bin | Bin 0 -> 615 bytes .../fs_offset_sat.bin | Bin 0 -> 523 bytes .../vs_offset_sat.bin | Bin 0 -> 615 bytes .../shaders/dx9/chains/misc/vs_saturation.bin | Bin 362 -> 330 bytes .../fs_offset_sat.bin | Bin 0 -> 372 bytes .../vs_offset_sat.bin | Bin 0 -> 362 bytes .../pillarbox_left_vertical/fs_offset_sat.bin | Bin 0 -> 372 bytes .../pillarbox_left_vertical/vs_offset_sat.bin | Bin 0 -> 362 bytes .../fs_offset_sat.bin | Bin 0 -> 372 bytes .../vs_offset_sat.bin | Bin 0 -> 362 bytes .../fs_offset_sat.bin | Bin 0 -> 372 bytes .../vs_offset_sat.bin | Bin 0 -> 362 bytes .../gles/chains/misc/vs_saturation.bin | Bin 463 -> 419 bytes .../fs_offset_sat.bin | Bin 0 -> 456 bytes .../vs_offset_sat.bin | Bin 0 -> 458 bytes .../pillarbox_left_vertical/fs_offset_sat.bin | Bin 0 -> 456 bytes .../pillarbox_left_vertical/vs_offset_sat.bin | Bin 0 -> 463 bytes .../fs_offset_sat.bin | Bin 0 -> 456 bytes .../vs_offset_sat.bin | Bin 0 -> 459 bytes .../fs_offset_sat.bin | Bin 0 -> 456 bytes .../vs_offset_sat.bin | Bin 0 -> 469 bytes .../glsl/chains/misc/vs_saturation.bin | Bin 421 -> 377 bytes .../fs_offset_sat.bin | Bin 0 -> 429 bytes .../vs_offset_sat.bin | Bin 0 -> 416 bytes .../pillarbox_left_vertical/fs_offset_sat.bin | Bin 0 -> 429 bytes .../pillarbox_left_vertical/vs_offset_sat.bin | Bin 0 -> 421 bytes .../fs_offset_sat.bin | Bin 0 -> 429 bytes .../vs_offset_sat.bin | Bin 0 -> 417 bytes .../fs_offset_sat.bin | Bin 0 -> 429 bytes .../vs_offset_sat.bin | Bin 0 -> 427 bytes .../metal/chains/misc/vs_saturation.bin | Bin 805 -> 757 bytes .../fs_offset_sat.bin | Bin 0 -> 832 bytes .../vs_offset_sat.bin | Bin 0 -> 800 bytes .../pillarbox_left_vertical/fs_offset_sat.bin | Bin 0 -> 832 bytes .../pillarbox_left_vertical/vs_offset_sat.bin | Bin 0 -> 805 bytes .../fs_offset_sat.bin | Bin 0 -> 832 bytes .../vs_offset_sat.bin | Bin 0 -> 801 bytes .../fs_offset_sat.bin | Bin 0 -> 832 bytes .../vs_offset_sat.bin | Bin 0 -> 811 bytes src/osd/modules/render/bgfx/chain.cpp | 18 +++++++--- src/osd/modules/render/bgfx/chainmanager.cpp | 6 ++-- .../bgfx/shaders/chains/misc/vs_saturation.sc | 2 +- .../fs_offset_sat.sc | 25 +++++++++++++ .../vs_offset_sat.sc | 17 +++++++++ .../pillarbox_left_vertical/fs_offset_sat.sc | 25 +++++++++++++ .../pillarbox_left_vertical/vs_offset_sat.sc | 17 +++++++++ .../fs_offset_sat.sc | 25 +++++++++++++ .../vs_offset_sat.sc | 17 +++++++++ .../pillarbox_right_vertical/fs_offset_sat.sc | 25 +++++++++++++ .../pillarbox_right_vertical/vs_offset_sat.sc | 17 +++++++++ 64 files changed, 326 insertions(+), 12 deletions(-) create mode 100644 bgfx/effects/pillarbox_left_horizontal/offset_sat.json create mode 100644 bgfx/effects/pillarbox_left_vertical/offset_sat.json create mode 100644 bgfx/effects/pillarbox_right_horizontal/offset_sat.json create mode 100644 bgfx/effects/pillarbox_right_vertical/offset_sat.json create mode 100644 bgfx/shaders/dx11/chains/pillarbox_left_horizontal/fs_offset_sat.bin create mode 100644 bgfx/shaders/dx11/chains/pillarbox_left_horizontal/vs_offset_sat.bin create mode 100644 bgfx/shaders/dx11/chains/pillarbox_left_vertical/fs_offset_sat.bin create mode 100644 bgfx/shaders/dx11/chains/pillarbox_left_vertical/vs_offset_sat.bin create mode 100644 bgfx/shaders/dx11/chains/pillarbox_right_horizontal/fs_offset_sat.bin create mode 100644 bgfx/shaders/dx11/chains/pillarbox_right_horizontal/vs_offset_sat.bin create mode 100644 bgfx/shaders/dx11/chains/pillarbox_right_vertical/fs_offset_sat.bin create mode 100644 bgfx/shaders/dx11/chains/pillarbox_right_vertical/vs_offset_sat.bin create mode 100644 bgfx/shaders/dx9/chains/pillarbox_left_horizontal/fs_offset_sat.bin create mode 100644 bgfx/shaders/dx9/chains/pillarbox_left_horizontal/vs_offset_sat.bin create mode 100644 bgfx/shaders/dx9/chains/pillarbox_left_vertical/fs_offset_sat.bin create mode 100644 bgfx/shaders/dx9/chains/pillarbox_left_vertical/vs_offset_sat.bin create mode 100644 bgfx/shaders/dx9/chains/pillarbox_right_horizontal/fs_offset_sat.bin create mode 100644 bgfx/shaders/dx9/chains/pillarbox_right_horizontal/vs_offset_sat.bin create mode 100644 bgfx/shaders/dx9/chains/pillarbox_right_vertical/fs_offset_sat.bin create mode 100644 bgfx/shaders/dx9/chains/pillarbox_right_vertical/vs_offset_sat.bin create mode 100644 bgfx/shaders/gles/chains/pillarbox_left_horizontal/fs_offset_sat.bin create mode 100644 bgfx/shaders/gles/chains/pillarbox_left_horizontal/vs_offset_sat.bin create mode 100644 bgfx/shaders/gles/chains/pillarbox_left_vertical/fs_offset_sat.bin create mode 100644 bgfx/shaders/gles/chains/pillarbox_left_vertical/vs_offset_sat.bin create mode 100644 bgfx/shaders/gles/chains/pillarbox_right_horizontal/fs_offset_sat.bin create mode 100644 bgfx/shaders/gles/chains/pillarbox_right_horizontal/vs_offset_sat.bin create mode 100644 bgfx/shaders/gles/chains/pillarbox_right_vertical/fs_offset_sat.bin create mode 100644 bgfx/shaders/gles/chains/pillarbox_right_vertical/vs_offset_sat.bin create mode 100644 bgfx/shaders/glsl/chains/pillarbox_left_horizontal/fs_offset_sat.bin create mode 100644 bgfx/shaders/glsl/chains/pillarbox_left_horizontal/vs_offset_sat.bin create mode 100644 bgfx/shaders/glsl/chains/pillarbox_left_vertical/fs_offset_sat.bin create mode 100644 bgfx/shaders/glsl/chains/pillarbox_left_vertical/vs_offset_sat.bin create mode 100644 bgfx/shaders/glsl/chains/pillarbox_right_horizontal/fs_offset_sat.bin create mode 100644 bgfx/shaders/glsl/chains/pillarbox_right_horizontal/vs_offset_sat.bin create mode 100644 bgfx/shaders/glsl/chains/pillarbox_right_vertical/fs_offset_sat.bin create mode 100644 bgfx/shaders/glsl/chains/pillarbox_right_vertical/vs_offset_sat.bin create mode 100644 bgfx/shaders/metal/chains/pillarbox_left_horizontal/fs_offset_sat.bin create mode 100644 bgfx/shaders/metal/chains/pillarbox_left_horizontal/vs_offset_sat.bin create mode 100644 bgfx/shaders/metal/chains/pillarbox_left_vertical/fs_offset_sat.bin create mode 100644 bgfx/shaders/metal/chains/pillarbox_left_vertical/vs_offset_sat.bin create mode 100644 bgfx/shaders/metal/chains/pillarbox_right_horizontal/fs_offset_sat.bin create mode 100644 bgfx/shaders/metal/chains/pillarbox_right_horizontal/vs_offset_sat.bin create mode 100644 bgfx/shaders/metal/chains/pillarbox_right_vertical/fs_offset_sat.bin create mode 100644 bgfx/shaders/metal/chains/pillarbox_right_vertical/vs_offset_sat.bin create mode 100644 src/osd/modules/render/bgfx/shaders/chains/pillarbox_left_horizontal/fs_offset_sat.sc create mode 100644 src/osd/modules/render/bgfx/shaders/chains/pillarbox_left_horizontal/vs_offset_sat.sc create mode 100644 src/osd/modules/render/bgfx/shaders/chains/pillarbox_left_vertical/fs_offset_sat.sc create mode 100644 src/osd/modules/render/bgfx/shaders/chains/pillarbox_left_vertical/vs_offset_sat.sc create mode 100644 src/osd/modules/render/bgfx/shaders/chains/pillarbox_right_horizontal/fs_offset_sat.sc create mode 100644 src/osd/modules/render/bgfx/shaders/chains/pillarbox_right_horizontal/vs_offset_sat.sc create mode 100644 src/osd/modules/render/bgfx/shaders/chains/pillarbox_right_vertical/fs_offset_sat.sc create mode 100644 src/osd/modules/render/bgfx/shaders/chains/pillarbox_right_vertical/vs_offset_sat.sc diff --git a/bgfx/chains/pillarbox_left_horizontal.json b/bgfx/chains/pillarbox_left_horizontal.json index 4f608756e5b..bb0664330f0 100644 --- a/bgfx/chains/pillarbox_left_horizontal.json +++ b/bgfx/chains/pillarbox_left_horizontal.json @@ -79,7 +79,7 @@ "output": "internal" }, { - "effect": "misc/saturation", + "effect": "pillarbox_left_horizontal/offset_sat", "name": "Saturation Pass", "disablewhen": [ { "type": "slider", "condition": "equal", "name": "saturation", "value": 100 } diff --git a/bgfx/chains/pillarbox_left_vertical.json b/bgfx/chains/pillarbox_left_vertical.json index 10b6dc86f29..9132b77eefa 100644 --- a/bgfx/chains/pillarbox_left_vertical.json +++ b/bgfx/chains/pillarbox_left_vertical.json @@ -79,7 +79,7 @@ "output": "internal" }, { - "effect": "misc/saturation", + "effect": "pillarbox_left_vertical/offset_sat", "name": "Saturation Pass", "disablewhen": [ { "type": "slider", "condition": "equal", "name": "saturation", "value": 100 } diff --git a/bgfx/chains/pillarbox_right_horizontal.json b/bgfx/chains/pillarbox_right_horizontal.json index 78368b23b06..1b4798e6b18 100644 --- a/bgfx/chains/pillarbox_right_horizontal.json +++ b/bgfx/chains/pillarbox_right_horizontal.json @@ -79,7 +79,7 @@ "output": "internal" }, { - "effect": "misc/saturation", + "effect": "pillarbox_right_horizontal/offset_sat", "name": "Saturation Pass", "disablewhen": [ { "type": "slider", "condition": "equal", "name": "saturation", "value": 100 } diff --git a/bgfx/chains/pillarbox_right_vertical.json b/bgfx/chains/pillarbox_right_vertical.json index 9c29e546c58..1dcc15c5d29 100644 --- a/bgfx/chains/pillarbox_right_vertical.json +++ b/bgfx/chains/pillarbox_right_vertical.json @@ -79,7 +79,7 @@ "output": "internal" }, { - "effect": "misc/saturation", + "effect": "pillarbox_right_vertical/offset_sat", "name": "Saturation Pass", "disablewhen": [ { "type": "slider", "condition": "equal", "name": "saturation", "value": 100 } diff --git a/bgfx/effects/pillarbox_left_horizontal/offset_sat.json b/bgfx/effects/pillarbox_left_horizontal/offset_sat.json new file mode 100644 index 00000000000..b68e91cb8bc --- /dev/null +++ b/bgfx/effects/pillarbox_left_horizontal/offset_sat.json @@ -0,0 +1,34 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz +//============================================================ +// +// offset_sat.json: Applies saturation to an image. +// +// Additionally, takes only a portion of the image, as +// this instance is intended for the left-hand pillarbox +// when displaying 4:3 content on a 16:9 screen. +// +//============================================================ +{ + "blend": { + "equation": "add", + "srcColor": "srcalpha", + "dstColor": "1-srcalpha", + "srcAlpha": "srcalpha", + "dstAlpha": "1-srcalpha" + }, + "depth": { + "function": "always" + }, + "cull": { "mode": "none" }, + "write": { + "rgb": true, + "alpha": true + }, + "vertex": "chains/pillarbox_left_horizontal/vs_offset_sat", + "fragment": "chains/pillarbox_left_horizontal/fs_offset_sat", + "uniforms": [ + { "name": "s_tex", "type": "int", "values": [ 1.0 ] }, + { "name": "u_saturation", "type": "vec4", "values": [ 1.0, 0.0, 0.0, 0.0 ] } + ] +} \ No newline at end of file diff --git a/bgfx/effects/pillarbox_left_vertical/offset_sat.json b/bgfx/effects/pillarbox_left_vertical/offset_sat.json new file mode 100644 index 00000000000..521bcc88064 --- /dev/null +++ b/bgfx/effects/pillarbox_left_vertical/offset_sat.json @@ -0,0 +1,34 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz +//============================================================ +// +// offset_sat.json: Applies saturation to an image. +// +// Additionally, takes only a portion of the image, as +// this instance is intended for the left-hand pillarbox +// when displaying 3:4 content on a 16:9 screen. +// +//============================================================ +{ + "blend": { + "equation": "add", + "srcColor": "srcalpha", + "dstColor": "1-srcalpha", + "srcAlpha": "srcalpha", + "dstAlpha": "1-srcalpha" + }, + "depth": { + "function": "always" + }, + "cull": { "mode": "none" }, + "write": { + "rgb": true, + "alpha": true + }, + "vertex": "chains/pillarbox_left_vertical/vs_offset_sat", + "fragment": "chains/pillarbox_left_vertical/fs_offset_sat", + "uniforms": [ + { "name": "s_tex", "type": "int", "values": [ 1.0 ] }, + { "name": "u_saturation", "type": "vec4", "values": [ 1.0, 0.0, 0.0, 0.0 ] } + ] +} \ No newline at end of file diff --git a/bgfx/effects/pillarbox_right_horizontal/offset_sat.json b/bgfx/effects/pillarbox_right_horizontal/offset_sat.json new file mode 100644 index 00000000000..019161b2cd8 --- /dev/null +++ b/bgfx/effects/pillarbox_right_horizontal/offset_sat.json @@ -0,0 +1,34 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz +//============================================================ +// +// offset_sat.json: Applies saturation to an image. +// +// Additionally, takes only a portion of the image, as +// this instance is intended for the right-hand pillarbox +// when displaying 4:3 content on a 16:9 screen. +// +//============================================================ +{ + "blend": { + "equation": "add", + "srcColor": "srcalpha", + "dstColor": "1-srcalpha", + "srcAlpha": "srcalpha", + "dstAlpha": "1-srcalpha" + }, + "depth": { + "function": "always" + }, + "cull": { "mode": "none" }, + "write": { + "rgb": true, + "alpha": true + }, + "vertex": "chains/pillarbox_right_horizontal/vs_offset_sat", + "fragment": "chains/pillarbox_right_horizontal/fs_offset_sat", + "uniforms": [ + { "name": "s_tex", "type": "int", "values": [ 1.0 ] }, + { "name": "u_saturation", "type": "vec4", "values": [ 1.0, 0.0, 0.0, 0.0 ] } + ] +} \ No newline at end of file diff --git a/bgfx/effects/pillarbox_right_vertical/offset_sat.json b/bgfx/effects/pillarbox_right_vertical/offset_sat.json new file mode 100644 index 00000000000..66fab42c3e9 --- /dev/null +++ b/bgfx/effects/pillarbox_right_vertical/offset_sat.json @@ -0,0 +1,34 @@ +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz +//============================================================ +// +// offset_sat.json: Applies saturation to an image. +// +// Additionally, takes only a portion of the image, as +// this instance is intended for the right-hand pillarbox +// when displaying 3:4 content on a 16:9 screen. +// +//============================================================ +{ + "blend": { + "equation": "add", + "srcColor": "srcalpha", + "dstColor": "1-srcalpha", + "srcAlpha": "srcalpha", + "dstAlpha": "1-srcalpha" + }, + "depth": { + "function": "always" + }, + "cull": { "mode": "none" }, + "write": { + "rgb": true, + "alpha": true + }, + "vertex": "chains/pillarbox_right_vertical/vs_offset_sat", + "fragment": "chains/pillarbox_right_vertical/fs_offset_sat", + "uniforms": [ + { "name": "s_tex", "type": "int", "values": [ 1.0 ] }, + { "name": "u_saturation", "type": "vec4", "values": [ 1.0, 0.0, 0.0, 0.0 ] } + ] +} \ No newline at end of file diff --git a/bgfx/shaders/dx11/chains/misc/vs_saturation.bin b/bgfx/shaders/dx11/chains/misc/vs_saturation.bin index 7a3bdff1a9868559841089c87ef1f889aa5c9192..b0bebf9da4c8f62f3a2c050041aa49355e4d94d9 100644 GIT binary patch delta 86 zcmaFPvY%yww6p}1ON5g%lk_VUfgAbCU%xS0L~{uHGBPkQNK7>Q&B*{{IRFWV$ySVy emCP6zSdA0}7?^<4ZUPY6jsYmm%nBp~fGPoU{|^)Z delta 126 zcmdnb@|U=W<-owm;5FHb z@v)Z?0|UR2f&c>(P})rZLNhrqFq}Q(V}JXutUXW|44521VrOhY7$U;JV8;M7hM5&e I2mnn40B$xMUH||9 diff --git a/bgfx/shaders/dx11/chains/pillarbox_left_horizontal/fs_offset_sat.bin b/bgfx/shaders/dx11/chains/pillarbox_left_horizontal/fs_offset_sat.bin new file mode 100644 index 0000000000000000000000000000000000000000..eaec59b81d7e206ae62ad1d00702e2031c7fa82e GIT binary patch literal 523 zcmYjLu}Z^G6un8)QbjO!C@w<4Q3vVZAXr<|qzy=4O;U*>#0mukvC=lsL8R#5<}NPc z+And}&Bf74$R;kHo0otW&U^RWbKbef_F9^97k{d>5QU@OI2!iG=Yz`<5h;`(h2#EY zL*f2IX#~6G>vujH{49BE`%l-=@5(ADFhn`r>%cSc1~^``eSw?jMW6$4v7TpKi@iZ*Bla-JO*|0UBKhHNq?pXB;%yjJtr2vNbk|D2`5&m0I7jG3NP~(2}b{T zO28xEP#x7rPbKjnR$UAZh7G0qO(^PJN)7$5p3DpIN;YqK(pdP_j+RX?siM`joUNDtZvh4Sj%dyFaCXJM mC*nMLmm31p>1utJb@q7G=7zv5%XY;L1Jq^JUV$OtzJ35AC`85p literal 0 HcmV?d00001 diff --git a/bgfx/shaders/dx11/chains/pillarbox_left_vertical/fs_offset_sat.bin b/bgfx/shaders/dx11/chains/pillarbox_left_vertical/fs_offset_sat.bin new file mode 100644 index 0000000000000000000000000000000000000000..eaec59b81d7e206ae62ad1d00702e2031c7fa82e GIT binary patch literal 523 zcmYjLu}Z^G6un8)QbjO!C@w<4Q3vVZAXr<|qzy=4O;U*>#0mukvC=lsL8R#5<}NPc z+And}&Bf74$R;kHo0otW&U^RWbKbef_F9^97k{d>5QU@OI2!iG=Yz`<5h;`(h2#EY zL*f2IX#~6G>vujH{49BE`%l-=@5(ADFhn`r>%cSc1~^``eSw?jMW6$4v7TpKi@iiQU%dpqYNn zPMqlTc~VTf-ye_b4q~w@;^EweJ-|Z1PIlD4fKOh94PbVWaRq@$Zd|>Sv)?kD;va{E zc;HRdQ>hG8)){tGUxtUHrc!B36!fl{1N*DTeq>yblT+=Pjhu1vGlTR_uJu+#vbdlhUU=Jf+`HbzST literal 0 HcmV?d00001 diff --git a/bgfx/shaders/dx11/chains/pillarbox_right_horizontal/fs_offset_sat.bin b/bgfx/shaders/dx11/chains/pillarbox_right_horizontal/fs_offset_sat.bin new file mode 100644 index 0000000000000000000000000000000000000000..eaec59b81d7e206ae62ad1d00702e2031c7fa82e GIT binary patch literal 523 zcmYjLu}Z^G6un8)QbjO!C@w<4Q3vVZAXr<|qzy=4O;U*>#0mukvC=lsL8R#5<}NPc z+And}&Bf74$R;kHo0otW&U^RWbKbef_F9^97k{d>5QU@OI2!iG=Yz`<5h;`(h2#EY zL*f2IX#~6G>vujH{49BE`%l-=@5(ADFhn`r>%cSc1~^``eSw?jMW6$4v7TpKi@i z>lY-QKj0_0U*I`2P7p8LJ7>;)oSB=YonqlJ|0+o3b~wHm-NiT8mqigNit^fnz1Di; zQ{8`jC%dQ7^TYW4t$>{JM0}i^@E3RhGD;76=fLF4@EGol9IaXv$t*OHJm)O}4FB)i8u(v5&Lc;IoE#fu19|4jpIFL7@zpR@b&-n8J07$w{A!2Gwii^{={nBU^Z#2SCHIbS&Guk+)x9Ug kJig0QB9qB#V>azJaW&>C9;!K;PIriC4X)ZRAq3dh4`Pc$P5=M^ literal 0 HcmV?d00001 diff --git a/bgfx/shaders/dx11/chains/pillarbox_right_vertical/fs_offset_sat.bin b/bgfx/shaders/dx11/chains/pillarbox_right_vertical/fs_offset_sat.bin new file mode 100644 index 0000000000000000000000000000000000000000..eaec59b81d7e206ae62ad1d00702e2031c7fa82e GIT binary patch literal 523 zcmYjLu}Z^G6un8)QbjO!C@w<4Q3vVZAXr<|qzy=4O;U*>#0mukvC=lsL8R#5<}NPc z+And}&Bf74$R;kHo0otW&U^RWbKbef_F9^97k{d>5QU@OI2!iG=Yz`<5h;`(h2#EY zL*f2IX#~6G>vujH{49BE`%l-=@5(ADFhn`r>%cSc1~^``eSw?jMW6$4v7TpKi@ici-~I@ArrD;i6AT}!5;)cP#?fj5bP{0 zEbM#(3oFa`1Y+SU>=StIj1$CxJA3B4KWBE5xRrBmvTp~4%k=7Gbltl+Kg|KiA#|I= zt;XB!!`g~}SbHkJFU`L`7ait87x4I9Wjrzh!gjpVJ*F0(XY?3$36oVS0f~`%7cTRr zDbjzO7VyX$s-yboskl98t1brH!-i7*CKUb7q=xa=Pv!}eMLX`orItFrr7LWMzn8((Cv&FGdP=?u6l~sdVod#dM@7?1l()W?*?Rf^b-=gxh!#x` rXP4}KBF>Y0xgqc|?$kfO7V13e<%Yt>wesx!rXc`@1JCCc@V$NjiOE8O literal 0 HcmV?d00001 diff --git a/bgfx/shaders/dx9/chains/misc/vs_saturation.bin b/bgfx/shaders/dx9/chains/misc/vs_saturation.bin index 0b92c5f50bc2e133c6456ea3adb5393aac1c0c61..ea94c83e62deecbb1897164a60e4cbd4bd062aac 100644 GIT binary patch delta 44 xcmaFGbc$($G^5T$nW+;`*2pq4FfcJP@IPQ+crpRRW@2D|zyxIf|Ifg{001F(42b{$ delta 77 zcmX@b^onVMG^5W%nW++i3=FI+4Ezhup7F82eOK20?3pvR3_vh(V~r{c0|N^a1M>qW fh9?tP7@jO(VOX_*k%57Uk%9jK15oV$f1pADsuLG) diff --git a/bgfx/shaders/dx9/chains/pillarbox_left_horizontal/fs_offset_sat.bin b/bgfx/shaders/dx9/chains/pillarbox_left_horizontal/fs_offset_sat.bin new file mode 100644 index 0000000000000000000000000000000000000000..5fe87a15fb52ece4b2651e3427458ce2934cf97c GIT binary patch literal 372 zcmYjMJxjw-6g@9ZFhe2W&`B_(F7btmxTx5wWQc>tQ3ydR2C6AZ3LP9G9lF-hEx6|Q z_ydG2uKobyd8vr^ak%fCd$=EGfv1c4*M|lp3-i%T3P7Mc4YMeprcoXzkL#`E33Qs~ zyV=3;>UgjLU`{AaV^SP1z!TF6(IEsh_{=J<3FTuej0qL(JXDpAE_L-*@qaeU6$i7X z|J5g1*bgPnH;tX zta8zNJ$yUu9lg&!57g96u4e!RH(#nhr6o+O9JHrc)NAs(G|9QC;)Ot6(#TWSemS0X Wa8Yx`*`wr5^s%35($f@8L-hw=t4n(T literal 0 HcmV?d00001 diff --git a/bgfx/shaders/dx9/chains/pillarbox_left_horizontal/vs_offset_sat.bin b/bgfx/shaders/dx9/chains/pillarbox_left_horizontal/vs_offset_sat.bin new file mode 100644 index 0000000000000000000000000000000000000000..b9b18b7ac1a4781ab3ddd72394bdac9e59fd4ccd GIT binary patch literal 362 zcmYk1%}T>S6ot=ZrkifE76b!sbQ302#Dza-H(g9Yjk*n@6(dR{)w(VC0&&@0*Y;J? zcZkp@=mRu8w<K>o5SQP?ilqx|59kaCWEy1cA94oMgay+K`-h>y@~e4@yR-X zn35USkRBg^W3iM+8ET)B^OuH+hUU&d?#UVSlU8EUO>gq7pWVF#Tj$$B$Hgv)@2_ur zdC<tQ3ydR2C6AZ3LP9G9lF-hEx6|Q z_ydG2uKobyd8vr^ak%fCd$=EGfv1c4*M|lp3-i%T3P7Mc4YMeprcoXzkL#`E33Qs~ zyV=3;>UgjLU`{AaV^SP1z!TF6(IEsh_{=J<3FTuej0qL(JXDpAE_L-*@qaeU6$i7X z|J5g1*bgPnH;tX zta8zNJ$yUu9lg&!57g96u4e!RH(#nhr6o+O9JHrc)NAs(G|9QC;)Ot6(#TWSemS0X Wa8Yx`*`wr5^s%35($f@8L-hw=t4n(T literal 0 HcmV?d00001 diff --git a/bgfx/shaders/dx9/chains/pillarbox_left_vertical/vs_offset_sat.bin b/bgfx/shaders/dx9/chains/pillarbox_left_vertical/vs_offset_sat.bin new file mode 100644 index 0000000000000000000000000000000000000000..0b92c5f50bc2e133c6456ea3adb5393aac1c0c61 GIT binary patch literal 362 zcmYk1O-jR16ot?G>7G29gERNEYrS>T~e`%N+815|Oo}AGzX(bNF>1Cb`v+GBH>vY@iMseiFHy2lf z-0x)f59u9E=mHmn&V^wR?zZ-JFg*bp7T#o5M(y{H_4ceR4tQ3ydR2C6AZ3LP9G9lF-hEx6|Q z_ydG2uKobyd8vr^ak%fCd$=EGfv1c4*M|lp3-i%T3P7Mc4YMeprcoXzkL#`E33Qs~ zyV=3;>UgjLU`{AaV^SP1z!TF6(IEsh_{=J<3FTuej0qL(JXDpAE_L-*@qaeU6$i7X z|J5g1*bgPnH;tX zta8zNJ$yUu9lg&!57g96u4e!RH(#nhr6o+O9JHrc)NAs(G|9QC;)Ot6(#TWSemS0X Wa8Yx`*`wr5^s%35($f@8L-hw=t4n(T literal 0 HcmV?d00001 diff --git a/bgfx/shaders/dx9/chains/pillarbox_right_horizontal/vs_offset_sat.bin b/bgfx/shaders/dx9/chains/pillarbox_right_horizontal/vs_offset_sat.bin new file mode 100644 index 0000000000000000000000000000000000000000..e9bfb3062de7859c3a66c5b4937831688699b366 GIT binary patch literal 362 zcmYk1u};G<5Qcxp?$RYQ5)zSEV2KkMFfF@QYdRBULcI!y7yJm zcL-8v1|Fc{zXAfwzwW=g&u9B0?i%&_`L57>PKIg!u(yS8k#)=IVWp4NLqtQ3ydR2C6AZ3LP9G9lF-hEx6|Q z_ydG2uKobyd8vr^ak%fCd$=EGfv1c4*M|lp3-i%T3P7Mc4YMeprcoXzkL#`E33Qs~ zyV=3;>UgjLU`{AaV^SP1z!TF6(IEsh_{=J<3FTuej0qL(JXDpAE_L-*@qaeU6$i7X z|J5g1*bgPnH;tX zta8zNJ$yUu9lg&!57g96u4e!RH(#nhr6o+O9JHrc)NAs(G|9QC;)Ot6(#TWSemS0X Wa8Yx`*`wr5^s%35($f@8L-hw=t4n(T literal 0 HcmV?d00001 diff --git a/bgfx/shaders/dx9/chains/pillarbox_right_vertical/vs_offset_sat.bin b/bgfx/shaders/dx9/chains/pillarbox_right_vertical/vs_offset_sat.bin new file mode 100644 index 0000000000000000000000000000000000000000..55774bb38abe57fab4a6a19684e2149b90b36255 GIT binary patch literal 362 zcmYk1!AiqG5QhKFZZEwAPhJ!QUfN68P!SJm(O!CpP>p&Gq7@@bB-MH?_yXx0^xjuV zpFo5NJ$vv08vm(^F8ee8%zQh$dmeR-dii`;s6WNSr2pK@(p#edgHS;)sztSl&gsG7 z8i0tB8rzT@V<2R(ltUS6my-224O0!xo`IZ`H5|mP*y1R;%+f)6{pdALnqD`ILNB_x zxawzKC%u12?q~w*TR*Ti2>f8XwX=okF;FvbC$l1KzrL-vXGO8Mx-#D1;1lY=2yk=p zyk?|+e2w1uS0_{c@?@6&o6#ksW}j#06NR&!f8usIS90WxoV8?1@tSpE9O%-)oV?^8 N!a6dWOkP!d%@-(!O^pBm literal 0 HcmV?d00001 diff --git a/bgfx/shaders/gles/chains/misc/vs_saturation.bin b/bgfx/shaders/gles/chains/misc/vs_saturation.bin index dbce619ef26ac45be7db3420a05f2a0a5be11416..9dd618de8a02bb855e0ba2f88983419191ff7d0b 100644 GIT binary patch delta 53 zcmX@lyqI}{G-LBdnRrHx#Q2ibisbzKq7(ybE(L|M_~iVY{2~JdTZKd@)0(T6i;DpO D*Dw%Z delta 97 zcmZ3?e4crNG~@b>GVzQd8XAf5C8-t3`T0dD1`1jVWvR(V8U}h6Itm7QW`<@!V5+I9 lpbZl@1c@7JYFcwCD3rw~=jY@X87SB)Btn_iT(w+W3;;H~8P5O! diff --git a/bgfx/shaders/gles/chains/pillarbox_left_horizontal/fs_offset_sat.bin b/bgfx/shaders/gles/chains/pillarbox_left_horizontal/fs_offset_sat.bin new file mode 100644 index 0000000000000000000000000000000000000000..2f6160fe747706bb8929a0d33df22613167097ad GIT binary patch literal 456 zcmY+AT~35B6op};FO7@1kDy}%1v4`tK4~Vty8zMv!!!X(O8FU$Pwv9qxdm6?Ee-=F zO?%sW`kmA6Utg~5&!6v=b<@TT*RA4O$ZBOAs}@kGPnb0+W2Gh{*uIn+kbyUhd+mNnt=A^jpwJ+-q_?tyjMJb Ol7&=r6BB$8V*LUwB9PMn literal 0 HcmV?d00001 diff --git a/bgfx/shaders/gles/chains/pillarbox_left_horizontal/vs_offset_sat.bin b/bgfx/shaders/gles/chains/pillarbox_left_horizontal/vs_offset_sat.bin new file mode 100644 index 0000000000000000000000000000000000000000..42326d4324e4480ca182dd083d4e3c5fee14d233 GIT binary patch literal 458 zcmZvZK~BRk5JerSE1zPPF;tcliiA|LXITk}ZDi7r4r=1aIBo)B#cjA1SKtIpN}3qa zjb+XMelvgkaDTUmKEA&q#@ozeaoAY%yoeZ!*e9LZIg5|2D`1D^t^r@oVl~iT_Vb!H19A8lQ}<#>bU*E0|Ld+u#-| zjWxuAzi|kgxT+y~maM6Ky35xC+zuJjSV^^nL@Mz|?|Rbbe6s5Yx!h-)F)_*UJONxx p=p!eXeK5wsBFH-SO|F-qAs}@kGPnb0+W2Gh{*uIn+kbyUhd+mNnt=A^jpwJ+-q_?tyjMJb Ol7&=r6BB$8V*LUwB9PMn literal 0 HcmV?d00001 diff --git a/bgfx/shaders/gles/chains/pillarbox_left_vertical/vs_offset_sat.bin b/bgfx/shaders/gles/chains/pillarbox_left_vertical/vs_offset_sat.bin new file mode 100644 index 0000000000000000000000000000000000000000..dbce619ef26ac45be7db3420a05f2a0a5be11416 GIT binary patch literal 463 zcmZvZK~BRk5JerSE1zPPF;tcvN`+LhXITk}ZDi7r8Z~ib95-pjiUV;buD}VHl%z4D zURc)rKW}C{Pmd3?=;Qk*ZpXu7`Wn^dg5G;$9DD>?hq`xj5PT_@cy1Yk>oG3-xMTz9cLS$x#$~)yN`3%~B9tru literal 0 HcmV?d00001 diff --git a/bgfx/shaders/gles/chains/pillarbox_right_horizontal/fs_offset_sat.bin b/bgfx/shaders/gles/chains/pillarbox_right_horizontal/fs_offset_sat.bin new file mode 100644 index 0000000000000000000000000000000000000000..2f6160fe747706bb8929a0d33df22613167097ad GIT binary patch literal 456 zcmY+AT~35B6op};FO7@1kDy}%1v4`tK4~Vty8zMv!!!X(O8FU$Pwv9qxdm6?Ee-=F zO?%sW`kmA6Utg~5&!6v=b<@TT*RA4O$ZBOAs}@kGPnb0+W2Gh{*uIn+kbyUhd+mNnt=A^jpwJ+-q_?tyjMJb Ol7&=r6BB$8V*LUwB9PMn literal 0 HcmV?d00001 diff --git a/bgfx/shaders/gles/chains/pillarbox_right_horizontal/vs_offset_sat.bin b/bgfx/shaders/gles/chains/pillarbox_right_horizontal/vs_offset_sat.bin new file mode 100644 index 0000000000000000000000000000000000000000..1e806909f59c41fb3f06aeba6b5886321f8eeb3b GIT binary patch literal 459 zcmZvZK~BRk5JerSE1zPPF|8~o6j7<_o@FH@wvkEG)ToIg*KrdND~`jdxB@3&5|YM< zZY*p5_nZ0Sr^km`@bUc>5LzcrW#_HYFSCGZ3Md zO|QteC|CNVtkUIGLyQKSHL2EShX^N4tIFKxy9@uH7=!a4*QMHPQw)y_X_qjiK(t-#-ZS10TCDMkKVMXPx*M$c5;49wnJi+!)XGz rxuAQFH+yFcy+xpP=o{TFK=2h~Fds|zeJNrCAs}@kGPnb0+W2Gh{*uIn+kbyUhd+mNnt=A^jpwJ+-q_?tyjMJb Ol7&=r6BB$8V*LUwB9PMn literal 0 HcmV?d00001 diff --git a/bgfx/shaders/gles/chains/pillarbox_right_vertical/vs_offset_sat.bin b/bgfx/shaders/gles/chains/pillarbox_right_vertical/vs_offset_sat.bin new file mode 100644 index 0000000000000000000000000000000000000000..c0f4dfa5a88401f4056362539fa1b6fed642c8d9 GIT binary patch literal 469 zcmZuuL2AP=5R@S&y<(4c8-(nnArN}+F;M8$sE*^P#FkNI#ct^-Z_0!Eg}$JxV8;r{ z9)y^go!yb%USB4`@$WYvv`MYZ4{NPHCIKM wu|E5FyE|d%Jp@YoxyvbVwul#4Pf-Mq10Fj(Sm|hO?&03Pl4KP*n;YZ=q%&D+ zVHA29hZ_j}A#vgDUlS2r|N9wiI?BD5?d@czf!W@cshfPGMg622rOzRD@Ifj01*CR{ AvH$=8 literal 0 HcmV?d00001 diff --git a/bgfx/shaders/glsl/chains/pillarbox_left_horizontal/vs_offset_sat.bin b/bgfx/shaders/glsl/chains/pillarbox_left_horizontal/vs_offset_sat.bin new file mode 100644 index 0000000000000000000000000000000000000000..061d861b6ed843c4995da7f9d487c6366bb34791 GIT binary patch literal 416 zcmZ9I!HU8#5QbCml&6?u<4Q=o3JbD#kAmQ})Y_FSwjs~_m zzs#4JS+5o&@9%c?7%w8H)8o?M_sC<+W50C9)*8JjYzi(-rVvL7?$M|@e*y0V4)~+3 z#{3@&3E8wv5Y3j#Tx=?x?;4xyY=bxiH!LV}{e>ojEVfhVJ0uh8Eu}gKU+^=BMrpGH zxuRfB!SgOpNBFF9=qsrv5J)9ncv%teCy-@T<-2?gP#BZ literal 0 HcmV?d00001 diff --git a/bgfx/shaders/glsl/chains/pillarbox_left_vertical/fs_offset_sat.bin b/bgfx/shaders/glsl/chains/pillarbox_left_vertical/fs_offset_sat.bin new file mode 100644 index 0000000000000000000000000000000000000000..4a3f80b56b9f050001428a84ea80e51513868350 GIT binary patch literal 429 zcmY+A(N2Rf6o$*9H;oT*Em|hO?&03Pl4KP*n;YZ=q%&D+ zVHA29hZ_j}A#vgDUlS2r|N9wiI?BD5?d@czf!W@cshfPGMg622rOzRD@Ifj01*CR{ AvH$=8 literal 0 HcmV?d00001 diff --git a/bgfx/shaders/glsl/chains/pillarbox_left_vertical/vs_offset_sat.bin b/bgfx/shaders/glsl/chains/pillarbox_left_vertical/vs_offset_sat.bin new file mode 100644 index 0000000000000000000000000000000000000000..de0d4115e794d7362dd23d4bf63e57dbf85061d0 GIT binary patch literal 421 zcmZ9IL2AP=5JhFkN~f5ml?EZXNeG1Qy9@-nHLl|Zh1e5RS+P^PDm`eg&=YhV+p$wE zg!oT-GozR7^CbBC{RtQ^V{fwa#^PZTFcz?H+7sujc`aQAK1=72#3>%psx`j@j|5Km zZk)m5ABqUMtV$8>j-L6%)~49EHh;5?;t2fsL0OnLv^nI7o5Ro{nb7PgH3fu%e{g7( zEm|hO?&03Pl4KP*n;YZ=q%&D+ zVHA29hZ_j}A#vgDUlS2r|N9wiI?BD5?d@czf!W@cshfPGMg622rOzRD@Ifj01*CR{ AvH$=8 literal 0 HcmV?d00001 diff --git a/bgfx/shaders/glsl/chains/pillarbox_right_horizontal/vs_offset_sat.bin b/bgfx/shaders/glsl/chains/pillarbox_right_horizontal/vs_offset_sat.bin new file mode 100644 index 0000000000000000000000000000000000000000..c25635af5a854fa9d7204d9c67802a7ddae966d5 GIT binary patch literal 417 zcmZ9IO>V+45Jnw|l}|CtxJ8x|s9Fhi-z8EdwowQHxgr_lIwon=1>&S!ffF$KBcU71 z`kv=`W>%jc6YqSzc#Id3)9G<(@N42R=CKom|hO?&03Pl4KP*n;YZ=q%&D+ zVHA29hZ_j}A#vgDUlS2r|N9wiI?BD5?d@czf!W@cshfPGMg622rOzRD@Ifj01*CR{ AvH$=8 literal 0 HcmV?d00001 diff --git a/bgfx/shaders/glsl/chains/pillarbox_right_vertical/vs_offset_sat.bin b/bgfx/shaders/glsl/chains/pillarbox_right_vertical/vs_offset_sat.bin new file mode 100644 index 0000000000000000000000000000000000000000..3b5a651f2e78fc6d93dc0bd446117ee39c5f6b3f GIT binary patch literal 427 zcmZ9I&x*n@5XMvRl&6?us}j=ciXeOUCVd}Pw6Z81Upe{>&_vB z?>F@`I))@paf@2c_!}4z*x|1- z3X6XzB4n~EMbv95vx%-%v3a=Jms>}Uz;+ADLVcsoAy3R0+6l=C)tXdQfFJN9hli!f zcjOg^GZLD=IPBrm;mDUl4j~jWc;i(~yxl-lwZofjym;CEdA{m#Oa l`s_O$f)tZ*Lh%sCtpVLAvYPT;)DfbM6!8><@Toh4KIZ literal 0 HcmV?d00001 diff --git a/bgfx/shaders/metal/chains/misc/vs_saturation.bin b/bgfx/shaders/metal/chains/misc/vs_saturation.bin index f9567cc2d504abad4e80028bc9a7254bfde25620..122b7dee5c387c772067b0ca196a2f12b636ec8d 100644 GIT binary patch delta 44 zcmZ3=_LY?R3>35!(sJ?> kON=xO^el7~4D`$l&49pEQ&T}3A!7)VG1SzYypzcW01Sf}{r~^~ diff --git a/bgfx/shaders/metal/chains/pillarbox_left_horizontal/fs_offset_sat.bin b/bgfx/shaders/metal/chains/pillarbox_left_horizontal/fs_offset_sat.bin new file mode 100644 index 0000000000000000000000000000000000000000..de6ec5972af75113b6aa2a7b25ec9c3d8881f2ea GIT binary patch literal 832 zcmZ{iK~BRk5JiJvl~c?L*$}KIDFRergM?s#SRhuYvP|ogNRAyj4ipe8PRbQH0ghwS zP?c3v&&>PZe|&j&wX^m4{S`&&b`-TuDHkAF#haSVI8@v)F^L=$o~hx>nNoT_n#3QQhi+RFrk1ri5 zhL$$Ww3?YxNjFzmO2y@xNw4RP->^~w+Heb689_^UcxVh;a9YagG=Z6t_U}5;d)Wmy z)7qKGwkWtpBRrkjFcJW;IaqHzo1eO9&Y|g|v8}$~dJ||^RST{isi|rjy8OB8!f}`I zAIttuPG3!IwNKJi^)u5n?M}isob^TI(4+^WZt_2;O~)(hIAHSuHt#SN9k3bf1M*PRyUlSZ yrmp!Qa54;gel=wHM#$3N#aqqEi&gmb{nE+ziIU-yT=h7En%lif-)Ns*97jKR^BQCT literal 0 HcmV?d00001 diff --git a/bgfx/shaders/metal/chains/pillarbox_left_horizontal/vs_offset_sat.bin b/bgfx/shaders/metal/chains/pillarbox_left_horizontal/vs_offset_sat.bin new file mode 100644 index 0000000000000000000000000000000000000000..79234729f368f653ff98a1902560c89d83f83f2a GIT binary patch literal 800 zcmZ{i&rX9t5XLcj;^rI7$$&Nl5EGN8cRe&VF?wkT+0v!1fnBo9QmXOflllrifyCA1=f&aJtvrYE3Q*hD`90${VVDtwLJGLdf-a znBU00PV+n|JObLJ(c<8?Hy-c=PxHvK$ZYWXDgYIgjBXcFyf=L% zm3q*4XB}g=$2nmftP@L(GE5_;H&h_m(1`IcoIotNzVf3KI+81BdX(;2sU)GYS-fr5 z@r(>Qf<`U+R|kMuUJ@C3b!mTgKDIDx)AcRaaVOw8u02vzJFRGOokO-xwX0RFi8G90 z238B|9JU45y<;=HYa8UCJ*>8mX_r18-PnA+8qT|$fa~1bHrxz~bPZe|&j&wX^m4{S`&&b`-TuDHkAF#haSVI8@v)F^L=$o~hx>nNoT_n#3QQhi+RFrk1ri5 zhL$$Ww3?YxNjFzmO2y@xNw4RP->^~w+Heb689_^UcxVh;a9YagG=Z6t_U}5;d)Wmy z)7qKGwkWtpBRrkjFcJW;IaqHzo1eO9&Y|g|v8}$~dJ||^RST{isi|rjy8OB8!f}`I zAIttuPG3!IwNKJi^)u5n?M}isob^TI(4+^WZt_2;O~)(hIAHSuHt#SN9k3bf1M*PRyUlSZ yrmp!Qa54;gel=wHM#$3N#aqqEi&gmb{nE+ziIU-yT=h7En%lif-)Ns*97jKR^BQCT literal 0 HcmV?d00001 diff --git a/bgfx/shaders/metal/chains/pillarbox_left_vertical/vs_offset_sat.bin b/bgfx/shaders/metal/chains/pillarbox_left_vertical/vs_offset_sat.bin new file mode 100644 index 0000000000000000000000000000000000000000..f9567cc2d504abad4e80028bc9a7254bfde25620 GIT binary patch literal 805 zcmZ{iO-{ow5QT$al>@Mz6-uCrl29t7s(V;eR6?++qR36%VwBjGGj3B5D^AK4H~~)L z=BFxIIrf`*pXd4Y`QhU1`}fDPF3&AX<&3X^lZ@sYl2FJfl5}k6C{=<`qy(p!KEIJA zm5+R*5I${yRVoM$fy9YOh4f)QCy0_Q6jH}`qiB54+-l86u2g6m&?l!76-f~rR8nuS`esH_I> z+GRXF14B@$MRV&RV7A#383*OoVeNhFU{a?WI=<%*An<&*rzrMXQR8}TwqCI>RkexN zjbQ>#4eGVig6qbyYHrFpIcN{3u4CGziANV!Pp^c#AAs+Tf|362To-QIlb}2a+ literal 0 HcmV?d00001 diff --git a/bgfx/shaders/metal/chains/pillarbox_right_horizontal/fs_offset_sat.bin b/bgfx/shaders/metal/chains/pillarbox_right_horizontal/fs_offset_sat.bin new file mode 100644 index 0000000000000000000000000000000000000000..de6ec5972af75113b6aa2a7b25ec9c3d8881f2ea GIT binary patch literal 832 zcmZ{iK~BRk5JiJvl~c?L*$}KIDFRergM?s#SRhuYvP|ogNRAyj4ipe8PRbQH0ghwS zP?c3v&&>PZe|&j&wX^m4{S`&&b`-TuDHkAF#haSVI8@v)F^L=$o~hx>nNoT_n#3QQhi+RFrk1ri5 zhL$$Ww3?YxNjFzmO2y@xNw4RP->^~w+Heb689_^UcxVh;a9YagG=Z6t_U}5;d)Wmy z)7qKGwkWtpBRrkjFcJW;IaqHzo1eO9&Y|g|v8}$~dJ||^RST{isi|rjy8OB8!f}`I zAIttuPG3!IwNKJi^)u5n?M}isob^TI(4+^WZt_2;O~)(hIAHSuHt#SN9k3bf1M*PRyUlSZ yrmp!Qa54;gel=wHM#$3N#aqqEi&gmb{nE+ziIU-yT=h7En%lif-)Ns*97jKR^BQCT literal 0 HcmV?d00001 diff --git a/bgfx/shaders/metal/chains/pillarbox_right_horizontal/vs_offset_sat.bin b/bgfx/shaders/metal/chains/pillarbox_right_horizontal/vs_offset_sat.bin new file mode 100644 index 0000000000000000000000000000000000000000..efd3de320035079d041ad93a500f59859750847a GIT binary patch literal 801 zcmZ{iO-{ow5QT$al_e*b6-uCrl28Ov)jcdKDpjzlqR36%VwBjGGj3B5D^AK4I0256 z=BFwgrAiQrl;8x@*&A6> z`NTI0;nN0KrGnrPNSugNNFU~Nf+*QSA$5E=ibe;`t=4Qr&X5V-Qw3dBs8vXdLom`^!Xuz{8c$odgK>vv2-}*uK@4@NF(29gc)f785;E(&z8Hdvw~X$lQoNhK zEtPsue`hsgy~hb*9GnwNjWbMRrZlT_xW4kE6l#(yFg;55EYxa6rCGdd zm+|xrY67Dc&8vri*=9>*9F(QQ+56bRxJoy4e9s?1;Q4M(QS7y%!u8s0y<%UgDig08 z!x)?j)N8i|*NvkYUbl5}&>l|J$Fxfmk8U(yuY?Qk2H<-St_wG9@!k{zw?DT2r5*07 QQX)%=O7faq$7tKuACboo$p8QV literal 0 HcmV?d00001 diff --git a/bgfx/shaders/metal/chains/pillarbox_right_vertical/fs_offset_sat.bin b/bgfx/shaders/metal/chains/pillarbox_right_vertical/fs_offset_sat.bin new file mode 100644 index 0000000000000000000000000000000000000000..de6ec5972af75113b6aa2a7b25ec9c3d8881f2ea GIT binary patch literal 832 zcmZ{iK~BRk5JiJvl~c?L*$}KIDFRergM?s#SRhuYvP|ogNRAyj4ipe8PRbQH0ghwS zP?c3v&&>PZe|&j&wX^m4{S`&&b`-TuDHkAF#haSVI8@v)F^L=$o~hx>nNoT_n#3QQhi+RFrk1ri5 zhL$$Ww3?YxNjFzmO2y@xNw4RP->^~w+Heb689_^UcxVh;a9YagG=Z6t_U}5;d)Wmy z)7qKGwkWtpBRrkjFcJW;IaqHzo1eO9&Y|g|v8}$~dJ||^RST{isi|rjy8OB8!f}`I zAIttuPG3!IwNKJi^)u5n?M}isob^TI(4+^WZt_2;O~)(hIAHSuHt#SN9k3bf1M*PRyUlSZ yrmp!Qa54;gel=wHM#$3N#aqqEi&gmb{nE+ziIU-yT=h7En%lif-)Ns*97jKR^BQCT literal 0 HcmV?d00001 diff --git a/bgfx/shaders/metal/chains/pillarbox_right_vertical/vs_offset_sat.bin b/bgfx/shaders/metal/chains/pillarbox_right_vertical/vs_offset_sat.bin new file mode 100644 index 0000000000000000000000000000000000000000..5fdb790c1914657fbd314cbdb65f1d44132c15a4 GIT binary patch literal 811 zcmZ`%O;3YB5XI<;-{4_R2DBkSv1!uuu7}1ZMlTH^Te{RWu-h!NE!BAPm--j{1uh?@ z(9}J_&U^FT%-h%JhpUV4-yg%czBCM#Grk5+GMaBlOd+F4(utX)R53!45}aZB{6|T8Qp>f&aB{#5HD)7nhD`7t%Il(hjY3+)LdaFW znP0)a&ii>%cw%UsM)RZELAc{5fNkTswdm`sR(xXqqxHgBB4pN?z6d}?TSj+tDc&pI zmP*~Izq7_;v&R`>9IP`-jWSFlrZ*h(>avgU7p5xj*M6uV1+OBiV)+zQSsupp& zF-*a#jXK9|!ELKpHE(F09JGd2^O#m?6PZj18|*@H`3?cw&Ctr@yd!n9_phj Y9bbp+yA#wexCBXxO7dm~9jIvcontainer(); int current_view = view; uint16_t screen_width(floor((prim->bounds.x1 - prim->bounds.x0) + 0.5f)); @@ -88,10 +87,19 @@ void bgfx_chain::process(render_primitive* prim, int view, int screen, texture_m bool orientation_swap_xy = (window.machine().system().flags & ORIENTATION_SWAP_XY) == ORIENTATION_SWAP_XY; bool rotation_swap_xy = (window.target()->orientation() & ORIENTATION_SWAP_XY) == ORIENTATION_SWAP_XY; bool swap_xy = orientation_swap_xy ^ rotation_swap_xy; - float screen_scale_x = 1.0f / screen_container.xscale(); - float screen_scale_y = 1.0f / screen_container.yscale(); - float screen_offset_x = -screen_container.xoffset(); - float screen_offset_y = -screen_container.yoffset(); + + float screen_scale_x = 1.0f; + float screen_scale_y = 1.0f; + float screen_offset_x = 0.0f; + float screen_offset_y = 0.0f; + if (screen_device != nullptr) + { + render_container &screen_container = screen_device->container(); + screen_scale_x = 1.0f / screen_container.xscale(); + screen_scale_y = 1.0f / screen_container.yscale(); + screen_offset_x = -screen_container.xoffset(); + screen_offset_y = -screen_container.yoffset(); + } for (bgfx_chain_entry* entry : m_entries) { diff --git a/src/osd/modules/render/bgfx/chainmanager.cpp b/src/osd/modules/render/bgfx/chainmanager.cpp index a5964afc502..0b1316280d4 100644 --- a/src/osd/modules/render/bgfx/chainmanager.cpp +++ b/src/osd/modules/render/bgfx/chainmanager.cpp @@ -448,8 +448,10 @@ uint32_t chain_manager::handle_screen_chains(uint32_t view, render_primitive *st } const bool any_targets_rebuilt = m_targets.update_target_sizes(screen_index, screen_width, screen_height, TARGET_STYLE_NATIVE); - if (any_targets_rebuilt) { - for (bgfx_chain* chain : m_screen_chains) { + if (any_targets_rebuilt) + { + for (bgfx_chain* chain : m_screen_chains) + { chain->repopulate_targets(); } } diff --git a/src/osd/modules/render/bgfx/shaders/chains/misc/vs_saturation.sc b/src/osd/modules/render/bgfx/shaders/chains/misc/vs_saturation.sc index fc524496a1f..405ef8feb3b 100644 --- a/src/osd/modules/render/bgfx/shaders/chains/misc/vs_saturation.sc +++ b/src/osd/modules/render/bgfx/shaders/chains/misc/vs_saturation.sc @@ -9,6 +9,6 @@ $output v_texcoord0, v_color0 void main() { gl_Position = mul(u_viewProj, vec4(a_position.xy, 0.0, 1.0)); - v_texcoord0 = a_texcoord0 * vec2(1.0 * 0.8, 0.685185 * 0.9) + vec2(0.1, 0.1); + v_texcoord0 = a_texcoord0; v_color0 = a_color0; } diff --git a/src/osd/modules/render/bgfx/shaders/chains/pillarbox_left_horizontal/fs_offset_sat.sc b/src/osd/modules/render/bgfx/shaders/chains/pillarbox_left_horizontal/fs_offset_sat.sc new file mode 100644 index 00000000000..c14f61601c8 --- /dev/null +++ b/src/osd/modules/render/bgfx/shaders/chains/pillarbox_left_horizontal/fs_offset_sat.sc @@ -0,0 +1,25 @@ +$input v_color0, v_texcoord0 + +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz + +#include "common.sh" + +// User-supplied +uniform vec4 u_saturation; + +// Samplers +SAMPLER2D(s_tex, 0); + +void main() +{ + vec4 base = texture2D(s_tex, v_texcoord0); + vec3 rgb = base.rgb; + + vec3 gray = vec3(0.299, 0.587, 0.114); + float luma = dot(rgb, gray); + vec3 chroma = rgb - luma; + vec3 saturated = luma + chroma * u_saturation.x; + + gl_FragColor = vec4(saturated, base.a); +} diff --git a/src/osd/modules/render/bgfx/shaders/chains/pillarbox_left_horizontal/vs_offset_sat.sc b/src/osd/modules/render/bgfx/shaders/chains/pillarbox_left_horizontal/vs_offset_sat.sc new file mode 100644 index 00000000000..f071beaaa26 --- /dev/null +++ b/src/osd/modules/render/bgfx/shaders/chains/pillarbox_left_horizontal/vs_offset_sat.sc @@ -0,0 +1,17 @@ +$input a_position, a_texcoord0, a_color0 +$output v_texcoord0, v_color0 + +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz + +// Vertex shader for the left-hand pillarbox when displaying 4:3 content on a 16:9 screen. +// Crops off roughly 10% on all borders and takes only a portion of the right-hand side of the content + +#include "common.sh" + +void main() +{ + gl_Position = mul(u_viewProj, vec4(a_position.xy, 0.0, 1.0)); + v_texcoord0 = a_texcoord0 * vec2(0.16666666 * 0.9, 1.0 * 0.8) + vec2(0.1, 0.1); + v_color0 = a_color0; +} \ No newline at end of file diff --git a/src/osd/modules/render/bgfx/shaders/chains/pillarbox_left_vertical/fs_offset_sat.sc b/src/osd/modules/render/bgfx/shaders/chains/pillarbox_left_vertical/fs_offset_sat.sc new file mode 100644 index 00000000000..c14f61601c8 --- /dev/null +++ b/src/osd/modules/render/bgfx/shaders/chains/pillarbox_left_vertical/fs_offset_sat.sc @@ -0,0 +1,25 @@ +$input v_color0, v_texcoord0 + +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz + +#include "common.sh" + +// User-supplied +uniform vec4 u_saturation; + +// Samplers +SAMPLER2D(s_tex, 0); + +void main() +{ + vec4 base = texture2D(s_tex, v_texcoord0); + vec3 rgb = base.rgb; + + vec3 gray = vec3(0.299, 0.587, 0.114); + float luma = dot(rgb, gray); + vec3 chroma = rgb - luma; + vec3 saturated = luma + chroma * u_saturation.x; + + gl_FragColor = vec4(saturated, base.a); +} diff --git a/src/osd/modules/render/bgfx/shaders/chains/pillarbox_left_vertical/vs_offset_sat.sc b/src/osd/modules/render/bgfx/shaders/chains/pillarbox_left_vertical/vs_offset_sat.sc new file mode 100644 index 00000000000..a9f6649c1e5 --- /dev/null +++ b/src/osd/modules/render/bgfx/shaders/chains/pillarbox_left_vertical/vs_offset_sat.sc @@ -0,0 +1,17 @@ +$input a_position, a_texcoord0, a_color0 +$output v_texcoord0, v_color0 + +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz + +// Vertex shader for the left-hand pillarbox when displaying 3:4 content on a 16:9 screen. +// Crops off roughly 10% on all borders and takes only a portion of the right-hand side of the content + +#include "common.sh" + +void main() +{ + gl_Position = mul(u_viewProj, vec4(a_position.xy, 0.0, 1.0)); + v_texcoord0 = a_texcoord0 * vec2(1.0 * 0.8, 0.685185 * 0.9) + vec2(0.1, 0.1); + v_color0 = a_color0; +} \ No newline at end of file diff --git a/src/osd/modules/render/bgfx/shaders/chains/pillarbox_right_horizontal/fs_offset_sat.sc b/src/osd/modules/render/bgfx/shaders/chains/pillarbox_right_horizontal/fs_offset_sat.sc new file mode 100644 index 00000000000..c14f61601c8 --- /dev/null +++ b/src/osd/modules/render/bgfx/shaders/chains/pillarbox_right_horizontal/fs_offset_sat.sc @@ -0,0 +1,25 @@ +$input v_color0, v_texcoord0 + +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz + +#include "common.sh" + +// User-supplied +uniform vec4 u_saturation; + +// Samplers +SAMPLER2D(s_tex, 0); + +void main() +{ + vec4 base = texture2D(s_tex, v_texcoord0); + vec3 rgb = base.rgb; + + vec3 gray = vec3(0.299, 0.587, 0.114); + float luma = dot(rgb, gray); + vec3 chroma = rgb - luma; + vec3 saturated = luma + chroma * u_saturation.x; + + gl_FragColor = vec4(saturated, base.a); +} diff --git a/src/osd/modules/render/bgfx/shaders/chains/pillarbox_right_horizontal/vs_offset_sat.sc b/src/osd/modules/render/bgfx/shaders/chains/pillarbox_right_horizontal/vs_offset_sat.sc new file mode 100644 index 00000000000..a473bc4123c --- /dev/null +++ b/src/osd/modules/render/bgfx/shaders/chains/pillarbox_right_horizontal/vs_offset_sat.sc @@ -0,0 +1,17 @@ +$input a_position, a_texcoord0, a_color0 +$output v_texcoord0, v_color0 + +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz + +// Vertex shader for the right-hand pillarbox when displaying 4:3 content on a 16:9 screen. +// Crops off roughly 10% on all borders and takes only a portion of the right-hand side of the content + +#include "common.sh" + +void main() +{ + gl_Position = mul(u_viewProj, vec4(a_position.xy, 0.0, 1.0)); + v_texcoord0 = a_texcoord0 * vec2(0.16666666 * 0.9, 1.0 * 0.8) + vec2(0.9 - 0.16666666 * 0.9, 0.1); + v_color0 = a_color0; +} \ No newline at end of file diff --git a/src/osd/modules/render/bgfx/shaders/chains/pillarbox_right_vertical/fs_offset_sat.sc b/src/osd/modules/render/bgfx/shaders/chains/pillarbox_right_vertical/fs_offset_sat.sc new file mode 100644 index 00000000000..c14f61601c8 --- /dev/null +++ b/src/osd/modules/render/bgfx/shaders/chains/pillarbox_right_vertical/fs_offset_sat.sc @@ -0,0 +1,25 @@ +$input v_color0, v_texcoord0 + +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz + +#include "common.sh" + +// User-supplied +uniform vec4 u_saturation; + +// Samplers +SAMPLER2D(s_tex, 0); + +void main() +{ + vec4 base = texture2D(s_tex, v_texcoord0); + vec3 rgb = base.rgb; + + vec3 gray = vec3(0.299, 0.587, 0.114); + float luma = dot(rgb, gray); + vec3 chroma = rgb - luma; + vec3 saturated = luma + chroma * u_saturation.x; + + gl_FragColor = vec4(saturated, base.a); +} diff --git a/src/osd/modules/render/bgfx/shaders/chains/pillarbox_right_vertical/vs_offset_sat.sc b/src/osd/modules/render/bgfx/shaders/chains/pillarbox_right_vertical/vs_offset_sat.sc new file mode 100644 index 00000000000..8af6a293d8e --- /dev/null +++ b/src/osd/modules/render/bgfx/shaders/chains/pillarbox_right_vertical/vs_offset_sat.sc @@ -0,0 +1,17 @@ +$input a_position, a_texcoord0, a_color0 +$output v_texcoord0, v_color0 + +// license:BSD-3-Clause +// copyright-holders:Ryan Holtz + +// Vertex shader for the right-hand pillarbox when displaying 3:4 content on a 16:9 screen. +// Crops off roughly 10% on all borders and takes only a portion of the right-hand side of the content + +#include "common.sh" + +void main() +{ + gl_Position = mul(u_viewProj, vec4(a_position.xy, 0.0, 1.0)); + v_texcoord0 = a_texcoord0 * vec2(1.0 * 0.8, 0.685185 * 0.9) + vec2(0.1, 0.9 - 0.685185 * 0.9); + v_color0 = a_color0; +} \ No newline at end of file