NormalShaderCommand.lua 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. local NormalShaderCommand = class('NormalShaderCommand', framework.SimpleCommand)
  2. function NormalShaderCommand:ctor()
  3. end
  4. function NormalShaderCommand:execute(notification)
  5. local data = notification:getBody()
  6. local node = data.node
  7. if not node then
  8. return
  9. end
  10. local GL_P = global.GLProgramCache:getGLProgram( "ShaderPositionTextureColor_noMVP" )
  11. if GL_P then
  12. if tolua.type(node) == "ccui.Button" then
  13. local normal = node:getRendererNormal()
  14. local clicked = node:getRendererClicked()
  15. local disabled = node:getRendererDisabled()
  16. if normal then
  17. normal:setGLProgram(GL_P)
  18. end
  19. if clicked then
  20. clicked:setGLProgram(GL_P)
  21. end
  22. if disabled then
  23. disabled:setGLProgram(GL_P)
  24. end
  25. elseif tolua.type(node) == "ccui.LoadingBar" or tolua.type(node) == "ccui.TextAtlas" then
  26. local renderer = node:getVirtualRenderer()
  27. if renderer then
  28. renderer:setGLProgram(GL_P)
  29. end
  30. elseif tolua.type(node) == "ccui.CheckBox" then
  31. local renderer1 = node:getRendererBackground()
  32. local renderer2 = node:getRendererBackgroundSelected()
  33. local renderer3 = node:getRendererBackgroundDisabled()
  34. local renderer4 = node:getVirtualRenderer()
  35. local renderer5 = node:getRendererFrontCrossDisabled()
  36. local renderer6 = node:getRendererFrontCross()
  37. if renderer1 then
  38. renderer1:setGLProgram(GL_P)
  39. end
  40. if renderer2 then
  41. renderer2:setGLProgram(GL_P)
  42. end
  43. if renderer3 then
  44. renderer3:setGLProgram(GL_P)
  45. end
  46. if renderer4 then
  47. renderer4:setGLProgram(GL_P)
  48. end
  49. if renderer5 then
  50. renderer5:setGLProgram(GL_P)
  51. end
  52. if renderer6 then
  53. renderer6:setGLProgram(GL_P)
  54. end
  55. else
  56. node:setGLProgram( GL_P );
  57. end
  58. end
  59. end
  60. return NormalShaderCommand