later.patch 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. diff -r c6ab5032adf6 examples/Demo/data/light_fs.glsl
  2. --- a/examples/Demo/data/light_fs.glsl Tue Nov 25 14:09:04 2014 +0500
  3. +++ b/examples/Demo/data/light_fs.glsl Tue Nov 25 14:09:14 2014 +0500
  4. @@ -3,10 +3,11 @@
  5. varying lowp vec4 result_color;
  6. varying mediump vec2 result_uv;
  7. varying mediump vec2 result_uv2;
  8. +varying mediump vec2 result_light;
  9. uniform lowp sampler2D base_texture;
  10. uniform lowp sampler2D normal_texture;
  11. -uniform mediump vec2 light;
  12. +//uniform mediump vec2 light;
  13. void main()
  14. {
  15. @@ -14,7 +15,7 @@
  16. lowp vec3 normal = texture2D(normal_texture, result_uv2).xyz * 2.0 - 1.0;
  17. - mediump vec3 dir = normalize(vec3(result_pos.xy, 0.0) - vec3(light, 40.0));
  18. + mediump vec3 dir = normalize(vec3(result_pos.xy, 0.0) - vec3(result_light, 40.0));
  19. dir = vec3(-dir.x, dir.y, -dir.z);
  20. diff -r c6ab5032adf6 examples/Demo/data/light_vs.glsl
  21. --- a/examples/Demo/data/light_vs.glsl Tue Nov 25 14:09:04 2014 +0500
  22. +++ b/examples/Demo/data/light_vs.glsl Tue Nov 25 14:09:14 2014 +0500
  23. @@ -3,6 +3,7 @@
  24. varying mediump vec2 result_uv;
  25. varying mediump vec2 result_uv2;
  26. varying mediump vec2 result_pos;
  27. +varying mediump vec2 result_light;
  28. uniform mediump mat4 mat;
  29. @@ -10,6 +11,7 @@
  30. attribute vec4 color;
  31. attribute vec2 uv;
  32. attribute vec2 uv2;
  33. +attribute vec2 light;
  34. void main()
  35. {
  36. @@ -19,4 +21,5 @@
  37. result_uv2 = uv2;
  38. result_pos = position.xy;
  39. + result_light = light;
  40. }
  41. \ No newline at end of file
  42. diff -r c6ab5032adf6 examples/Demo/src/TestUserShader2.h
  43. --- a/examples/Demo/src/TestUserShader2.h Tue Nov 25 14:09:04 2014 +0500
  44. +++ b/examples/Demo/src/TestUserShader2.h Tue Nov 25 14:09:14 2014 +0500
  45. @@ -23,7 +23,7 @@
  46. LightningRenderer() :_light(0, 0)
  47. {
  48. //vertex declaration with 2 pairs of UV
  49. - _vdecl = getDriver()->getVertexDeclaration(vertexPCT2T2::FORMAT);
  50. + _vdecl = getDriver()->getVertexDeclaration(vertexPCT2T2T2::FORMAT);
  51. //load vertex shader
  52. file::buffer vsdata;
  53. @@ -106,8 +106,27 @@
  54. _driver->setTexture(1, _normal);
  55. }
  56. - vertexPCT2T2 v[4];
  57. + vertexPCT2T2T2 v[4];
  58. fillQuadT2(v, srcRect, normalSrc, destRect, rs->transform, color.rgba());
  59. + Vector2 light = _light;
  60. + AffineTransform t = rs->transform;
  61. + t.invert();
  62. + t.x = 0;
  63. + t.y = 0;
  64. + light = t.transform(_light);
  65. + Vector2 d1 = light;
  66. + Vector2 d2 = light;
  67. + Vector2 d3 = light;
  68. + Vector2 d4 = light;
  69. + v[0].u3 = d1.x;
  70. + v[0].v3 = d1.y;
  71. + v[1].u3 = d1.x;
  72. + v[1].v3 = d1.y;
  73. + v[2].u3 = d1.x;
  74. + v[2].v3 = d1.y;
  75. + v[3].u3 = d1.x;
  76. + v[3].v3 = d1.y;
  77. +
  78. _vertices.insert(_vertices.end(), (unsigned char*)v, (unsigned char*)v + sizeof(v));
  79. _checkDrawBatch();
  80. }
  81. @@ -160,7 +179,9 @@
  82. AnimationFrame frame = resources.getResAnim("normal")->getFrame(0);
  83. spSprite spr = new Sprite2(frame);
  84. spr->setResAnim(resources.getResAnim("tiled"));
  85. - spr->setPosition(content->getSize() / 2 - spr->getSize() / 2);
  86. + spr->setAnchor(Vector2(0.5f, 0.5f));
  87. + spr->setPosition(content->getSize() / 2);
  88. + spr->addTween(Actor::TweenRotation(MATH_PI * 2), 25000, -1);
  89. spr->attachTo(lightning);
  90. @@ -170,7 +191,7 @@
  91. light->setResAnim(resources.getResAnim("light"));
  92. light->setAnchor(0.5f, 0.5f);
  93. drag.init(light.get());
  94. - light->setPosition(getSize() / 2);
  95. + light->setPosition(getSize() / 2 - Vector2(100, 0));
  96. lightning->addChild(light);
  97. }