From a703d6129f0531745ed84fb6c9e698adfe7070f9 Mon Sep 17 00:00:00 2001 From: bkaradzic Date: Mon, 1 Apr 2013 22:52:06 -0700 Subject: [PATCH] Added -i 'include dir' argument to shaderc. --- examples/common/common.sh | 2 +- premake/shader.mk | 4 ++++ src/bgfx_shader.sh | 17 +++++++++++++++++ src/common.sh | 22 ---------------------- tools/bin/shaderc.exe | Bin 1085952 -> 1086464 bytes tools/shaderc/shaderc.cpp | 13 +++++++++++-- 6 files changed, 33 insertions(+), 25 deletions(-) delete mode 100644 src/common.sh diff --git a/examples/common/common.sh b/examples/common/common.sh index c0566ab03..d9354bd19 100644 --- a/examples/common/common.sh +++ b/examples/common/common.sh @@ -3,5 +3,5 @@ * License: http://www.opensource.org/licenses/BSD-2-Clause */ -#include "../../src/common.sh" +#include #include "shaderlib.sh" diff --git a/premake/shader.mk b/premake/shader.mk index c2152f8ae..55a2b3678 100644 --- a/premake/shader.mk +++ b/premake/shader.mk @@ -49,6 +49,10 @@ endif endif endif +THISDIR := $(dir $(lastword $(MAKEFILE_LIST))) +VS_FLAGS+=-i $(THISDIR)../src/ +FS_FLAGS+=-i $(THISDIR)../src/ + BUILD_OUTPUT_DIR=$(addprefix ./, $(RUNTIME_DIR)/$(SHADER_PATH)) BUILD_INTERMEDIATE_DIR=$(addprefix $(BUILD_DIR)/, $(SHADER_PATH)) diff --git a/src/bgfx_shader.sh b/src/bgfx_shader.sh index 65367d1ce..b06b8a6fd 100644 --- a/src/bgfx_shader.sh +++ b/src/bgfx_shader.sh @@ -133,10 +133,16 @@ bvec2 equal(vec2 _a, vec2 _b) { return _a == _b; } bvec3 equal(vec3 _a, vec3 _b) { return _a == _b; } bvec4 equal(vec4 _a, vec4 _b) { return _a == _b; } +float mix(float _a, float _b, float _t) { return lerp(_a, _b, _t); } vec2 mix(vec2 _a, vec2 _b, vec2 _t) { return lerp(_a, _b, _t); } vec3 mix(vec3 _a, vec3 _b, vec3 _t) { return lerp(_a, _b, _t); } vec4 mix(vec4 _a, vec4 _b, vec4 _t) { return lerp(_a, _b, _t); } +float mod(float _a, float _b) { return _a - _b * floor(_a / _b); } +vec2 mod(vec2 _a, vec2 _b) { return _a - _b * floor(_a / _b); } +vec3 mod(vec3 _a, vec3 _b) { return _a - _b * floor(_a / _b); } +vec4 mod(vec4 _a, vec4 _b) { return _a - _b * floor(_a / _b); } + #elif BGFX_SHADER_LANGUAGE_GLSL # define atan2(_x, _y) atan(_x, _y) # define frac(_x) fract(_x) @@ -156,6 +162,17 @@ vec4 instMul(vec4 _vec, mat4 _mtx) { return mul(_vec, _mtx); } vec4 instMul(mat4 _mtx, vec4 _vec) { return mul(_mtx, _vec); } #endif // BGFX_SHADER_LANGUAGE_HLSL +uniform vec4 u_viewRect; +uniform vec4 u_viewTexel; +uniform mat4 u_view; +uniform mat4 u_viewProj; +uniform mat4 u_model; +uniform mat4 u_modelView; +uniform mat4 u_modelViewProj; +uniform mat4 u_modelViewProjX; +uniform mat4 u_viewProjX; +uniform float u_alphaRef; + #endif // __cplusplus #endif // __BGFX_SHADER_H__ diff --git a/src/common.sh b/src/common.sh deleted file mode 100644 index ea719d645..000000000 --- a/src/common.sh +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright 2011-2013 Branimir Karadzic. All rights reserved. - * License: http://www.opensource.org/licenses/BSD-2-Clause - */ - -#ifndef __SHADER_COMMON_H__ -#define __SHADER_COMMON_H__ - -#include "bgfx_shader.sh" - -uniform vec4 u_viewRect; -uniform vec4 u_viewTexel; -uniform mat4 u_view; -uniform mat4 u_viewProj; -uniform mat4 u_model; -uniform mat4 u_modelView; -uniform mat4 u_modelViewProj; -uniform mat4 u_modelViewProjX; -uniform mat4 u_viewProjX; -uniform float u_alphaRef; - -#endif // __SHADER_COMMON_H__ diff --git a/tools/bin/shaderc.exe b/tools/bin/shaderc.exe index bc7df9122474c9cfde8cd1dadf0f190742c25f43..5aa28914fe39b8b18bf6794395e908cb2753a602 100644 GIT binary patch delta 42020 zcmagG3tWuZ8#q4aQjLm+E~3(?B!nnLE}@c3OvMyYt{JVn!n#y8t;QH@4IV7kF1svt zSz%h&Qi^q7_jQYPdC4Wql69H?bKWWJ_xJmK{(MgFd!FYx&w0){&w0*so^#&G-q<61 zbB`reKF1~xiB(kpD_2nBKx!!zM{O|K%TN+xYDikq)xAx9h(C!iO(DI=4%2U>gZ+q7 zq*5W#QPaPqQ5`=oEKrW1M)*8o@~2J7LsNhJ>t~vdfBo~<(N}~{^)&$xCA&>$_)~J; zRA?jhdF9I$IVD^lr3@>}a7`&7$THaw^EUXTRMeO&40neW8=_poHPWdXLdUSO^h>1* zMfSmkoGBFP^>qrWP)NVz|82XBkstFH*ymB|<(Xf%wmWf6YFN#q2ze%@1fNWnq8pmJ z*11mRn>?Kwk;D06PBDb0dz%)je8>vZ&#G|uL0%|Qp;{wVdUA!-t0s3X-=?k~Avvbz z_1ZV`bF=cznX6JHIL$Yq)P^We!%S6L>jcSS%B<%>Os3WK7So}wrsmE=$vo2n=MkF4dmX4*4yUyG>-ODI32XpNE#2*g8BjE zq-jTe4{|jBME$#Vo_@|UVQygt>sgWHbdYJvBCEuZN%qdBliq3~#<&AOjWEj*~N6($FIJF4OgTobo2j;R3u0nJQa#G2Sb%)G&%b=C%>Dz`tBr4^Pl-% zu0?*&|GlM_ko%^_tz*gZ{AsOw6S6x0Kv1zA3sms@oKO`Z$MctUjJ6@grt4jk=-7(< zPTjnTx|77juxh0?))&!F866FgZ*vM=G*ZCB{LjPN5VFg(wR=CRx@UUby(5jgmmkvO z1fyxs^J$ck(%8RDUq^d1ynmA^3_V?tS#Du^Esb;u^O%X3PUV+IKPJSIzpGC9l3z@}YF3a!Q*^A3{AKzzb`e>U-!-l+Q}>eval{_uhB8ztZHS?VD$Q2s_%u?X zky=UlO9uHeQp>a}(T9AQe<^VRX_WbnC^TuVhEq~Hz8NYX)ImiHF0_J1nC1-eC0$JG z@oxiD$&mK+_FL22AwJ}w$verHtTy#b>P%XivXhz-X4;a}j9&TIbRnq&S#PR6)Q8M9 z1r2TKk@ZGYP!B7}z&Ar>MLoe?T)mE9w~EOnrdn{J)ZvI}z^LwIyy@#vYBJljb5w77i{`%@wVja3rk}_7s3us5 zqJjn&rYRCMDBvm6%`qK_zo~xe_oSz3Z>ldDV7ieSK-!z^#s-lLQ|Q*zh=Z)|_eMop~Yw3KUuLRM9{U>>_e zK&F}Yj%$JwpnTl7x?JIcMXDh`nDRag@{T|n z!=P=NIHb`Dno8t6Xd99Vh}LxJvrw`&Up3yH5EoOk2`xyXY0!kOPl?$H%+1xXaANdo@BbIY)UZMng3>r zGa;?=ou;`{9EpI8AG{CU6Jk}N5XYtX*Z7X2V_p{PxYXVBD5DAa##C=Q4#SiDVbi^A z>K=aZp8@dw+jMKSyJ^Gh#Cl(sTQP>17ufbnjik=6J;$Edw!1|XDap`gGj+*tGdF;d zc+-$kW|30Ug1jiw+H@+< zo&0FJpBLnD_m7&&Tnu$Jh8~V-3a#ag21hB$)K=et{&m{)nSLknHZ@w_id)!` z6qyz+j3&{h3k%E1SkoTE)0SnYh@x0(+(67_B~EO08ZjJ|&Yl)fhYwJD8QLQMk43HQ zNoNxQFZ%w7Nezw2L{m4YB(+UJD|?e*)2x-J>GR{JzN;Fc=BKTiMz))7ton`oU|PA_ zhb%SiTkR*5XZ26SH-F(bqZv7s|8(7UPS%;e-Ovw(d$b{hc$yk-Y(s{a;x~4{@iJ_@ zLQvi@KTe?+x0^2ixRo?B&EK?=EHQa)t|U&TIzKH(Q?c=<--M2D$;2sgeammyL9o?_ zKQAH*P|v1rrgK|8NPpAQt*um+9W`U8(PB?!n_6xQqvs1uY1`(KF(zr-4=C~CpF>=R zY_Ay&DNP~k#^pn%i$8ZqrE&kohfX~tkNLn~yvZ?B`Y+?iY155gVudl;KAqT_Hf>)- zJ~xHzxGps3*Ei(b{5m@~QnJvLzsrYSD!^fFWcp{9AMrIc-0g!hciA0E%1qOD&n3T^ zUhJ+QC-ckq)Ds5&x!IGU?NaR~LwAR%}Da z!2Hika_rFHzB}$sD)YTg)aN8GzulR7lw{;b|IwD<5-aI9W(@sRgP<)FmV7Z90F+5B-eS_!l+kvYJj@E;l*xawAfjKjU&3A@+1E8wCg z`^cAem~5*1#M?CeQFHoelIiOV&ouSB%xHdm#<)^m`E6s3`B04igN}0kDyVdH=4J+1V zV@9iy-mOrQ`3_EMnNxyftA?+X#KYr(H;zM8XN^ADMY=BD`)gwL$(^OM-VCmcBHnOE zN$Qey@KQ;Nhy(?-NMlk8f7T+2bb=Z}?8$gyf$!|eUUCwKI*@R($h_8pv?Np$1}7Xz z961W!wTYTMfN*?-jq4=pSLvfX(HR(Iuo(LDSZRt36h1~zX;XV72;~{yN^9}03}r{} zPRrw@`S49`(vZ4z0&{KhIr#$G)FD-Lx(BpyBK}U#8Zm`F3KdVO$Z(MUG7onmDK^y2 z3yNHb8+mWO>_V=QS|@_#+8@|}+Kqf^?pdEqXh0`7H17-|4z_fZi}_G{0+j55gpS0A z_T(_TBRNY7A*K@vpuL!RMkf+X>GV40ZJkMfLbA0IS3?kE=49mqcP8wrH z;-Z&gC`C^-Ns72>?$MiUuI2W}Ls3rnQSJukG?gajFpZPetcWKK-R4ozG)Hulp5RU( z%|1;LFHNB4pm@@~7TFF{hmvfv7oHC#hseK>Ka8BG-CmjX$>bO6;&2kV7NVQK@RrOz zjY<;q9YJEq5?D2YbfIy#;qnNwl(stx<42MRN-x9Ckt8Op8Pb<2+;D_aj8OztI&HMH zs7!8JwLaP*#sBDI+Gte9V(2uAq}e|$k%<$ed+^IB;#vC`=4+Jk09+b{`<@l>eiXTa zT6B3dYTl3V?`YJ#m?JQ73~Js@C>n#B_cP2%CE;}Zb@Rbg5<$ogU^+62>;m+FVrbi& zut!Il(cV|#mJYq+qc=pQH7dA7R<5%$OlV+)WOo(usDaC+cYliZ$r>2NHPRgj8%I3o zv>T8(4tw)YxH66$t@B+mRp@*2j?v_n3YpnFFi)FAZV<=TSL9|rSoYdtfx6SkXmimNGL(@E&?p1v%T4pj4C2ga zuj}TYXA-lDEH;nPlNV8B0}MGsc2JUMc05bgGExRx&XXj%;CryUKwi>mIcCcRGKP@- zFy<1OM^>2cUm{Zl*^sNGHT4~2He4k-LbjP-TqEdcEix-_kSkQRvzOcoL+%n(YK^qr z{H&aOS%>@tGoO+s#M`{?DcQowWpnQrB-RDz;x|faYfrO6VM9GyL6(}oa;9?#$pc4M z>h3bh*~;wWl<4nl4t1rgYjt?zC8J*2lJwfT`91>_(t{cZN61V8xl{vDB4oUP9D!Qi zG$3nD4ML5GM1fdX0|`e+KLMFp1Ib26xPYWuA+Kx|xM4q(?SazGT${gkBSVx*{EbIS$mXC9)ET7Xcca3#JbpjY9! znl`Tg+y5fvWqJd&XiOUrJw!I9ZK>7+`uR}Lz)++`4%R9HVy*T1%0Q(I)CR=q&Ismp zJfNsCb@q7OP?V67SE2%P9x1PT`st1eiktAXF>PG$z()ezWdYv?K0Y*nP5#i zgft&&AeZ5#57m$b(94%Lp(7f=L|+;cRIh=|UHBe`Ouux0tNZcRU6wM}lCCt^8B~VT zmOre%$6rw4OM8-Up|u}%ZKeN&tiFLFS+$EY*@}?e7k8b)7lj(;4paT;=j1j#@}n(q zX>e~s8xepGO=x3vMt!-y9qol{E%fX_ThYl)U|I*7g$Ckz2kJ=3 z?G+tqIQb4RhS8F`JvC46NV94YBUJXFTKdulqI*&ci8Mz?(B+gIf*VovF1cbZ=|!K` zaf&w#Q)v?nb6pbR4bP;{;BPHWp$-;^PoT-Ft?w-sLkw;URk3mCpRIwS1e!$7fETVl zjnrd$C@g-- zwUMVMrfMhH5UGsUCZy>!(o?82nhtJx0D) z)wLWB=;(NI4w{dnFUWiFPNVC{OgNZEgK_ctJB`jlCu+iHbQ|^k9X!UPCa;81<582k z!lChW3l>b9K)bg5dU_AVa!hM5ZNPK{(-}-RFg?Q5er69vH%u{@2E&C3^c7X#hf@== zvTT?ziMDZjA1dM`j%l8nvM5LN02TWFo>Fh~u1VB|l4Wpg3iYS8L*UsIj0m5H22<(p zo*hF(mjoFdd$VKWzdkC&kPs4!PQ~_nV3~^Z3YBac^(Jd!_%xbM1KPsHX*3yqv3BWb zeX<}kopwi>!gTC`AZVFEw^Duv{>(r-`3h{O(`5ImE?7mS2s6CQV1^m)28?ug#!2&F z&U7@#Sado~A=g1YgH9w9;j0aEA7bv*>Ic-XvTY|$Z+Pit3+#ZTglLr>;gs`75;g$=vO`GPT z!C8-um_>UKoZho&JEDbGv*>_^KekaQ5{xlYS)`<;V8uwtq6E%-Z&_Nc4FP|)>3FRaU?p%NYN$ZYzK>^1kChtsl7&Yu=bN^+7l5OxDL zeL;ik^!OCE7NjreBio}_h(aF$Q}oos{7()&Z$n32g5!EB(PLM^!9WAy)u&1XaOEq7FhJPrqD|

vy*%6&$d(B$iHAY!7-x)B>UQb-V{rTWOZa*Z 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 delta 41788 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 = scratch(_filePath); m_tagptr++; + if (NULL != _includeDir) + { + m_tagptr->tag = FPPTAG_INCLUDE_DIR; + m_tagptr->data = scratch(_includeDir); + m_tagptr++; + } + m_default = "#define lowp\n#define mediump\n#define highp\n"; } @@ -1243,6 +1250,7 @@ void help(const char* _error = NULL) "\n" "Options:\n" " -f Input file path.\n" + " -i Include path.\n" " -o Output file path.\n" " --bin2c Generate C header file.\n" " --depends Generate makefile style depends file.\n" @@ -1353,8 +1361,9 @@ int main(int _argc, const char* _argv[]) bool depends = cmdLine.hasArg("depends"); bool preprocessOnly = cmdLine.hasArg("preprocess"); + const char* includeDir = cmdLine.findOption('i'); - Preprocessor preprocessor(filePath); + Preprocessor preprocessor(filePath, includeDir); preprocessor.setDefaultDefine("BX_PLATFORM_ANDROID"); preprocessor.setDefaultDefine("BX_PLATFORM_IOS");