From 2f455e9c55af1137899bb40ad820bfc789bbccb4 Mon Sep 17 00:00:00 2001 From: Martijn de Boer Date: Thu, 13 Oct 2022 16:06:52 +0200 Subject: [PATCH] game and hud --- assets.lua | 22 + assets/captains/john-danger.png | Bin 0 -> 3277 bytes assets/captains/robert-davis.png | Bin 0 -> 4419 bytes assets/captains/steve-layer.png | Bin 0 -> 3646 bytes assets/hud.png | Bin 0 -> 55918 bytes assets/hud.psd | Bin 0 -> 354944 bytes assets/intro.ogg | Bin 0 -> 18187 bytes assets/logo.png | Bin 0 -> 9058 bytes assets/logo.psd | Bin 0 -> 130572 bytes captain/johndanger.lua | 7 + captain/player.lua | 7 + captain/robertdavis.lua | 7 + captain/stevelayer.lua | 7 + conf.lua | 14 + main.lua | 81 ++++ planet/planet.lua | 10 + scene/game.lua | 40 ++ scene/load.lua | 18 + scene/title.lua | 69 +++ shaders/README.md | 580 +++++++++++++++++++++++ shaders/boxblur.lua | 62 +++ shaders/chromasep.lua | 49 ++ shaders/colorgradesimple.lua | 33 ++ shaders/crt.lua | 79 ++++ shaders/desaturate.lua | 52 +++ shaders/dmg.lua | 153 +++++++ shaders/fastgaussianblur.lua | 139 ++++++ shaders/filmgrain.lua | 63 +++ shaders/fog.lua | 129 ++++++ shaders/gaussianblur.lua | 55 +++ shaders/glow.lua | 104 +++++ shaders/godsray.lua | 107 +++++ shaders/init.lua | 171 +++++++ shaders/pixelate.lua | 55 +++ shaders/posterize.lua | 59 +++ shaders/scanlines.lua | 73 +++ shaders/sketch.lua | 64 +++ shaders/vignette.lua | 59 +++ vendor/classic.lua | 68 +++ vendor/lily.lua | 765 +++++++++++++++++++++++++++++++ vendor/lily_thread.lua | 242 ++++++++++ 41 files changed, 3443 insertions(+) create mode 100644 assets.lua create mode 100644 assets/captains/john-danger.png create mode 100644 assets/captains/robert-davis.png create mode 100644 assets/captains/steve-layer.png create mode 100644 assets/hud.png create mode 100644 assets/hud.psd create mode 100644 assets/intro.ogg create mode 100644 assets/logo.png create mode 100644 assets/logo.psd create mode 100644 captain/johndanger.lua create mode 100644 captain/player.lua create mode 100644 captain/robertdavis.lua create mode 100644 captain/stevelayer.lua create mode 100644 conf.lua create mode 100644 main.lua create mode 100644 planet/planet.lua create mode 100644 scene/game.lua create mode 100644 scene/load.lua create mode 100644 scene/title.lua create mode 100644 shaders/README.md create mode 100644 shaders/boxblur.lua create mode 100644 shaders/chromasep.lua create mode 100644 shaders/colorgradesimple.lua create mode 100644 shaders/crt.lua create mode 100644 shaders/desaturate.lua create mode 100644 shaders/dmg.lua create mode 100644 shaders/fastgaussianblur.lua create mode 100644 shaders/filmgrain.lua create mode 100644 shaders/fog.lua create mode 100644 shaders/gaussianblur.lua create mode 100644 shaders/glow.lua create mode 100644 shaders/godsray.lua create mode 100644 shaders/init.lua create mode 100644 shaders/pixelate.lua create mode 100644 shaders/posterize.lua create mode 100644 shaders/scanlines.lua create mode 100644 shaders/sketch.lua create mode 100644 shaders/vignette.lua create mode 100644 vendor/classic.lua create mode 100644 vendor/lily.lua create mode 100644 vendor/lily_thread.lua diff --git a/assets.lua b/assets.lua new file mode 100644 index 0000000..548908c --- /dev/null +++ b/assets.lua @@ -0,0 +1,22 @@ +multilily = lily.loadMulti({ + {lily.newImage, "assets/logo.png"}, + {lily.newSoundData, "assets/intro.ogg"}, + {lily.newImage, "assets/hud.png"}, + {lily.newImage, "assets/captains/steve-layer.png"}, + {lily.newImage, "assets/captains/robert-davis.png"}, + {lily.newImage, "assets/captains/john-danger.png"} +}) +multilily:onComplete(function(_, lilies) + gameLogo = lilies[1][1] + introSound = love.audio.newSource( lilies[2][1] ) + gameHud = lilies[3][1] + CaptainSteve.image = lilies[4][1] + CaptainRobert.image = lilies[5][1] + CaptainJohn.image = lilies[6][1] + + windowWidth = love.graphics.getWidth() + windowHeight = love.graphics.getHeight() + + TitleScene:init() + currentScene = TitleScene +end) \ No newline at end of file diff --git a/assets/captains/john-danger.png b/assets/captains/john-danger.png new file mode 100644 index 0000000000000000000000000000000000000000..d4f4c270e9bc542adc58610108d6a1af5e36be76 GIT binary patch literal 3277 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 LNkvXXu0mjf6aZ;n literal 0 HcmV?d00001 diff --git a/assets/captains/robert-davis.png b/assets/captains/robert-davis.png new file mode 100644 index 0000000000000000000000000000000000000000..dac70f11ebedb2b9b83b7481153c9e13566d4bc6 GIT binary patch literal 4419 zcmV-J5xnk+P)gZ+Mw|IhH;$9;j18;*Ee-ROqv z^A$)b5M^-UaK2uF#XmDcjXWRy1b}~8m*r8O=MMoq1c0)vV1^oY=RgXmSU_6A3^ha? zCevB#9C7?i_nXd7Ti=hKX_qU2lmY-SZ=p270hmpSzhsfm<)i#a=^+4Mkrw~}aXYx3 z+tWlns;bSeDuv}u-{~qia^hgC5=s-qF_b2dF#rIq^mX>WW!ZjfS`;sk$zW>4!@f>j z^L?lXdZ?c-G~LxheYZScfBS54{FOU*?tETr1rZnTcGGZVs}cZU*&-k1Fj)}~vsD>6 zDULxVL*U?L#Hp$cC^PQ}^GiiBg`(lX+7$T+wVJq{!zeFaVQYT{z;7}0Hv#OcYJ*~Y z^8^^298ch!wEn2If~lnd09XV?F#%E55NBJ0Z9*K%plAqNm3yKrO3`J|M+9*@|7_=< zX{Axw>K$8EpD}q3Lnc{!LpDGW0cbW;L?ETWA|RzuRT}`nYWsRzLz#)XZrOUHXAHKR z>aDz(`h99~z3if0HSq5YA#Mjf^b+HC4y4qli^a)%0JN>jhe{JRRoPPU50cy$y z?uuiOQn1!SYt>vZAr6axw-$gWpUI04@?zRDs*mH+RYYjM6Kqw!NG6l2+Pqkd2}Lml z^Y&VZ2Z$HeN_)zSzc`CvR9os4`iL``9q);02~Em0~j(;nqX?X6^H`mMKY`n#35t;@S5JjpVJ|Pq9MTkdyq;1#V9Xk;&^rK z18X=UlYsz0n!{T}Nf>F!vHy5@ zFgbnRy;FH{4iSgtx*hrtCdCNi1mQ?S3RLSOWrxNl5GOCDj{pq%4r?xdJt7G2ycz&4 zBCrUA8MEWXAgo{AI|cLMd6Vg^b&qZwF!=MkuSHG=*JgJvCMNz+Paq9XAf@z=&le~E zoNjc}cA&9GjRb^!Sp-#8K?DPKK4}5~c7o-}0@SusaN@99z77_LRYwAjis`&1=HeL4 z7H;Q|Cvia_j)+4sp8TE@7cF;+{7oSqkVg`vcK4o53Yffr@D8W=v`ZL zJBC zN|Tp_`q}Eu1 z;h0-_fD_kQ~;t=9`O>{t<_4#Ta zlA!tG1Xa04Rc*jQ^raD1AbO4HQ2_s(B|K}+j=^X0zSLX{pMendZu^|nbCc-|dZ=Nt z0#&)j`P%EeWr0ePIWyD;1UTAm8n+Piype*&>c+n@gT-NE1yi;$WESxU7Dj>LEwBgx z7C3mW22K@|30CJN#0hL-*p>29V^dK{K*T$RATiV2eBC+0rYfO`u)4R5?>hLsit!{$ zaVY+zF!=8M`@M$&KE6&ZF&Tr^^7Ri{-17n9$%vxfTb9VJ6e*yIA!f&OC_RL&O03Sy z7P8%UQwaM=Vi+eQ`XkEBFOyO&cOA0TEi*D|Ty&ob#B{h^FQe!OYj3gwXlJ=toSy01 zx2Nxj6Ocj+`C!BX4&l-tAJs8 z^8a85s&XCN*t=$^an6E~Y4nR!WBf?94OI}?*=!E2G(>pC^$e38ANqu}L%>5B@{Eg-59Z+T<%y3S?;#vkU z4V{Sy%#7p3N!*{U#ilB;u53guyw`ugx2Tl!nxoo8~4G zp%2*D=1AZt}9J34p^VB zV8~#3cZt=#Q;hNg1cqpZ;B`eDlxqAjTLuKslvI6`*H3Fb@OI_9|6i9=c0SQ_hA zmjR%(jM=onVrE)luvWS*wh#b|X>P#Guq?1FEgJ%OX|gOhp7q!$t#EpJ2O>ajEEG{J z))wOl7O&00cH3*;A^}(gloTP;iffk;MA_SlhM&<&b(NG5N6&;Iva|#%wwR8PiJUy6{|#@po+wiQ{MplRThh9MedV$oPcH7!aAL zN=gsC)#oiE4!Fl!!Xr?i5A_tMd}M zAuN_nk+jZQeScE~xv81c@dB-SK+0Xp@>U|0O2N|-ARrN9jlc=Z7Qzfg1Vg4(bLb^N ztvYF;hKw16XQ{dwqaSy7j@JLMqYgzOuLz*SyygYWGfvXd>{odPx(#8#W6nfx1P06@=#IWp%(%cl38^ zyhPd-hr&UBFg$AwS0vw4V_KK)pojX(j?twfGVAlz`!h{H0N_6WuO2}ql%`)7$G_8y z{3S)uP%})Q1+EI(EpaCf8aj%uuTdmA-f;5adVSa?%<~b*7&z-C>#E6;ON*iaaIsqc z5E=8+MA?^8JD`aMysaK}*Qcd4;IOULmyQC6L653cFnEeIv<(DEy@0j$p>y&g&~D;{ zNU#qstq1f08FL@N*TwNK0!WGQSR)wRSww)fFJ#zljQ;~{nXzL5i-jSD+)(Wrhf&0p z9zxLAfjS!eu&l~D3iW%2`h-%rvcnbNN(o5eVzqpUjHye|8JM^GJ{=D(uItbHdH|57 zBo4HDl4(p3+hjP9fCq}`R(Q88ePBf)TXeoA7)I>?9P|dCcua0Qo4THv;Zj;bA_RR`dQ*xN(1R#Yk z<;KLWu&sLvfKR7Gsg0DcC9Erp#dQfVUo1a5olhMZ12Sg7Z1*j9)*}Jo;vvcLe@{57 zo7e$BD=6yPj+XQ&{m?mqQrb_hF{82!rGSyr&{|H`oUu zd8*3w8vw>3no~VPuVE{Txz}9+UU2Lt+)Q%4t~V#k_HL;0Vk0dB!%yR2SA?7WIj}y;5OCQ^iY2`bz#o7 zL*hQYW)awWE&sBOR=z=Lj3)84$fM}R&Fyix)j@S-Am`LgHh)#?%8 zB_S`SKh-@%9Ai_Js5TWgRSC;B{@YX~thFf13M}4bg${CPsRxL;LA#ptE^n(_efJvA z=CR2e?vZ{zF#$57_vee{rIzV*b@9lFODjo_y5+P{Uc{;oZ+!)bx4u{JocLOQ{TU)P zMc$e#A~+{;U^~nxlTv$9>b>ozdcW^p7pr9~g$28GnSs5M0E^}NN((uk<^#4iEjIpk zQ#fg;Zj7HU*IL!$?7-suG#V)wQW*M?7msK?L`u{*jNS& zkefP)VvfYC;e7!Aj{5gTT?j*7!2`q)yC)a8mKzMf+e#}fh| z01z3H!j1iEjI#U@fH#S<-(=t|!EOe@_aD^ov_gpAgUeHBnyHlf?Zg!VfFgPyz!ty? z-A3fqcl%(P<(~lX0XoH;8&QESY^#g!6Sw;f0H1d|_X>dL`$}Rda?A{+G*}$6n(JDt zef{~NG3Eh)e*o|Y04}EU(_RnowD3Pd007ul7oP&~^K9+U0r*h>uK;*a9KQhIc@`M} z7zoEE%K)A`dw5QLporcB@D_k?l2UH~_zHmCbbfkcmmb_bIX?JBSODhj;CyxOvF`9P z*j5(<0G|}z-E!iF;`j#v+yd}2i+mE^20cegJz|lMNU0B%ruW40_W*ncz9Rjf_2=8u z`RPF+_PX#m8?g5QOoip?9TejU@?v^r10{tlAMXKt58i6WakPuoa!~&yr*3QUz>o<< z-q+Upf8|%*&twF*)dh&MCniJ}668MipRQla4f3{%De?bR_-~l2`yp$ba~J>s002ov JPDHLkV1hK|JR|@B literal 0 HcmV?d00001 diff --git a/assets/captains/steve-layer.png b/assets/captains/steve-layer.png new file mode 100644 index 0000000000000000000000000000000000000000..1e9111b7bd33879d4bea55c2c9eb913ff995381e GIT binary patch literal 3646 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

Ei$L}+bkg-$uig(^$${PhXJ*%RYpRj|FyM`- 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 IM6N<$f^c|=cK`qY literal 0 HcmV?d00001 diff --git a/assets/hud.psd b/assets/hud.psd new file mode 100644 index 0000000000000000000000000000000000000000..4d7738bd1df1ae92506f98aafeb41d7576ae65cc GIT binary patch literal 354944 zcmeFa36Lb`b>CSt0Em;IAX00|mdz1#`T#LAxCodeNB{%~FG0c>NR%Awqi3dPFlJBp zxVr}jH&&!%dmXXiSg*XY6<)7pdZpgps#0BYo|~DGm6^_}tcc32%v6@^aH*

K=H* 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

Z05He( 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

(s}F#{(!&S5SbFe4KxA2bhAHCY+ke2| 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 E2Tk%@E&u=k literal 0 HcmV?d00001 diff --git a/assets/intro.ogg b/assets/intro.ogg new file mode 100644 index 0000000000000000000000000000000000000000..167cec186d7c0073510af146f28e98192a49bae3 GIT binary patch literal 18187 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 SXb93eiJMFVNRCiigZ}}T_CoOh literal 0 HcmV?d00001 diff --git a/assets/logo.png b/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..5f5d3a967fe03ada10dba4710b8c39251de65f51 GIT binary patch literal 9058 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 A&Hw-a literal 0 HcmV?d00001 diff --git a/assets/logo.psd b/assets/logo.psd new file mode 100644 index 0000000000000000000000000000000000000000..d0562dee2fbd82f5fb53ab3bf3d3dc4ab6ed4ff2 GIT binary patch literal 130572 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

DFE#HGvcp9D5p7 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 +## Getting started + +Clone this repository into your game folder: + + git clone https://github.com/vrld/moonshine.git + +This will create the folder `moonshine`. + +In your `main.lua`, or wherever you load your libraries, add the following: + +```lua +local moonshine = require 'moonshine' +``` + +Create and parametrize the post-processing effect in `love.load()`, for example: + +```lua +function love.load() + effect = moonshine(moonshine.effects.filmgrain) + .chain(moonshine.effects.vignette) + effect.filmgrain.size = 2 +end +``` + +Lastly, wrap the things you want to be drawn with the effect inside a function: + +```lua +function love.draw() + effect(function() + love.graphics.rectangle("fill", 300,200, 200,200) + end) +end +``` + +When you package your game for release, you might want consider deleting the +(hidden) `.git` folder in the moonshine directory. + + + +## General usage + +The main concept behind moonshine are chains. A chain consists of one or more +effects. Effects that come later in the chain will be applied to the result of +the effects that come before. In the example above, the vignette is drawn on +top of the filmgrain. + +### Chains + +Chains are created using the `moonshine.chain` function: + +```lua +chain = moonshine.chain(effect) +``` + +For convenience, `moonshine(effect)` is an alias to `moonshine.chain(effect)`. +You can add new effects to a chain using + +```lua +chain = chain.chain(another_effect) +``` + +or using `chain.next()`, which is an alias to `chain.chain()`. +As the function returns the chain, you can specify your whole chain in one go, +as shown in the example above. + +### Effects and effect parameters + +The effects that come bundled with moonshine (see [List of effects](#list-of-effects)) +are accessed by `chain.effects.`, e.g., + +```lua +moonshine.effects.glow +``` + +Most effects are parametrized to change how they look. In the example above, +the size of the grains was set to 2 pixels (the default is 1 pixel). +Effect parameters are set by first specifying the name of the effect and then +the name of the parameter: + +```lua +chain.. = +``` + +For example, if `chain` contained the `glow` and `crt` effects, you can set the +glow `strength` parameter and crt `distortionFactor` parameter as such: + +```lua +chain.glow.strength = 10 +chain.crt.distortionFactor = {1.06, 1.065} +``` + +Because you likely initialize a bunch of parameters at once, you can set all +parameters with the special key `parameters` (or `params` or `settings`). This +is equivalent to the above: + +```lua +chain.parameters = { + glow = {strength = 10}, + crt = {distortionFactor = {1.06, 1.065}}, +} +``` + +Note that this will only set the parameters specified in the table. The crt +parameter `feather`, for example, will be left untouched. + +### Drawing effects + +Creating effects and setting parameters is fine, but not very useful on its +own. You also need to apply it to something. This is done using `chain.draw()`: + +```lua +chain.draw(func, ...) +``` + +This will apply the effect to everything that is drawn inside `func(...)`. +Everything that is drawn outside of `func(...)` will not be affected. For +example, + +```lua +love.graphics.draw(img1, 0,0) +chain.draw(function() + love.graphics.draw(img2, 200,0) +end) +love.graphics.draw(img3, 400,0) +``` + +will apply the effect to `img2`, but not to `img1` and `img3`. Note that some +effects (like filmgrain) draw on the whole screen. So if in this example `chain` +would consist of a gaussianblur and filmgrain effect, `img1` will be covered +with grain, but will not be blurred, `img2` will get both effects, and `img3` +will be left untouched. + +Similar to chain creation, `chain(func, ...)` is an alias to the more verbose +`chain.draw(func, ...)`. + +### Temporarily disabling effects + +You can disable effects in a chain by using `chain.disable(names...)` and +`chain.enable(names...)`. +For example, + +```lua +effect = moonshine(moonshine.effects.boxblur) + .chain(moonshine.effects.filmgrain) + .chain(moonshine.effects.vignette) +effect.disable("boxblur", "filmgrain") +effect.enable("filmgrain") +``` + +would first disable the boxblur and filmgrain effect, and then enable the +filmgrain again. +Note that the effects are still in the chain, they are only not drawn. + +### Canvas size + +You can change the size of the internal canvas, for example when the window was +resized, by calling `chain.resize(width, height)`. +Do this anytime you want, but best not during `chain.draw()`. + +You can also specify the initial canvas size by starting the chain like this: + +```lua +effect = moonshine(400,300, moonshine.effects.vignette) +``` + +That is, you specify the width and height before the first effect in the chain. + +### Is this efficient? + +Of course, using moonshine is not as efficient as writing your own shader that +does all the effects you want in the least amount of passes, but moonshine +tries to minimize the overhead. + +On the other hand, you don't waste time writing the same shader over and over +again when using moonshine: You're trading a small amount of computation time +for a large amount of development time. + + + +## List of effects + +Currently, moonshine contains the following effects (in alphabetical order): + +* [boxblur](#effect-boxblur): simple blurring +* [chromasep](#effect-chromasep): cheap/fake chromatic aberration +* [colorgradesimple](#effect-colorgradesimple): weighting of color channels +* [crt](#effect-crt): crt/barrel distortion +* [desaturate](#effect-desaturate): desaturation and tinting +* [dmg](#effect-dmg): Gameboy and other four color palettes +* [fastgaussianblur](#effect-fastgaussianblur): faster Gaussian blurring +* [filmgrain](#effect-filmgrain): image noise +* [gaussianblur](#effect-gaussianblur): Gaussian blurring +* [glow](#effect-glow): aka (light bloom +* [godsray](#effect-godsray): aka light scattering +* [pixelate](#effect-pixelate): sub-sampling (for that indie look) +* [posterize](#effect-posterize): restrict number of colors +* [scanlines](#effect-scanlines): horizontal lines +* [sketch](#effect-sketch): simulate pencil drawings +* [vignette](#effect-vignette): shadow in the corners + + + +### boxblur + +```lua +moonshine.effects.boxblur +``` + +**Parameters:** + +Name | Type | Default +-----|------|-------- +radius | number or table of numbers | {3,3} +radius_x | number | 3 +radius_y | number | 3 + + + +### chromasep + +```lua +moonshine.effects.chromasep +``` + +**Parameters:** + +Name | Type | Default +-----|------|-------- +angle | number (in radians) | 0 +radius | number | 0 + + + +### colorgradesimple + +```lua +moonshine.effects.colorgradesimple +``` + +**Parameters:** + +Name | Type | Default +-----|------|-------- +factors | table of numbers | {1,1,1} + + + +### crt + +```lua +moonshine.effects.crt +``` + +**Parameters:** + +Name | Type | Default +-----|------|-------- +distortionFactor | table of numbers | {1.06, 1.065} +x | number | 1.06 +y | number | 1.065 +scaleFactor | number or table of numbers | {1,1} +feather | number | 0.02 + + + +### desaturate + +```lua +moonshine.effects.desaturate +``` + +**Parameters:** + +Name | Type | Default +-----|------|-------- +tint | color / table of numbers | {255,255,255} +strength | number between 0 and 1 | 0.5 + + + +### dmg + +```lua +moonshine.effects.dmg +``` + +Name | Type | Default +-----|------|-------- +palette | number or string or table of table of numbers | "default" + +DMG ships with 7 palettes: + +1. `default` +2. `dark_yellow` +3. `light_yellow` +4. `green` +5. `greyscale` +6. `stark_bw` +7. `pocket` + +Custom palettes must be in the format `{{R,G,B}, {R,G,B}, {R,G,B}, {R,G,B}}`, +where `R`, `G`, and `B` are numbers between `0` and `255`. + + + +### fastgaussianblur + +```lua +moonshine.effects.fastgaussianblur +``` + +**Parameters:** + +Name | Type | Default +-----|------|-------- +taps | odd number >= 3 | 7 | (amount of blur) +offset | number | 1 +sigma | number | -1 + + + +### filmgrain + +```lua +moonshine.effects.filmgrain +``` + +**Parameters:** + +Name | Type | Default +-----|------|-------- +opacity | number | 0.3 +size | number | 1 + + + +### gaussianblur + +```lua +moonshine.effects.gaussianblur +``` + +**Parameters:** + +Name | Type | Default +-----|------|-------- +sigma | number | 1 | (amount of blur) + + + +### glow + +```lua +moonshine.effects.glow +``` + +**Parameters:** + +Name | Type | Default +-----|------|-------- +min_luma | number between 0 and 1 | 0.7 +strength | number >= 0 | 5 + + + +### godsray + +```lua +moonshine.effects.godsray +``` + +**Parameters:** + +Name | Type | Default +-----|------|-------- +exposire | number between 0 and 1 | 0.5 +decay | number between 0 and 1 | 0.95 +density | number between 0 and 1 | 0.05 +weight | number between 0 and 1 | 0.5 +light_position | table of two numbers | {0.5, 0.5} +light_x | number | 0.5 +light_y | number | 0.5 +samples | number >= 1 | 70 + + + +### pixelate + +```lua +moonshine.effects.pixelate +``` + +**Parameters:** + +Name | Type | Default +-----|------|-------- +size | number or table of two numbers | {5,5} +feedback | number between 0 and 1 | 0 + + + +### posterize + +```lua +moonshine.effects.posterize +``` + +**Parameters:** + +Name | Type | Default +-----|------|-------- +num_bands | number >= 1 | 3 + + + +### scanlines + +```lua +moonshine.effects.scanlines +``` + +**Parameters:** + +Name | Type | Default +-----|------|-------- +width | number | 2 +frequency | number | screen-height +phase | number | 0 +thickness | number | 1 +opacity | number | 1 +color | color / table of numbers | {0,0,0} + + + +### sketch + +```lua +moonshine.effects.sketch +``` + +**Parameters:** + +Name | Type | Default +-----|------|-------- +amp | number | 0.0007 +center | table of numbers | {0,0} + + + +### vignette + +```lua +moonshine.effects.vignette +``` + +**Parameters:** + +Name | Type | Default +-----|------|-------- +radius | number > 0 | 0.8 +softness | number > 0 | 0.5 +opacity | number > 0 | 0.5 +color | color / table of numbers | {0,0,0} + + +### fog + +```lua +moonshine.effects.fog +``` + +**Parameters:** + +Name | Type | Default +-----|------|-------- +fog_color | color/table of numbers | {0.35, 0.48, 0.95} +octaves | number > 0 | 4 +speed | vec2/table of numbers | {0.5, 0.5} + + + +## Writing effects + +An effect is essentially a function that returns a `moonshine.Effect{}`, which +must specify at least a `name` and a `shader` or a `draw` function. + +It may also specify a `setters` table that contains functions that set the +effect parameters and a `defaults` table with the corresponding default values. +The default values will be set when the effect is instantiated. + +A good starting point to see how to write effects is the `colorgradesimple` +effect, which uses the `shader`, `setters` and `defaults` fields. + +Moonshine uses double buffering to draw the effects. A function to swap and +access the buffers is provided to the `draw(buffer)` function of your effect: + +```lua +front, back = buffer() -- swaps front and back buffer and returns both +``` + +You don't have to care about canvases or restoring defaults, moonshine handles +all that for you. + +If you only need a custom draw function because your effect needs multiple +shader passes, moonshine provides the `draw_shader(buffer, shader)` function. +As you might have guessed, this function uses `shader` to draw the front buffer +to the back buffer. The `boxblur` effect gives a simple example how to use this +function. + +If for some reason you need more than two buffer, you are more or less on your +own. You can do everything, but make sure that the blend mode and the order of +back and front buffer is the same before and after your custom `draw` function. +The `glow` effect gives an example of a more complicated `draw` function. + + + +## License + +See [here](https://github.com/vrld/moonshine/graphs/contributors) for a list of +contributors. + +The main library can freely be used under the following conditions: + + The MIT License (MIT) + + Copyright (c) 2017 Matthias Richter + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +Most of the effects are public domain (see comments inside the files): + +* boxblur.lua +* chromasep.lua +* colorgradesimple.lua +* crt.lua +* desaturate.lua +* filmgrain.lua +* gaussianblur.lua +* glow.lua +* pixelate.lua +* posterize.lua +* scanlines.lua +* vignette.lua + +These effects are MIT-licensed with multiple authors: + +* dmg.lua: Joseph Patoprsty, Matthias Richter +* fastgaussianblur.lua: Tim Moore, Matthias Richter +* godsray.lua: Joseph Patoprsty, Matthias Richter. Based on work by ioxu, Fabien Sanglard, Kenny Mitchell and Jason Mitchell. +* sketch.lua: Martin Felis, Matthias Richter +* fog.lua: Brandon Blanker Lim-it. Based on work by Gonkee. diff --git a/shaders/boxblur.lua b/shaders/boxblur.lua new file mode 100644 index 0000000..bb6afc1 --- /dev/null +++ b/shaders/boxblur.lua @@ -0,0 +1,62 @@ +--[[ +Public domain: + +Copyright (C) 2017 by Matthias Richter + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +]]-- + +return function(moonshine) + local radius_x, radius_y = 3, 3 + local shader = love.graphics.newShader[[ + extern vec2 direction; + extern number radius; + vec4 effect(vec4 color, Image texture, vec2 tc, vec2 _) { + vec4 c = vec4(0.0); + + for (float i = -radius; i <= radius; i += 1.0) + { + c += Texel(texture, tc + i * direction); + } + return c / (2.0 * radius + 1.0) * color; + }]] + + local setters = {} + setters.radius = function(v) + if type(v) == "number" then + radius_x, radius_y = v, v + elseif type(v) == "table" and #v >= 2 then + radius_x, radius_y = tonumber(v[1] or v.h or v.x), tonumber(v[2] or v.v or v.y) + else + error("Invalid argument `radius'") + end + end + setters.radius_x = function(v) radius_x = tonumber(v) end + setters.radius_y = function(v) radius_y = tonumber(v) end + + local draw = function(buffer) + shader:send('direction', {1 / love.graphics.getWidth(), 0}) + shader:send('radius', math.floor(radius_x + .5)) + moonshine.draw_shader(buffer, shader) + + shader:send('direction', {0, 1 / love.graphics.getHeight()}) + shader:send('radius', math.floor(radius_y + .5)) + moonshine.draw_shader(buffer, shader) + end + + return moonshine.Effect{ + name = "boxblur", + draw = draw, + setters = setters, + defaults = {radius = 3} + } +end diff --git a/shaders/chromasep.lua b/shaders/chromasep.lua new file mode 100644 index 0000000..f528733 --- /dev/null +++ b/shaders/chromasep.lua @@ -0,0 +1,49 @@ +--[[ +Public domain: + +Copyright (C) 2017 by Matthias Richter + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +]]-- + +return function(moonshine) + local shader = love.graphics.newShader[[ + extern vec2 direction; + vec4 effect(vec4 color, Image texture, vec2 tc, vec2 _) + { + return color * vec4( + Texel(texture, tc - direction).r, + Texel(texture, tc).g, + Texel(texture, tc + direction).b, + 1.0); + }]] + + local angle, radius = 0, 0 + local setters = { + angle = function(v) angle = tonumber(v) or 0 end, + radius = function(v) radius = tonumber(v) or 0 end + } + + local draw = function(buffer, effect) + local dx = math.cos(angle) * radius / love.graphics.getWidth() + local dy = math.sin(angle) * radius / love.graphics.getHeight() + shader:send("direction", {dx,dy}) + moonshine.draw_shader(buffer, shader) + end + + return moonshine.Effect{ + name = "chromasep", + draw = draw, + setters = setters, + defaults = {angle = 0, radius = 0} + } +end diff --git a/shaders/colorgradesimple.lua b/shaders/colorgradesimple.lua new file mode 100644 index 0000000..f0e0278 --- /dev/null +++ b/shaders/colorgradesimple.lua @@ -0,0 +1,33 @@ +--[[ +Public domain: + +Copyright (C) 2017 by Matthias Richter + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +]]-- + +return function(moonshine) + local shader = love.graphics.newShader[[ + extern vec3 factors; + vec4 effect(vec4 color, Image texture, vec2 tc, vec2 _) { + return vec4(factors, 1.0) * Texel(texture, tc) * color; + }]] + + local setters = {} + + return moonshine.Effect{ + name = "colorgradesimple", + shader = shader, + setters = {factors = function(v) shader:send("factors", v) end}, + defaults = {factors = {1,1,1}} + } +end diff --git a/shaders/crt.lua b/shaders/crt.lua new file mode 100644 index 0000000..9b73799 --- /dev/null +++ b/shaders/crt.lua @@ -0,0 +1,79 @@ +--[[ +Public domain: + +Copyright (C) 2017 by Matthias Richter + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +]]-- + +return function(moonshine) + -- Barrel distortion adapted from Daniel Oaks (see commit cef01b67fd) + -- Added feather to mask out outside of distorted texture + local distortionFactor + local shader = love.graphics.newShader[[ + extern vec2 distortionFactor; + extern vec2 scaleFactor; + extern number feather; + + vec4 effect(vec4 color, Image tex, vec2 uv, vec2 px) { + // to barrel coordinates + uv = uv * 2.0 - vec2(1.0); + + // distort + uv *= scaleFactor; + uv += (uv.yx*uv.yx) * uv * (distortionFactor - 1.0); + number mask = (1.0 - smoothstep(1.0-feather,1.0,abs(uv.x))) + * (1.0 - smoothstep(1.0-feather,1.0,abs(uv.y))); + + // to cartesian coordinates + uv = (uv + vec2(1.0)) / 2.0; + + return color * Texel(tex, uv) * mask; + } + ]] + + local setters = {} + + setters.distortionFactor = function(v) + assert(type(v) == "table" and #v == 2, "Invalid value for `distortionFactor'") + distortionFactor = {unpack(v)} + shader:send("distortionFactor", v) + end + + setters.x = function(v) setters.distortionFactor{v, distortionFactor[2]} end + setters.y = function(v) setters.distortionFactor{distortionFactor[1], v} end + + setters.scaleFactor = function(v) + if type(v) == "table" and #v == 2 then + shader:send("scaleFactor", v) + elseif type(v) == "number" then + shader:send("scaleFactor", {v,v}) + else + error("Invalid value for `scaleFactor'") + end + end + + setters.feather = function(v) shader:send("feather", v) end + + local defaults = { + distortionFactor = {1.06, 1.065}, + feather = 0.02, + scaleFactor = 1, + } + + return moonshine.Effect{ + name = "crt", + shader = shader, + setters = setters, + defaults = defaults + } +end diff --git a/shaders/desaturate.lua b/shaders/desaturate.lua new file mode 100644 index 0000000..8a55217 --- /dev/null +++ b/shaders/desaturate.lua @@ -0,0 +1,52 @@ +--[[ +Public domain: + +Copyright (C) 2017 by Matthias Richter + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +]]-- + +return function(moonshine) + local shader = love.graphics.newShader[[ + extern vec4 tint; + extern number strength; + vec4 effect(vec4 color, Image texture, vec2 tc, vec2 _) { + color = Texel(texture, tc); + number luma = dot(vec3(0.299, 0.587, 0.114), color.rgb); + return mix(color, tint * luma, strength); + }]] + + local setters = {} + + setters.tint = function(c) + assert(type(c) == "table" and #c == 3, "Invalid value for `tint'") + shader:send("tint", { + (tonumber(c[1]) or 0) / 255, + (tonumber(c[2]) or 0) / 255, + (tonumber(c[3]) or 0) / 255, + 1 + }) + end + + setters.strength = function(v) + shader:send("strength", math.max(0, math.min(1, tonumber(v) or 0))) + end + + local defaults = {tint = {255,255,255}, strength = 0.5} + + return moonshine.Effect{ + name = "desaturate", + shader = shader, + setters = setters, + defaults = defaults + } +end diff --git a/shaders/dmg.lua b/shaders/dmg.lua new file mode 100644 index 0000000..b426852 --- /dev/null +++ b/shaders/dmg.lua @@ -0,0 +1,153 @@ +--[[ +The MIT License (MIT) + +Original code: Copyright (c) 2015 Josef Patoprsty +Port to moonshine: Copyright (c) 2017 Matthias Richter + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +]]-- + +local palettes = { + -- Default color palette. Source: + -- http://en.wikipedia.org/wiki/List_of_video_game_console_palettes#Original_Game_Boy + { + name = "default", + colors = { + { 15/255, 56/255, 15/255}, + { 48/255, 98/255, 48/255}, + {139/255,172/255, 15/255}, + {155/255,188/255, 15/255} + } + }, + -- Hardcore color profiles. Source: + -- http://www.hardcoregaming101.net/gbdebate/gbcolours.htm + { + name = "dark_yellow", + colors = { + {33/255,32/255,16/255}, + {107/255,105/255,49/255}, + {181/255,174/255,74/255}, + {255/255,247/255,123/255} + } + }, + { + name = "light_yellow", + colors = { + {102/255,102/255,37/255}, + {148/255,148/255,64/255}, + {208/255,208/255,102/255}, + {255/255,255/255,148/255} + } + }, + { + name = "green", + colors = { + {8/255,56/255,8/255}, + {48/255,96/255,48/255}, + {136/255,168/255,8/255}, + {183/255,220/255,17/255} + } + }, + { + name = "greyscale", + colors = { + {56/255,56/255,56/255}, + {117/255,117/255,117/255}, + {178/255,178/255,178/255}, + {239/255,239/255,239/255} + } + }, + { + name = "stark_bw", + colors = { + {0/255,0/255,0/255}, + {117/255,117/255,117/255}, + {178/255,178/255,178/255}, + {255/255,255/255,255/255} + } + }, + { + name = "pocket", + colors = { + {108/255,108/255,78/255}, + {142/255,139/255,87/255}, + {195/255,196/255,165/255}, + {227/255,230/255,201/255} + } + } +} + +local lookup_palette = function(name) + for _,palette in pairs(palettes) do + if palette.name == name then + return palette + end + end +end + +local is_valid_palette = function(v) + -- Needs to match: {{R,G,B},{R,G,B},{R,G,B},{R,G,B}} + if #v ~= 4 then return false end + + for i = 1,4 do + if type(v[i]) ~= "table" or #v[i] ~= 3 then return false end + for c = 1,3 do + if type(v[i][c]) ~= "number" then return false end + local x = v[i][c] + if x > 1 then x = x / 255 end + if x < 0 or x > 1 then return false end + v[i][c] = x + end + end + return true +end + +return function(moonshine) + local shader = love.graphics.newShader[[ + extern vec3 palette[ 4 ]; + + vec4 effect(vec4 color, Image texture, vec2 texture_coords, vec2 pixel_coords) { + vec4 pixel = Texel(texture, texture_coords); + float avg = min(0.9999,max(0.0001,(pixel.r + pixel.g + pixel.b)/3)); + int index = int(avg*4); + return vec4(palette[index], pixel.a); + }]] + + local setters = {} + setters.palette = function(v) + if type(v) == "number" and palettes[math.floor(v)] then -- indexed palette + palette = palettes[math.floor(v)] + elseif type(v) == "string" then -- named palette + palette = lookup_palette(v) + elseif type(v) == "table" and is_valid_palette(v) then -- custom palette + palette = {colors=v} + else -- Fall back to default + palette = palettes[1] + end + shader:send("palette", palette.colors[1], palette.colors[2], + palette.colors[3], palette.colors[4], {}) + end + + return moonshine.Effect{ + name = "dmg", + shader = shader, + setters = setters, + defaults = {palette = "default"} + } +end diff --git a/shaders/fastgaussianblur.lua b/shaders/fastgaussianblur.lua new file mode 100644 index 0000000..364b766 --- /dev/null +++ b/shaders/fastgaussianblur.lua @@ -0,0 +1,139 @@ +--[[ +The MIT License (MIT) + +Copyright (c) 2017 Tim Moore +Adapted for new moonshine API by Matthias Richter + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +]]-- + +-- Bilinear Gaussian blur filter as detailed here: http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/ +-- Produces near identical results to a standard Gaussian blur by using sub-pixel sampling, +-- this allows us to do ~1/2 the number of pixel lookups. + +-- unroll convolution loop +local function build_shader(taps, offset, offset_type, sigma) + taps = math.floor(taps) + sigma = sigma >= 1 and sigma or (taps - 1) * offset / 6 + sigma = math.max(sigma, 1) + + local steps = (taps + 1) / 2 + + -- Calculate gaussian function. + local g_offsets = {} + local g_weights = {} + for i = 1, steps, 1 do + g_offsets[i] = offset * (i - 1) + + -- We don't need to include the constant part of the gaussian function as we normalize later. + -- 1 / math.sqrt(2 * sigma ^ math.pi) * math.exp(-0.5 * ((offset - 0) / sigma) ^ 2 ) + g_weights[i] = math.exp(-0.5 * (g_offsets[i] - 0) ^ 2 * 1 / sigma ^ 2 ) + end + + -- Calculate offsets and weights for sub-pixel samples. + local offsets = {} + local weights = {} + for i = #g_weights, 2, -2 do + local oA, oB = g_offsets[i], g_offsets[i - 1] + local wA, wB = g_weights[i], g_weights[i - 1] + wB = oB == 0 and wB / 2 or wB -- On center tap the middle is getting sampled twice so half weight. + local weight = wA + wB + offsets[#offsets + 1] = offset_type == 'center' and (oA + oB) / 2 or (oA * wA + oB * wB) / weight + weights[#weights + 1] = weight + end + + local code = {[[ + extern vec2 direction; + vec4 effect(vec4 color, Image tex, vec2 tc, vec2 sc) {]]} + + local norm = 0 + if #g_weights % 2 == 0 then + code[#code+1] = 'vec4 c = vec4( 0.0 );' + else + local weight = g_weights[1] + norm = norm + weight + code[#code+1] = ('vec4 c = %f * texture2D(tex, tc);'):format(weight) + end + + local tmpl = 'c += %f * ( texture2D(tex, tc + %f * direction)+ texture2D(tex, tc - %f * direction));\n' + for i = 1, #offsets, 1 do + local offset = offsets[i] + local weight = weights[i] + norm = norm + weight * 2 + code[#code+1] = tmpl:format(weight, offset, offset) + end + code[#code+1] = ('return c * vec4(%f) * color; }'):format(1 / norm) + + local shader = table.concat(code) + return love.graphics.newShader(shader) +end + +return function(moonshine) + local taps, offset, offset_type, sigma = 7, 1, 'weighted', -1 + local shader = build_shader(taps, offset, offset_type, sigma) + + local function draw(buffer) + shader:send('direction', {1 / love.graphics.getWidth(), 0}) + moonshine.draw_shader(buffer, shader) + + shader:send('direction', {0, 1 / love.graphics.getHeight()}) + moonshine.draw_shader(buffer, shader) + end + + local setters = {} + + -- Number of effective samples to take per pass. e.g. 3-tap is the current pixel and the neighbors each side. + -- More taps = larger blur, but slower. + setters.taps = function(v) + assert(tonumber(v) >= 3, "Invalid value for `taps': Must be >= 3") + assert(tonumber(v)%2 == 1, "Invalid value for `taps': Must be odd") + taps = tonumber(v) + shader = build_shader(taps, offset, offset_type, sigma) + end + + -- Offset of each tap. + -- For highest quality this should be <=1 but if the image has low entropy we + -- can approximate the blur with a number > 1 and less taps, for better performance. + setters.offset = function(v) + offset = tonumber(v) or 0 + shader = build_shader(taps, offset, offset_type, sigma) + end + + -- Offset type, either 'weighted' or 'center'. + -- 'weighted' gives a more accurate gaussian decay but can introduce modulation + -- for high frequency details. + setters.offset_type = function(v) + assert(v == 'weighted' or v == 'center', "Invalid value for 'offset_type': Must be 'weighted' or 'center'.") + offset_type = v + shader = build_shader(taps, offset, offset_type, sigma) + end + + -- Sigma value for gaussian distribution. You don't normally need to set this. + setters.sigma = function(v) + sigma = tonumber(v) or -1 + shader = build_shader(taps, offset, offset_type, sigma) + end + + return moonshine.Effect{ + name = "fastgaussianblur", + draw = draw, + setters = setters, + -- no defaults here, as we dont want the shader to be built 3 times on startup + } +end diff --git a/shaders/filmgrain.lua b/shaders/filmgrain.lua new file mode 100644 index 0000000..8491f17 --- /dev/null +++ b/shaders/filmgrain.lua @@ -0,0 +1,63 @@ +--[[ +Public domain: + +Copyright (C) 2017 by Matthias Richter + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +]]-- + +return function(moonshine) + local noisetex = love.image.newImageData(256,256) + noisetex:mapPixel(function() + local l = love.math.random() * 255 + return l,l,l,l + end) + noisetex = love.graphics.newImage(noisetex) + + local shader = love.graphics.newShader[[ + extern number opacity; + extern number size; + extern vec2 noise; + extern Image noisetex; + extern vec2 tex_ratio; + + float rand(vec2 co) { + return Texel(noisetex, mod(co * tex_ratio / vec2(size), vec2(1.0))).r; + } + + vec4 effect(vec4 color, Image texture, vec2 tc, vec2 _) { + return color * Texel(texture, tc) * mix(1.0, rand(tc+vec2(noise)), opacity); + }]] + + shader:send("noisetex", noisetex) + shader:send("tex_ratio", {love.graphics.getWidth() / noisetex:getWidth(), + love.graphics.getHeight() / noisetex:getHeight()}) + + local setters = {} + for _,k in ipairs{"opacity", "size"} do + setters[k] = function(v) shader:send(k, math.max(0, tonumber(v) or 0)) end + end + + local defaults = {opacity = .3, size = 1} + + local draw = function(buffer) + shader:send("noise", {love.math.random(), love.math.random()}) + moonshine.draw_shader(buffer, shader) + end + + return moonshine.Effect{ + name = "filmgrain", + draw = draw, + setters = setters, + defaults = defaults + } +end diff --git a/shaders/fog.lua b/shaders/fog.lua new file mode 100644 index 0000000..9c90f9a --- /dev/null +++ b/shaders/fog.lua @@ -0,0 +1,129 @@ +--[[ +Animated 2D Fog (procedural) +Originally for Godot Engine by Gonkee https://www.youtube.com/watch?v=QEaTsz_0o44&t=6s + +Translated for löve by Brandon Blanker Lim-it @flamendless +]]-- + +--[[ +SAMPLE USAGE: +local moonshine = require("moonshine") +local effect + +local image, bg +local image_data +local shader_fog +local time = 0 + +function love.load() + image_data = love.image.newImageData(love.graphics.getWidth(), love.graphics.getHeight()) + image = love.graphics.newImage(image_data) + bg = love.graphics.newImage("bg.png") + effect = moonshine(moonshine.effects.fog) + effect.fog.fog_color = {0.1, 0.0, 0.0} + effect.fog.speed = {0.2, 0.9} +end + +function love.update(dt) + time = time + dt + effect.fog.time = time +end + +function love.draw() + love.graphics.draw(bg) + effect(function() + love.graphics.draw(image) + end) +end +]] + +return function(moonshine) + local fog_color + local octaves + local speed + local time + + local shader = love.graphics.newShader([[ + extern vec3 fog_color = vec3(0.35, 0.48, 0.95); + extern int octaves = 4; + extern vec2 speed = vec2(0.0, 1.0); + extern float time; + + float rand(vec2 coord) + { + return fract(sin(dot(coord, vec2(56, 78)) * 1000.0) * 1000.0); + } + + float noise(vec2 coord) + { + vec2 i = floor(coord); //get the whole number + vec2 f = fract(coord); //get the fraction number + float a = rand(i); //top-left + float b = rand(i + vec2(1.0, 0.0)); //top-right + float c = rand(i + vec2(0.0, 1.0)); //bottom-left + float d = rand(i + vec2(1.0, 1.0)); //bottom-right + vec2 cubic = f * f * (3.0 - 2.0 * f); + return mix(a, b, cubic.x) + (c - a) * cubic.y * (1.0 - cubic.x) + (d - b) * cubic.x * cubic.y; //interpolate + } + + float fbm(vec2 coord) //fractal brownian motion + { + float value = 0.0; + float scale = 0.5; + for (int i = 0; i < octaves; i++) + { + value += noise(coord) * scale; + coord *= 2.0; + scale *= 0.5; + } + return value; + } + + vec4 effect(vec4 color, Image texture, vec2 tc, vec2 sc) + { + vec2 coord = tc * 20.0; + vec2 motion = vec2(fbm(coord + vec2(time * speed.x, time * speed.y))); + float final = fbm(coord + motion); + return vec4(fog_color, final * 0.5); + } + ]]) + + local setters = {} + + setters.fog_color = function(t) + assert(type(t) == "table", "Passed argument to fog_color must be a table containing 3 color values") + fog_color = t + shader:send("fog_color", fog_color) + end + + setters.octaves = function(i) + assert(type(i) == "number", "Passed argument to octaves must be an integer") + octaves = i + shader:send("octaves", octaves) + end + + setters.speed = function(t) + assert(type(t) == "table", "Passed argument to speed must be a table containing 2 values") + speed = t + shader:send("speed", speed) + end + + setters.time = function(n) + assert(type(n) == "number", "Passed argument to time must be a number") + time = n + shader:send("time", time) + end + + local defaults = { + fog_color = {0.35, 0.48, 0.95}, + octaves = 4, + speed = {0.5, 0.5}, + } + + return moonshine.Effect({ + name = "fog", + shader = shader, + setters = setters, + defaults = defaults, + }) +end diff --git a/shaders/gaussianblur.lua b/shaders/gaussianblur.lua new file mode 100644 index 0000000..693414a --- /dev/null +++ b/shaders/gaussianblur.lua @@ -0,0 +1,55 @@ +--[[ +Public domain: + +Copyright (C) 2017 by Matthias Richter + +Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +]]-- +local function resetShader(sigma) + local support = math.max(1, math.floor(3*sigma + .5)) + local one_by_sigma_sq = sigma > 0 and 1 / (sigma * sigma) or 1 + local norm = 0 + + local code = {[[ + extern vec2 direction; + vec4 effect(vec4 color, Image texture, vec2 tc, vec2 _) + { vec4 c = vec4(0.0); + ]]} + local blur_line = "c += vec4(%f) * Texel(texture, tc + vec2(%f) * direction);" + + for i = -support,support do + local coeff = math.exp(-.5 * i*i * one_by_sigma_sq) + norm = norm + coeff + code[#code+1] = blur_line:format(coeff, i) + end + + code[#code+1] = ("return c * vec4(%f) * color;}"):format(norm > 0 and 1/norm or 1) + + return love.graphics.newShader(table.concat(code)) +end + +return function(moonshine) + local shader + + local setters = {} + setters.sigma = function(v) + shader = resetShader(math.max(0,tonumber(v) or 1)) + end + + local draw = function(buffer) + shader:send('direction', {1 / love.graphics.getWidth(), 0}) + moonshine.draw_shader(buffer, shader) + + shader:send('direction', {0, 1 / love.graphics.getHeight()}) + moonshine.draw_shader(buffer, shader) + end + + return moonshine.Effect{ + name = "gaussianblur", + draw = draw, + setters = setters, + defaults = {sigma = 1}, + } +end diff --git a/shaders/glow.lua b/shaders/glow.lua new file mode 100644 index 0000000..cec010b --- /dev/null +++ b/shaders/glow.lua @@ -0,0 +1,104 @@ +--[[ +Public domain: + +Copyright (C) 2017 by Matthias Richter + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +]]-- + + +-- unroll convolution loop for gaussian blur shader +local function make_blur_shader(sigma) + local support = math.max(1, math.floor(3*sigma + .5)) + local one_by_sigma_sq = sigma > 0 and 1 / (sigma * sigma) or 1 + local norm = 0 + + local code = {[[ + extern vec2 direction; + vec4 effect(vec4 color, Image texture, vec2 tc, vec2 _) { + vec4 c = vec4(0.0); + ]]} + local blur_line = "c += vec4(%f) * Texel(texture, tc + vec2(%f) * direction);" + + for i = -support,support do + local coeff = math.exp(-.5 * i*i * one_by_sigma_sq) + norm = norm + coeff + code[#code+1] = blur_line:format(coeff, i) + end + + code[#code+1] = ("return c * vec4(%f) * color;}"):format(1 / norm) + + return love.graphics.newShader(table.concat(code)) +end + +return function(moonshine) + local blurshader -- set in setters.glow_strength + local threshold = love.graphics.newShader[[ + extern number min_luma; + vec4 effect(vec4 color, Image texture, vec2 tc, vec2 _) { + vec4 c = Texel(texture, tc); + number luma = dot(vec3(0.299, 0.587, 0.114), c.rgb); + return c * step(min_luma, luma) * color; + }]] + + local setters = {} + setters.strength = function(v) + blurshader = make_blur_shader(math.max(0,tonumber(v) or 1)) + end + setters.min_luma = function(v) + threshold:send("min_luma", math.max(0, math.min(1, tonumber(v) or 0.5))) + end + + local scene = love.graphics.newCanvas() + local draw = function(buffer) + local front, back = buffer() -- scene so far is in `back' + scene, back = back, scene -- save it for second draw below + + -- 1st pass: draw scene with brightness threshold + love.graphics.setCanvas(front) + love.graphics.clear() + love.graphics.setShader(threshold) + love.graphics.draw(scene) + + -- 2nd pass: apply blur shader in x + blurshader:send('direction', {1 / love.graphics.getWidth(), 0}) + love.graphics.setCanvas(back) + love.graphics.clear() + love.graphics.setShader(blurshader) + love.graphics.draw(front) + + -- 3nd pass: apply blur shader in y and draw original and blurred scene + love.graphics.setCanvas(front) + love.graphics.clear() + + -- original scene without blur shader + love.graphics.setShader() + love.graphics.setBlendMode("add", "premultiplied") + love.graphics.draw(scene) -- original scene + + -- second pass of light blurring + blurshader:send('direction', {0, 1 / love.graphics.getHeight()}) + love.graphics.setShader(blurshader) + love.graphics.draw(back) + + -- restore things as they were before entering draw() + love.graphics.setBlendMode("alpha", "premultiplied") + scene = back + end + + return moonshine.Effect{ + name = "glow", + draw = draw, + setters = setters, + defaults = {min_luma=.7, strength = 5} + } +end diff --git a/shaders/godsray.lua b/shaders/godsray.lua new file mode 100644 index 0000000..6c9f74a --- /dev/null +++ b/shaders/godsray.lua @@ -0,0 +1,107 @@ +--[[ +The MIT License (MIT) + +Original code: Copyright (c) 2015 Josef Patoprsty +Port to moonshine: Copyright (c) 2017 Matthias Richter + +Based on work by: ioxu + +https://www.love2d.org/forums/viewtopic.php?f=4&t=3733&start=120#p71099 + +Based on work by: Fabien Sanglard + +http://fabiensanglard.net/lightScattering/index.php + +Based on work from: + +[Mitchell]: Kenny Mitchell "Volumetric Light Scattering as a Post-Process" GPU Gems 3 (2005). +[Mitchell2]: Jason Mitchell "Light Shaft Rendering" ShadersX3 (2004). + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +]]-- + +return function(moonshine) + local shader = love.graphics.newShader[[ + extern number exposure; + extern number decay; + extern number density; + extern number weight; + extern vec2 light_position; + extern number samples; + + vec4 effect(vec4 color, Image tex, vec2 uv, vec2 px) { + color = Texel(tex, uv); + + vec2 offset = (uv - light_position) * density / samples; + number illumination = decay; + vec4 c = vec4(.0, .0, .0, 1.0); + + for (int i = 0; i < int(samples); ++i) { + uv -= offset; + c += Texel(tex, uv) * illumination * weight; + illumination *= decay; + } + + return vec4(c.rgb * exposure + color.rgb, color.a); + }]] + + + local setters, light_position = {} + + for _,k in ipairs{"exposure", "decay", "density", "weight"} do + setters[k] = function(v) + shader:send(k, math.min(1, math.max(0, tonumber(v) or 0))) + end + end + + setters.light_position = function(v) + light_position = {unpack(v)} + shader:send("light_position", v) + end + + setters.light_x = function(v) + assert(type(v) == "number", "Invalid value for `light_x'") + setters.light_position{v, light_position[2]} + end + + setters.light_y = function(v) + assert(type(v) == "number", "Invalid value for `light_y'") + setters.light_position{light_position[1], v} + end + + setters.samples = function(v) + shader:send("samples", math.max(1,tonumber(v) or 1)) + end + + local defaults = { + exposure = 0.25, + decay = 0.95, + density = 0.15, + weight = 0.5, + light_position = {0.5,0.5}, + samples = 70 + } + + return moonshine.Effect{ + name = "godsray", + shader = shader, + setters = setters, + defaults = defaults + } +end diff --git a/shaders/init.lua b/shaders/init.lua new file mode 100644 index 0000000..431c6c0 --- /dev/null +++ b/shaders/init.lua @@ -0,0 +1,171 @@ +--[[ +The MIT License (MIT) + +Copyright (c) 2017 Matthias Richter + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +]]-- + +local BASE = ... + +local moonshine = {} + +moonshine.draw_shader = function(buffer, shader) + local front, back = buffer() + love.graphics.setCanvas(front) + love.graphics.clear() + if shader ~= love.graphics.getShader() then + love.graphics.setShader(shader) + end + love.graphics.draw(back) +end + +moonshine.chain = function(w,h,effect) + -- called as moonshine.chain(effect)' + if h == nil then + effect, w,h = w, love.window.getMode() + end + assert(effect ~= nil, "No effect") + + local front, back = love.graphics.newCanvas(w,h), love.graphics.newCanvas(w,h) + local buffer = function() + back, front = front, back + return front, back + end + + local disabled = {} -- set of disabled effects + local chain = {} + chain.resize = function(w, h) + front, back = love.graphics.newCanvas(w,h), love.graphics.newCanvas(w,h) + return chain + end + + chain.draw = function(func, ...) + -- save state + local canvas = love.graphics.getCanvas() + local shader = love.graphics.getShader() + local fg_r, fg_g, fg_b, fg_a = love.graphics.getColor() + + -- draw scene to front buffer + love.graphics.setCanvas((buffer())) -- parens are needed: take only front buffer + love.graphics.clear(love.graphics.getBackgroundColor()) + func(...) + + -- save more state + local blendmode = love.graphics.getBlendMode() + + -- process all shaders + love.graphics.setColor(fg_r, fg_g, fg_b, fg_a) + love.graphics.setBlendMode("alpha", "premultiplied") + for _,e in ipairs(chain) do + if not disabled[e.name] then + (e.draw or moonshine.draw_shader)(buffer, e.shader) + end + end + + -- present result + love.graphics.setShader() + love.graphics.setCanvas(canvas) + love.graphics.draw(front,0,0) + + -- restore state + love.graphics.setBlendMode(blendmode) + love.graphics.setShader(shader) + end + + chain.next = function(e) + if type(e) == "function" then + e = e() + end + assert(e.name, "Invalid effect: must provide `name'.") + assert(e.shader or e.draw, "Invalid effect: must provide `shader' or `draw'.") + table.insert(chain, e) + return chain + end + chain.chain = chain.next + + chain.disable = function(name, ...) + if name then + disabled[name] = name + return chain.disable(...) + end + end + + chain.enable = function(name, ...) + if name then + disabled[name] = nil + return chain.enable(...) + end + end + + setmetatable(chain, { + __call = function(_, ...) return chain.draw(...) end, + __index = function(_,k) + for _, e in ipairs(chain) do + if e.name == k then return e end + end + error(("Effect `%s' not in chain"):format(k), 2) + end, + __newindex = function(_, k, v) + if k == "parameters" or k == "params" or k == "settings" then + for e,par in pairs(v) do + for k,v in pairs(par) do + chain[e][k] = v + end + end + else + rawset(chain, k, v) + end + end + }) + + return chain.next(effect) +end + +moonshine.Effect = function(e) + -- set defaults + for k,v in pairs(e.defaults or {}) do + assert(e.setters[k], ("No setter for parameter `%s'"):format(k))(v, k) + e.setters[k](v,k) + end + + -- expose setters + return setmetatable(e, { + __newindex = function(self,k,v) + assert(self.setters[k], ("Unknown property: `%s.%s'"):format(e.name, k)) + self.setters[k](v, k) + end}) +end + +-- autoloading effects +moonshine.effects = setmetatable({}, {__index = function(self, key) + local ok, effect = pcall(require, BASE .. "." .. key) + if not ok then + error("No such effect: "..key, 2) + end + + -- expose moonshine to effect + local con = function(...) return effect(moonshine, ...) end + + -- cache effect constructor + self[key] = con + return con +end}) + +return setmetatable(moonshine, {__call = function(_, ...) return moonshine.chain(...) end}) diff --git a/shaders/pixelate.lua b/shaders/pixelate.lua new file mode 100644 index 0000000..42fd76e --- /dev/null +++ b/shaders/pixelate.lua @@ -0,0 +1,55 @@ +--[[ +Public domain: + +Copyright (C) 2017 by Matthias Richter + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +]]-- + +return function(moonshine) + local shader = love.graphics.newShader[[ + extern vec2 size; + extern number feedback; + vec4 effect(vec4 color, Image tex, vec2 tc, vec2 _) + { + vec4 c = Texel(tex, tc); + + // average pixel color over 5 samples + vec2 scale = love_ScreenSize.xy / size; + tc = floor(tc * scale + vec2(.5)); + vec4 meanc = Texel(tex, tc/scale); + meanc += Texel(tex, (tc+vec2( 1.0, .0))/scale); + meanc += Texel(tex, (tc+vec2(-1.0, .0))/scale); + meanc += Texel(tex, (tc+vec2( .0, 1.0))/scale); + meanc += Texel(tex, (tc+vec2( .0,-1.0))/scale); + + return color * mix(.2*meanc, c, feedback); + } + ]] + + local setters = {} + setters.size = function(v) + if type(v) == "number" then v = {v,v} end + assert(type(v) == "table" and #v == 2, "Invalid value for `size'") + shader:send("size", v) + end + setters.feedback = function(v) + shader:send("feedback", math.min(1, math.max(0, tonumber(v) or 0))) + end + + return moonshine.Effect{ + name = "pixelate", + shader = shader, + setters = setters, + defaults = {size = {5,5}, feedback = 0} + } +end diff --git a/shaders/posterize.lua b/shaders/posterize.lua new file mode 100644 index 0000000..bc98805 --- /dev/null +++ b/shaders/posterize.lua @@ -0,0 +1,59 @@ +--[[ +Public domain: + +Copyright (C) 2017 by Matthias Richter + +shader based on code by sam hocevar, see +https://gamedev.stackexchange.com/questions/59797/glsl-shader-change-hue-saturation-brightness + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +]]-- + +return function(moonshine) + local shader = love.graphics.newShader[[ + extern number num_bands; + vec3 rgb2hsv(vec3 c) + { + vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); + vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g)); + vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r)); + + float d = q.x - min(q.w, q.y); + float e = 1.0e-10; + return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x); + } + + vec3 hsv2rgb(vec3 c) + { + vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); + vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www); + return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y); + } + + vec4 effect(vec4 color, Image texture, vec2 tc, vec2 _) + { + color = Texel(texture, tc); + vec3 hsv = floor((rgb2hsv(color.rgb) * num_bands) + vec3(0.5)) / num_bands; + return vec4(hsv2rgb(hsv), color.a); + }]] + + return moonshine.Effect{ + name = "posterize", + shader = shader, + setters = { + num_bands = function(v) + shader:send("num_bands", math.max(1, tonumber(v) or 1)) + end + }, + defaults = {num_bands = 3} + } +end diff --git a/shaders/scanlines.lua b/shaders/scanlines.lua new file mode 100644 index 0000000..590abe3 --- /dev/null +++ b/shaders/scanlines.lua @@ -0,0 +1,73 @@ +--[[ +Public domain: + +Copyright (C) 2017 by Matthias Richter + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +]]-- + +return function(moonshine) + local shader = love.graphics.newShader[[ + extern number width; + extern number phase; + extern number thickness; + extern number opacity; + extern vec3 color; + vec4 effect(vec4 c, Image tex, vec2 tc, vec2 _) { + number v = .5*(sin(tc.y * 3.14159 / width * love_ScreenSize.y + phase) + 1.); + c = Texel(tex,tc); + //c.rgb = mix(color, c.rgb, mix(1, pow(v, thickness), opacity)); + c.rgb -= (color - c.rgb) * (pow(v,thickness) - 1.0) * opacity; + return c; + }]] + + + local defaults = { + width = 2, + phase = 0, + thickness = 1, + opacity = 1, + color = {0,0,0}, + } + + local setters = {} + setters.width = function(v) + shader:send("width", tonumber(v) or defaults.width) + end + setters.frequency = function(v) + shader:send("width", love.graphics.getHeight()/(tonumber(v) or love.graphics.getHeight())) + end + setters.phase = function(v) + shader:send("phase", tonumber(v) or defaults.phase) + end + setters.thickness = function(v) + shader:send("thickness", math.max(0, tonumber(v) or defaults.thickness)) + end + setters.opacity = function(v) + shader:send("opacity", math.min(1, math.max(0, tonumber(v) or defaults.opacity))) + end + setters.color = function(c) + assert(type(c) == "table" and #c == 3, "Invalid value for `color'") + shader:send("color", { + (tonumber(c[1]) or defaults.color[0]) / 255, + (tonumber(c[2]) or defaults.color[1]) / 255, + (tonumber(c[3]) or defaults.color[2]) / 255 + }) + end + + return moonshine.Effect{ + name = "scanlines", + shader = shader, + setters = setters, + defaults = defaults, + } +end diff --git a/shaders/sketch.lua b/shaders/sketch.lua new file mode 100644 index 0000000..befe213 --- /dev/null +++ b/shaders/sketch.lua @@ -0,0 +1,64 @@ +--[[ +The MIT License (MIT) + +Copyright (c) 2015 Martin Felis +Copyright (c) 2017 Matthias Richter + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +]]-- + +return function(moonshine) + local noisetex = love.image.newImageData(256,256) + noisetex:mapPixel(function() + return love.math.random() * 255,love.math.random() * 255, 0, 0 + end) + noisetex = love.graphics.newImage(noisetex) + noisetex:setWrap ("repeat", "repeat") + noisetex:setFilter("nearest", "nearest") + + local shader = love.graphics.newShader[[ + extern Image noisetex; + extern number amp; + extern vec2 center; + + vec4 effect(vec4 color, Image texture, vec2 tc, vec2 _) { + vec2 displacement = Texel(noisetex, tc + center).rg; + tc += normalize(displacement * 2.0 - vec2(1.0)) * amp; + + return Texel(texture, tc); + }]] + + shader:send("noisetex", noisetex) + + local setters = {} + setters.amp = function(v) + shader:send("amp", math.max(0, tonumber(v) or 0)) + end + setters.center = function(v) + assert(type(v) == "table" and #v == 2, "Invalid value for `center'") + shader:send("center", v) + end + + return moonshine.Effect{ + name = "sketch", + shader = shader, + setters = setters, + defaults = {amp = .0007, center = {0,0}} + } +end diff --git a/shaders/vignette.lua b/shaders/vignette.lua new file mode 100644 index 0000000..3021801 --- /dev/null +++ b/shaders/vignette.lua @@ -0,0 +1,59 @@ +--[[ +Public domain: + +Copyright (C) 2017 by Matthias Richter + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +]]-- + +return function(moonshine) + local shader = love.graphics.newShader[[ + extern number radius; + extern number softness; + extern number opacity; + extern vec4 color; + + vec4 effect(vec4 c, Image tex, vec2 tc, vec2 _) + { + number aspect = love_ScreenSize.x / love_ScreenSize.y; + aspect = max(aspect, 1.0 / aspect); // use different aspect when in portrait mode + number v = 1.0 - smoothstep(radius, radius-softness, + length((tc - vec2(0.5)) * aspect)); + return mix(Texel(tex, tc), color, v*opacity); + }]] + + local setters = {} + for _,k in ipairs{"radius", "softness", "opacity"} do + setters[k] = function(v) shader:send(k, math.max(0, tonumber(v) or 0)) end + end + setters.color = function(c) + assert(type(c) == "table" and #c == 3, "Invalid value for `color'") + shader:send("color", { + (tonumber(c[1]) or 0) / 255, + (tonumber(c[2]) or 0) / 255, + (tonumber(c[3]) or 0) / 255, + 1 + }) + end + + return moonshine.Effect{ + name = "vignette", + shader = shader, + setters = setters, + defaults = { + radius = .8, + softness = .5, + opacity = .5, + color = {0,0,0} + } + } +end diff --git a/vendor/classic.lua b/vendor/classic.lua new file mode 100644 index 0000000..311fda0 --- /dev/null +++ b/vendor/classic.lua @@ -0,0 +1,68 @@ +-- +-- classic +-- +-- Copyright (c) 2014, rxi +-- +-- This module is free software; you can redistribute it and/or modify it under +-- the terms of the MIT license. See LICENSE for details. +-- + + +local Object = {} +Object.__index = Object + + +function Object:new() +end + + +function Object:extend() + local cls = {} + for k, v in pairs(self) do + if k:find("__") == 1 then + cls[k] = v + end + end + cls.__index = cls + cls.super = self + setmetatable(cls, self) + return cls +end + + +function Object:implement(...) + for _, cls in pairs({...}) do + for k, v in pairs(cls) do + if self[k] == nil and type(v) == "function" then + self[k] = v + end + end + end +end + + +function Object:is(T) + local mt = getmetatable(self) + while mt do + if mt == T then + return true + end + mt = getmetatable(mt) + end + return false +end + + +function Object:__tostring() + return "Object" +end + + +function Object:__call(...) + local obj = setmetatable({}, self) + obj:new(...) + return obj +end + + +return Object \ No newline at end of file diff --git a/vendor/lily.lua b/vendor/lily.lua new file mode 100644 index 0000000..1ceef84 --- /dev/null +++ b/vendor/lily.lua @@ -0,0 +1,765 @@ +-- LOVE Asset Async Loader +-- Copyright (c) 2021 Miku AuahDark +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely, subject to the following restrictions: +-- +-- 1. The origin of this software must not be misrepresented; you must not +-- claim that you wrote the original software. If you use this software +-- in a product, an acknowledgment in the product documentation would be +-- appreciated but is not required. +-- 2. Altered source versions must be plainly marked as such, and must not be +-- misrepresented as being the original software. +-- 3. This notice may not be removed or altered from any source distribution. + +-- NOTICE: For custom `love.run` users. +-- 1. You have to explicitly pass event with name "lily_resp" +-- to `love.handlers.lily_resp` along with all of it's arguments. +-- 2. When you're handling "quit" event and you integrate Lily into +-- your `love.run` loop, call `lily.quit` before `return`. + +-- Need love module +local love = require("love") +assert(love._version >= "11.0", "Lily v3.x require at least LOVE 11.0") +-- Need love.event and love.thread +assert(love.event, "Lily requires love.event. Enable it in conf.lua or require it manually!") +assert(love.thread, "Lily requires love.thread. Enable it in conf.lua or require it manually!") + +local modulePath = select(1, ...):match("(.-)[^%.]+$") +local lily = { + _VERSION = "3.0.12", + -- Loaded modules + modules = {}, + -- List of threads + threads = {}, + -- Function handler + handlers = {}, + -- Request list + request = {} +} + +-- List of excluded modules to be loaded (doesn't make sense to be async) +-- PS: "event" module will be always loaded regardless. +local excludedModules = { + "event", + "joystick", + "keyboard", + "math", + "mouse", + "physics", + "system", + "timer", + "touch", + "window" +} +-- List all loaded LOVE modules using hidden "love._modules" table +for name in pairs(love._modules) do + local f = false + for i = 1, #excludedModules do + if excludedModules[i] == name then + -- Excluded + f = true + break + end + end + + -- If not excluded, add it. + if not(f) then + lily.modules[#lily.modules + 1] = name + end +end + +-- We have some ways to get processor count +local amountOfCPU = 1 +if love.system then + -- love.system is loaded. We can use that. + amountOfCPU = love.system.getProcessorCount() +elseif love._os == "Windows" then + -- Windows. Use NUMBER_OF_PROCESSORS environment variable + amountOfCPU = tonumber(os.getenv("NUMBER_OF_PROCESSORS")) + + -- We still have some workaround if that fails + if not(amountOfCPU) and os.execute("wmic exit") == 0 then + -- Use WMIC + local a = io.popen("wmic cpu get NumberOfLogicalProcessors") + a:read("*l") + amountOfCPU = a:read("*n") + a:close() + end + + -- If it's fallback to 1, it's either very weird system configuration! + -- (except if the CPU only has 1 processor) + amountOfCPU = amountOfCPU or 1 +elseif os.execute() == 1 then + -- Ok we have shell support + if os.execute("nproc") == 0 then + -- Use nproc + local a = io.popen("nproc", "r") + amountOfCPU = a:read("*n") + a:close() + end + -- Fallback to single core (discouraged, it will perform same as love-loader) +end +-- Limit CPU to 4. Imagine how many threads will be created when +-- someone runs this in threadripper. +amountOfCPU = math.min(amountOfCPU, 4) + +-- Dummy channel used to signal main thread that there's error +local errorChannel = love.thread.newChannel() +-- Main channel used to push task +lily.taskChannel = love.thread.newChannel() +-- Main channel used to pull task +lily.dataPullChannel = love.thread.newChannel() +-- Main channel to determine how to push event +lily.updateModeChannel = love.thread.newChannel() +lily.updateModeChannel:push("automatic") -- Use LOVE event handling by default + +-- Variable used to indicate that embedded code should be used +-- instead of loading file (lily_single) +local lilyThreadScript = nil + +-- Function to initialize threads. Must be declared as local +-- then called later +local function initThreads() + for i = 1, amountOfCPU do + -- Create thread + local a = love.thread.newThread( + lilyThreadScript or + (modulePath:gsub("%.", "/").."vendor/lily_thread.lua") + ) + -- Arguments are: + -- Loaded modules + -- errorChannel + -- taskChannel + -- dataPullChannel + -- updateModeChannel + a:start(lily.modules, errorChannel, lily.taskChannel, lily.dataPullChannel, lily.updateModeChannel) + lily.threads[i] = a + end +end + +--luacheck: push no unused args +---------------- +-- LilyObject -- +---------------- +local lilyObjectMethod = {} +local lilyObjectMeta = {__index = lilyObjectMethod} + +-- Complete function +function lilyObjectMethod.complete(userdata, ...) +end + +-- On error function +function lilyObjectMethod.error(userdata, errorMessage, source) + error(errorMessage.."\n"..source) +end + +function lilyObjectMethod:onComplete(func) + self.complete = assert( + type(func) == "function" and func, + "bad argument #1 to 'lilyObject:onComplete' (function expected)" + ) + return self +end + +function lilyObjectMethod:onError(func) + self.error = assert( + type(func) == "function" and func, + "bad argument #1 to 'lilyObject:onError' (function expected)" + ) + return self +end + +function lilyObjectMethod:setUserData(userdata) + self.userdata = userdata + return self +end + +function lilyObjectMethod:isComplete() + return not(not(self.values)) +end + +function lilyObjectMethod:getValues() + assert(self.values, "Incomplete request") + return unpack(self.values) +end + +function lilyObjectMeta:__tostring() + return "LilyObject: "..self.requestType +end + +--------------------- +-- MultiLilyObject -- +--------------------- +local multiObjectMethod = {} +local multiObjectMeta = {__index = multiObjectMethod} +-- On loaded function (noop) +multiObjectMethod.loaded = lilyObjectMethod.complete +-- On error function +function multiObjectMethod.error(userdata, lilyIndex, errorMessage, source) + error(errorMessage.."\n"..source) +end +-- On complete function (noop) +multiObjectMethod.complete = lilyObjectMethod.complete +-- Internal function for child lilies error handler +local function multiObjectChildErrorHandler(userdata, errorMessage, source) + -- Userdata is {index, parentObject} + local multi = userdata[2] + multi.error(multi.userdata, userdata[1], errorMessage, source) +end + +-- Internal function used for child lilies onComplete callback +local function multiObjectOnLoaded(info, ...) + -- Info is {index, parentObject} + local multiLily = info[2] + + multiLily.completedRequest = multiLily.completedRequest + 1 + multiLily.loaded(multiLily.userdata, info[1], select(1, ...)) + + -- If it's complete, then call onComplete callback of MultiLilyObject + if multiLily:isComplete() then + -- Process + local output = {} + for i = 1, #multiLily.lilies do + output[i] = multiLily.lilies[i].values + end + + multiLily.complete(multiLily.userdata, output) + end +end + +function multiObjectMethod:onLoaded(func) + self.loaded = assert( + type(func) == "function" and func, + "bad argument #1 to 'lilyObject:onLoaded' (function expected)" + ) + return self +end + +function multiObjectMethod:onComplete(func) + self.complete = assert( + type(func) == "function" and func, + "bad argument #1 to 'lilyObject:onComplete' (function expected)" + ) + return self +end + +function multiObjectMethod:onError(func) + self.error = assert( + type(func) == "function" and func, + "bad argument #1 to 'lilyObject:onError' (function expected)" + ) + return self +end + +function multiObjectMethod:setUserData(userdata) + self.userdata = userdata + return self +end + +function multiObjectMethod:isComplete() + return self.completedRequest >= #self.lilies +end + +function multiObjectMethod:getValues(index) + assert(self:isComplete(), "Incomplete request") + + if index == nil then + local output = {} + for i = 1, #self.lilies do + output[i] = self.lilies[i].values + end + + return output + end + + return assert(self.lilies[index], "Invalid index"):getValues() +end + +function multiObjectMethod:getCount() + return #self.lilies +end + +function multiObjectMethod:getLoadedCount() + return self.completedRequest +end + +multiObjectMeta.__len = multiObjectMethod.getCount + +-- luacheck: pop + +-- Lily global event handling function +local function lilyEventHandler(reqID, v1, v2) + -- Check if specified request exist + if lily.request[reqID] then + local lilyObject = lily.request[reqID] + lily.request[reqID] = nil + + -- Check for error + if v1 == errorChannel then + -- Second argument is the error message + lilyObject.error(lilyObject.userdata, v2, lilyObject.trace) + else + -- "v2" is returned values + -- Call main thread handler for specified request type + local values = {pcall(lily.handlers[lilyObject.requestType], lilyObject, unpack(v2))} + -- If values[1] is false then there's error + if not(values[1]) then + lilyObject.error(lilyObject.userdata, values[2]) + else + -- No error. Remove first value (pcall status) + table.remove(values, 1) + -- Set values table + lilyObject.values = values + lilyObject.complete(lilyObject.userdata, unpack(values)) + end + end + end +end +-- Add Lily event handler to love.handlers (lily_resp) +love.handlers.lily_resp = lilyEventHandler + +--- Get amount of thread for processing +-- In most cases, this is amount of logical CPU available. +-- @treturn number Amount of threads used by Lily. +function lily.getThreadCount() + return amountOfCPU +end + +--- Uninitializes Lily and used threads. +-- Call this just before your game quit (inside `love.quit()`). +-- Not calling this function in iOS and Android can cause +-- strange crash when re-starting your game! +function lily.quit() + -- Clear up the task channel + while lily.taskChannel:getCount() > 0 do + lily.taskChannel:pop() + end + + -- Push quit request in task channel + -- Anything that is not a table is considered as "exit" + for i = 1, amountOfCPU do + lily.taskChannel:push(i) + end + + -- Clean up threads + for i = 1, amountOfCPU do + local t = lily.threads[i] + if t then + -- Wait + t:wait() + -- Clear + lily.threads[i] = nil + end + end + + -- Reset package table + package.loaded.lily = nil +end + +do +local function atomicSetUpdateMode(_, mode) + lily.updateModeChannel:pop() + lily.updateModeChannel:push(mode) +end +--- Set update mode. +-- tell Lily to pull data by using LOVE event handler or by +-- using `lily.update` function. +-- @tparam string mode Either `automatic` or `manual`. +function lily.setUpdateMode(mode) + if mode ~= "automatic" and mode ~= "manual" then + error("bad argument #1 to 'setUpdateMode' (\"automatic\" or \"manual\" expected)", 2) + end + -- Set update mode + lily.updateModeChannel:performAtomic(atomicSetUpdateMode, mode) +end +end -- do + +local function manualProcessSingleData() + local count = lily.dataPullChannel:getCount() + local processed = false + + if count > 0 then + -- Pop data + local data = lily.dataPullChannel:pop() + -- Pass to event handler + lilyEventHandler(data[1], data[2], data[3]) + processed = true + end + + return count, processed +end + +--- Pull processed data from other threads. +-- Signals other loader object (calling their callback function) when necessary. +function lily.update(timeout) + timeout = timeout or -1 + local left = -1 + local count = 0 + + if love.timer and timeout >= 0 then + local t = love.timer.getTime() + timeout + + while love.timer.getTime() < t and (left > 0 or left == -1) do + local processed + left, processed = manualProcessSingleData() + count = count + (processed and 1 or 0) + end + else + -- No love.timer (can't use timeout object) or timeout is negative. + while (left > 0 or left == -1) do + local processed + left, processed = manualProcessSingleData() + count = count + (processed and 1 or 0) + end + end + + return count, math.max(left, 0) +end + +---------------------------------------- +-- Lily async asset loading functions -- +---------------------------------------- +local function dummyhandler(...) + return select(2, ...) +end + +local function wraphandler(fname) + return function(...) + return fname(select(2, ...)) + end +end + +-- Internal function to create request ID +local function createReqID() + local t = {} + for _ = 1, 64 do + t[#t + 1] = string.char(math.random(0, 255)) + end + + return table.concat(t) +end + +-- Internal function which return function to create LilyObject +-- with specified request type +local function newLilyFunction(requestType, handlerFunc) + local tracebackname = "Function is lily."..requestType + + -- This function is the constructor + lily[requestType] = function(...) + -- Initialize + local this = setmetatable({}, lilyObjectMeta) + local reqID = createReqID() + local args = {...} + -- Values + this.requestType = requestType + this.done = false + this.values = nil + this.trace = debug.traceback(tracebackname) + + -- Push task + -- See structure in lily_thread.lua + local treq = {reqID, requestType, #args} + -- Push arguments + for i = 1, #args do + treq[i + 3] = args[i] + end + -- Add to task channel + lily.taskChannel:push(treq) + -- Insert to request table (to prevent GC collecting it) + lily.request[reqID] = this + -- Return + return this + end + -- Handler function + lily.handlers[requestType] = handlerFunc and wraphandler(handlerFunc) or dummyhandler +end + +-- love.audio +if love.audio then + newLilyFunction("newSource") +end + +-- love.data (always exists) +if love.data then + local function dataGetString(value) + return value:getString() + end + newLilyFunction("compress", dataGetString) + newLilyFunction("decompress", dataGetString) +end + +-- love.filesystem (always exists) +if love.filesystem then + newLilyFunction("append") + newLilyFunction("newFileData") + newLilyFunction("read") + newLilyFunction("readFile") + newLilyFunction("write") + newLilyFunction("writeFile") +end + +-- Most love.graphics functions are not meant for multithread, but we can circumvent that. +if love.graphics then + -- Internal function + local function defMultiToSingleError(udata, _, msg) + udata[1].error(udata[1].userdata, msg) + end + -- Internal function to generate complete callback + local function defImageMultiGen(f) + return function(udata, values) + local this = udata[1] + local v = {} + for i = 1, #values do + v[i] = values[i][1] + end + this.values = {f(v, udata[2])} + this.complete(this.userdata, unpack(this.values)) + end + end + + -- Internal function to generate layering-based function + local function genLayerImage(name, handlerFunc) + local defCompleteFunction = defImageMultiGen(handlerFunc) + + lily.handlers[name] = wraphandler(handlerFunc) + lily[name] = function(layers, setting) + local multiCount = {} + for _, v in ipairs(layers) do + if type(v) == "table" then + -- List of mipmaps + error("Nested table (mipmaps) is not supported at the moment") + else + multiCount[#multiCount + 1] = {lily.newImageData, v, setting} + end + end + -- Check count + if #multiCount == 0 then + error("Layers is empty", 2) + end + + -- Initialize + local this = setmetatable({}, lilyObjectMeta) + -- Values + this.requestType = name + this.done = false + this.values = nil + + this.multi = lily.loadMulti(multiCount) + :setUserData({this, setting}) + :onComplete(defCompleteFunction) + :onError(defMultiToSingleError) + -- Return + return this + end + end + + -- Basic function which is supported on all systems + newLilyFunction("newFont", love.graphics.newFont) + newLilyFunction("newImage", love.graphics.newImage) + newLilyFunction("newVideo", love.graphics.newVideo) + + -- Get texture type + local texType = love.graphics.getTextureTypes() + -- Not all system support cube image. Make it unavailable in that case. + if texType.cube then + -- Another internal function + local defNewCubeImageMulti = defImageMultiGen(love.graphics.newCubeImage) + lily.newCubeImage = function(layers, setting) + local multiCount = {} + -- If it's table, that means it contains list of files + if type(layers) == "table" then + assert(#layers == 6, "Invalid list of files (must be exactly 6)") + for _, v in ipairs(layers) do + if type(v) == "table" then + -- List of mipmaps + error("Nested table (mipmaps) is not supported at the moment") + else + multiCount[#multiCount + 1] = {lily.newImage, v, setting} + end + end + -- Are you specify tons of "Image" objects? + if #multiCount == 0 then + error("Nothing to parallelize", 2) + end + end + + -- Initialize + local this = setmetatable({}, lilyObjectMeta) + local reqID = createReqID() + -- Values + this.requestType = "newCubeImage" + this.done = false + this.values = nil + + -- If multi count is 0, that means it's just single file + if #multiCount == 0 then + -- Insert to request table + lily.request[reqID] = this + -- Create and push new task + local treq = {reqID, "newImage", 2, layers, setting} + lily.taskChannel:push(treq) + else + this.multi = lily.loadMulti(multiCount) + :setUserData({this, setting}) + :onComplete(defNewCubeImageMulti) + :onError(defMultiToSingleError) + end + -- Return + return this + end + lily.handlers.newCubeImage = wraphandler(love.graphics.newCubeImage) + end + -- Not all system support array image + if texType.array then + genLayerImage("newArrayImage", love.graphics.newArrayImage) + end + -- Not all system support volume image + if texType.volume then + genLayerImage("newVolumeImage", love.graphics.newVolumeImage) + end +end + +if love.image then + newLilyFunction("encodeImageData") + newLilyFunction("newImageData") + newLilyFunction("newCompressedData") + newLilyFunction("pasteImageData") +end + +if love.sound then + newLilyFunction("newSoundData") +end + +if love.video then + newLilyFunction("newVideoStream") +end + +function lily.loadMulti(tabdecl) + local this = setmetatable({ + lilies = {}, + completedRequest = 0 + }, multiObjectMeta) + + for i = 1, #tabdecl do + local tab = tabdecl[i] + + -- tab[1] is lily name, the rest is arguments + local func + + if type(tab[1]) == "string" then + if lily[tab[1]] and lily.handlers[tab[1]] then + func = lily[tab[1]] + else + error("Invalid lily function ("..tab[1]..") at index #"..i) + end + elseif type(tab[1]) == "function" then + -- Must be `lily[function]` + func = tab[1] + else + error("Invalid lily function at index #"..i) + end + + local lilyobj = func(unpack(tab, 2)) + :setUserData({i, this}) + :onComplete(multiObjectOnLoaded) + :onError(multiObjectChildErrorHandler) + + this.lilies[#this.lilies + 1] = lilyobj + end + + return this +end + +-- do not remove this comment! +initThreads() +return lily + +--[[ +Changelog: +v3.0.12: 23-11-2021 +> Fixed lily.update count value always 1 if no timeout is specified and there are no pending queues. + +v3.0.11: 01-10-2021 +> Added timeout parameter to lily.update. Requires love.timer. + +v3.0.10: 23-07-2021 +> Fixed lily.newArrayImage and lily.newVolumeImage + +v3.0.9: 14-06-2021 +> Any lily request now saves the traceback of the caller and will be printed on error + +v3.0.8: 11-03-2021 +> Fixed `lily.setUpdateMode` +> Thread: call `collectgarbage()` twice before serving + +v3.0.7: 15-06-2020 +> Fixed `lily.newFont` ignores type hinting and DPI scale + +v3.0.6: 08-04-2019 +> Reorder lily.newImage image loading function +> Fixed lily.newCubeImage is missing + +v3.0.5: 26-12-2018 +> Limit threads to 4 + +v3.0.4: 25-11-2018 +> Fixed `lily.decompress` error when passing Data object in LOVE 11.1 and earlier +> Fixed `lily.compress` error +> Make error message more comprehensive + +v3.0.3: 12-09-2018 +> Explicitly check for LOVE 11.0 +> `lily.compress` and `lily.decompress` now follows v2.x API +> Fixed multi:getValues() errors even multi:isComplete() is true + +v3.0.2: 18-07-2018 +> Fixed calling `lily.newCompressedData` cause Lily thread to crash (fix issue #1) + +v3.0.1: 16-07-2018 +> Fixed `lily.newFont` ignores size parameter + +v3.0.0: 13-06-2018 +> Major refactoring +> Allow to set update mode, whetever to use Lily style (automatic) or love-loader style (manual) +> New functions: newArrayImage and newVolumeImage (only on supported systems) +> Loading speed improvements + +v2.0.8: 09-06-2018 +> Fixed additional arguments were not passed to task handler in separate thread +> Make error message more meaningful (but the stack traceback is still meaningless) + +v2.0.7: 06-06-2018 +> Fixed `lily.quit` deadlock. + +v2.0.6: 05-06-2018 +> Added `lily.newCubeImage` +> Fix error handler function signature incorrect for MultiLilyObject +> Added `MultiLilyObject:getLoadedCount()` + +v2.0.5: 02-05-2018 +> Fixed LOVE 11.0 detection + +v2.0.4: 09-01-2018 +> Fixed if love.data emulation is used in 0.10.0 + +v2.0.2: 04-01-2018 +> Fixed random crash (again) +> Fixed when lily in folder, it doesn't work + +v2.0.1: 03-01-2018 +> Fixed random crash + +v2.0.0: 01-01-2018 +> Support `newVideoStream` +> Support multi loading (`lily.loadMulti`) +> More methods for `LilyObject` + +v1.0.0: 21-12-2017 +> Initial Release +]] diff --git a/vendor/lily_thread.lua b/vendor/lily_thread.lua new file mode 100644 index 0000000..7fc14e9 --- /dev/null +++ b/vendor/lily_thread.lua @@ -0,0 +1,242 @@ +-- LOVE Asset Async Loader (Thread Part) +-- Copyright (c) 2021 Miku AuahDark +-- +-- This software is provided 'as-is', without any express or implied +-- warranty. In no event will the authors be held liable for any damages +-- arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, +-- including commercial applications, and to alter it and redistribute it +-- freely, subject to the following restrictions: +-- +-- 1. The origin of this software must not be misrepresented; you must not +-- claim that you wrote the original software. If you use this software +-- in a product, an acknowledgment in the product documentation would be +-- appreciated but is not required. +-- 2. Altered source versions must be plainly marked as such, and must not be +-- misrepresented as being the original software. +-- 3. This notice may not be removed or altered from any source distribution. + +-- Task channel structure (inside table) +-- request ID (string) or error channel to signal quit +-- Task name (string) +-- Amount of arguments (number) +-- n-amount of arguments (Variant) + +-- Load LOVE module +local love = require("love") +require("love.event") +require("love.data") +-- Non-thread-safe modules +local ntsModules = {"graphics", "window"} +-- But love.graphics must be treated specially +local hasGraphics = false + +-- See lily.lua initThreads() function for more information about +-- arguments passed +local modules, errorChannel, taskChannel, dataPullChannel, updateModeChannel = ... + +-- Load modules +for _, v in pairs(modules) do + local f = false + if v == "graphics" then hasGraphics = true end + + for i = 1, #ntsModules do + if ntsModules[i] == v then + f = true + break + end + end + + if not(f) then + require("love."..v) + end +end + +-- Handlers +local lilyProcessor = {} +local getUpdateMode +do + local function atomicFuncGetUpdateMode() + return updateModeChannel:peek() + end + function getUpdateMode() + return updateModeChannel:performAtomic(atomicFuncGetUpdateMode) + end +end + +-- Function to push data +local function pushData(reqID, v1, v2) + local updateMode = getUpdateMode() + if updateMode == "automatic" then + -- Event push + love.event.push("lily_resp", reqID, v1, v2) + elseif updateMode == "manual" then + -- Channel push + dataPullChannel:push({reqID, v1, v2}) + end +end + +-- Macro function to create handler +local function lilyHandlerFunc(reqtype, minarg, handler) + lilyProcessor[reqtype] = {minarg = minarg, handler = handler} +end + + +if love.audio then + lilyHandlerFunc("newSource", 2, function(t) + return love.audio.newSource(t[1], t[2]) + end) +end + +-- Always exist +if love.data then + local function isCompressedData(t) + return type(t) == "userdata" and t:typeOf("CompressedData") + end + + lilyHandlerFunc("compress", 1, function(t) + return love.data.compress("data", t[1] or "lz4", t[2], t[3]) + end) + lilyHandlerFunc("decompress", 1, function(t) + if type(t[2]) == "userdata" and t[2]:typeOf("Data") and love._version < "11.2" then + -- Prior to LOVE 11.2, love.data.decompress can't decompress + -- Data object (not CompressedData) due to bug in the code + -- when handling this variant. So, convert it to string before + -- passing it. + t[2] = t[2]:getString() + end + return love.data.decompress("data", t[1], t[2]) + end) +end + +-- Always exist +if love.filesystem then + lilyHandlerFunc("append", 2, function(t) + return assert(love.filesystem.append(t[1], t[2], t[3])) + end) + lilyHandlerFunc("newFileData", 1, function(t) + return assert(love.filesystem.newFileData(t[1], t[2], t[3])) + end) + lilyHandlerFunc("read", 1, function(t) + return assert(love.filesystem.read(t[1], t[2])) + end) + lilyHandlerFunc("readFile", 1, function(t) + return t[1].read(t[1], t[2]) + end) + lilyHandlerFunc("write", 2, function(t) + return assert(love.filesystem.write(t[1], t[2], t[3])) + end) + lilyHandlerFunc("writeFile", 2, function(t) + return t[1].write(t[1], t[2], t[3]) + end) +end + +if hasGraphics then + lilyHandlerFunc("newFont", 1, function(t) + return love.font.newRasterizer(t[1], t[2], t[3], t[4]) + end) + lilyHandlerFunc("newImage", 1, function(t) + local s, x = pcall(love.image.newImageData, t[1]) + return (s and x or love.image.newCompressedData(t[1])), select(2, unpack(t)) + end) + lilyHandlerFunc("newVideo", 1, function(t) + return love.video.newVideoStream(t[1]), t[2] + end) + lilyHandlerFunc("newCubeImage", 1, function(t) + -- If it's not table, then it should be processed with + -- love.image.newCubeFaces (undocumented function) + if type(t[1]) ~= "table" then + local id = t[1] + if type(id) ~= "userdata" or id:type() ~= "ImageData" then + id = love.image.newImageData(id) + end + t[1] = {love.image.newCubeFaces(id)} + end + for i = 1, 6 do + local v = t[1][i] + local t = v:type() + if t ~= "userdata" or (t ~= "ImageData" and t ~= "CompressedImageData") then + t[1][i] = love.image.newImageData(v) + end + end + return t[1], t[2] + end) +end + +if love.image then + lilyHandlerFunc("encodeImageData", 1, function(t) + return t[1].encode(t[1], t[2]) + end) + lilyHandlerFunc("newImageData", 1, function(t) + return love.image.newImageData(t[1]) + end) + lilyHandlerFunc("newCompressedData", 1, function(t) + return love.image.newCompressedData(t[1]) + end) + lilyHandlerFunc("pasteImageData", 7, function(t) + return t[1].paste(t[1], t[2], t[3], t[4], t[5], t[6], t[7]) + end) +end + +if love.sound then + lilyHandlerFunc("newSoundData", 1, function(t) + return love.sound.newSoundData(t[1], t[2], t[3], t[4]) + end) +end + +if love.video then + lilyHandlerFunc("newVideoStream", 1, function(t) + return love.video.newVideoStream(t[1]) + end) +end + +local handlerFunc +local handlerArg +local function callHandler() + return handlerFunc(handlerArg) +end + +-- Main loop +while true do + collectgarbage() + collectgarbage() + -- Get request (see the beginning of file for table format) + local request = taskChannel:demand() + -- If it's not table then quit signaled + if type(request) ~= "table" then return end + local tasktype = request[2] + + -- If it's exist in lilyProcessor table that means it's valid event + if lilyProcessor[tasktype] then + local task = lilyProcessor[tasktype] + local argc = request[3] + -- Check minarg count + if argc < task.minarg then + -- Too few arguments + pushData(request[1], errorChannel, string.format( + "'%s': too few arguments (at least %d is required)", + tasktype, + task.minarg + )) + else + local argv = {} + -- Get arguments + for i = 1, argc do + argv[i] = request[3 + i] -- 4th and later are arguments + end + + -- Call + handlerFunc = task.handler + handlerArg = argv + local result = {xpcall(callHandler, debug.traceback)} + if result[1] == false then + -- Error + pushData(request[1], errorChannel, string.format("'%s': %s", tasktype, result[2])) + end + -- Push data (v1 is true, v2 is return values) + table.remove(result, 1) + pushData(request[1], true, result) + end + end +end