# HG changeset patch # User John Tsiombikas # Date 1346029402 -10800 # Node ID 938a6a155c9470f651e1a0b5b0acdb36c4e5258b # Parent 2fc0048027395e12cd7200e043ac6f8d690737d5 foo diff -r 2fc004802739 -r 938a6a155c94 prototype/configure --- a/prototype/configure Sun Aug 26 03:39:32 2012 +0300 +++ b/prototype/configure Mon Aug 27 04:03:22 2012 +0300 @@ -34,14 +34,14 @@ verstr=`$CXX --version` if echo "$verstr" | grep LLVM; then - if echo | $CXX -c -x c++ -std=c++11 - >/dev/null 2>&1; then + if echo | $CXX -c -x c++ -o /dev/null -std=c++11 - >/dev/null 2>&1; then cxxflags11='-std=c++11 -stdlib=libc++' ldflags11='-stdlib=libc++' fi else - if echo | $CXX -c -x c++ -std=c++11 - >/dev/null 2>&1; then + if echo | $CXX -c -x c++ -o /dev/null -std=c++11 - >/dev/null 2>&1; then cxxflags11='-std=c++11' - elif echo | $CXX -c -x c++ -std=c++0x - >/dev/null 2>&1; then + elif echo | $CXX -c -x c++ -o /dev/null -std=c++0x - >/dev/null 2>&1; then cxxflags11='-std=c++0x' fi fi diff -r 2fc004802739 -r 938a6a155c94 prototype/sdr/deferred_omni.p.glsl --- a/prototype/sdr/deferred_omni.p.glsl Sun Aug 26 03:39:32 2012 +0300 +++ b/prototype/sdr/deferred_omni.p.glsl Mon Aug 27 04:03:22 2012 +0300 @@ -1,20 +1,30 @@ uniform sampler2D mrt0, mrt1, mrt2, mrt3; -uniform vec2 tex_scale; +uniform vec2 tex_scale, fb_size; + +varying vec3 ltpos; void main() { - vec2 tc = gl_TexCoord[0].st; + vec2 tc = gl_FragCoord.xy * tex_scale / fb_size; - vec4 texel; - if(tc.x < 0.25) { - texel = texture2D(mrt0, tc * vec2(4.0, 1.0) * tex_scale); - } else if(tc.x < 0.5) { - texel = texture2D(mrt1, (tc - vec2(0.25, 0.0)) * vec2(4.0, 1.0) * tex_scale); - } else if(tc.x < 0.75) { - texel = texture2D(mrt2, (tc - vec2(0.5, 0.0)) * vec2(4.0, 1.0) * tex_scale); - } else { - texel = texture2D(mrt3, (tc - vec2(0.75, 0.0)) * vec2(4.0, 1.0) * tex_scale); + vec3 pos = texture2D(mrt0, tc).xyz; + vec3 norm = texture2D(mrt1, tc).xyz; + + vec4 texel3 = texture2D(mrt2, tc); + vec3 dcol = texel3.xyz; + float shin = texel3.w; + + vec3 ldir = ltpos - pos; + float dist = length(ldir); + ldir = normalize(ldir); + + float ndotl = dot(norm, ldir); + vec3 color = dcol * ndotl; + + float atten = 1.0; + if(dist > 0.2) { + atten = 0.0; } - gl_FragColor = texel; + gl_FragColor = vec4(color, 1.0); } diff -r 2fc004802739 -r 938a6a155c94 prototype/sdr/deferred_omni.v.glsl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/prototype/sdr/deferred_omni.v.glsl Mon Aug 27 04:03:22 2012 +0300 @@ -0,0 +1,8 @@ +varying vec3 ltpos; + +void main() +{ + gl_Position = ftransform(); + + ltpos = (gl_ModelViewMatrix * vec4(0.0, 0.0, 0.0, 1.0)).xyz; +} diff -r 2fc004802739 -r 938a6a155c94 prototype/src/main.cc --- a/prototype/src/main.cc Sun Aug 26 03:39:32 2012 +0300 +++ b/prototype/src/main.cc Mon Aug 27 04:03:22 2012 +0300 @@ -235,6 +235,8 @@ glViewport(0, 0, x, y); cfg.width = x; cfg.height = y; + + resize_renderer(x, y); } static bool stereo_shift_pressed; diff -r 2fc004802739 -r 938a6a155c94 prototype/src/renderer.cc --- a/prototype/src/renderer.cc Sun Aug 26 03:39:32 2012 +0300 +++ b/prototype/src/renderer.cc Mon Aug 27 04:03:22 2012 +0300 @@ -73,7 +73,7 @@ set_uniform_int(deferred_debug, uname, i); } - if(!(deferred_omni = load_sdr("deferred.v.glsl", "deferred_omni.p.glsl"))) { + if(!(deferred_omni = load_sdr("deferred_omni.v.glsl", "deferred_omni.p.glsl"))) { return false; } for(int i=0; i