text: 
  static const pchar P_EFFECTBLEND_MATERIAL_MIX[] = 
  "<material>\n"
  "  <shader>\n"
  "    <vs>\n"
  "      attribute mediump vec3 position;\n"
  "      varying mediump vec2 vCoord;\n"
  "      void main()\n"
  "      {\n"
  "          gl_Position = vec4(position, 1);\n"
  "          vCoord = position.xy * 0.5 + vec2(0.5, 0.5);\n"
  "      }\n"
  "    </vs>\n"
  "    <fs>\n"
  "      precision mediump float;\n"
  "      uniform sampler2D Source;\n"
  "      uniform sampler2D Target;\n"
  "      varying mediump vec2 vCoord;\n"
  "      void main()\n"
  "      {\n"
  "          vec4 src = texture2D(Source, vCoord);\n"
  "          vec4 dst = texture2D(Target, vCoord);\n"
  "          gl_FragColor.rgb = (1.0 - dst.a) * src.rgb + dst.a * dst.rgb;\n"
  "          gl_FragColor.a = dst.a;\n"
  "      }\n"
  "    </fs>\n"
  "  </shader>\n"
  "  <parameters>\n"
  "    <parameter name=\"source\" uniform=\"Source\" source=\"material\"/>\n"
  "    <parameter name=\"target\" uniform=\"Target\" source=\"material\"/>\n"
  "  </parameters>\n"
  "</material>\n";
  
  static const pchar P_EFFECTBLEND_MATERIAL_ADD[] = 
  "<material>\n"
  "  <shader>\n"
  "    <vs>\n"
  "      attribute mediump vec3 position;\n"
  "      varying mediump vec2 vCoord;\n"
  "      void main()\n"
  "      {\n"
  "          gl_Position = vec4(position, 1);\n"
  "          vCoord = position.xy * 0.5 + vec2(0.5, 0.5);\n"
  "      }\n"
  "    </vs>\n"
  "    <fs>\n"
  "      precision mediump float;\n"
  "      uniform sampler2D Source;\n"
  "      uniform sampler2D Target;\n"
  "      varying mediump vec2 vCoord;\n"
  "      void main()\n"
  "      {\n"
  "          vec4 src = texture2D(Source, vCoord);\n"
  "          vec4 dst = texture2D(Target, vCoord);\n"
  "          gl_FragColor.rgb = src.rgb + dst.rgb; \n"
  "          gl_FragColor.a = src.a + dst.a;\n"
  "      }\n"
  "    </fs>\n"
  "  </shader>\n"
  "  <parameters>\n"
  "    <parameter name=\"source\" uniform=\"Source\" source=\"material\"/>\n"
  "    <parameter name=\"target\" uniform=\"Target\" source=\"material\"/>\n"
  "  </parameters>\n"
  "</material>\n";
  
  static const pchar P_EFFECTBLEND_MATERIAL_OVERLAY[] = 
  "<material>\n"
  "  <shader>\n"
  "    <vs>\n"
  "      attribute mediump vec3 position;\n"
  "      varying mediump vec2 vCoord;\n"
  "      void main()\n"
  "      {\n"
  "          gl_Position = vec4(position, 1);\n"
  "          vCoord = position.xy * 0.5 + vec2(0.5, 0.5);\n"
  "      }\n"
  "    </vs>\n"
  "    <fs>\n"
  "      precision mediump float;\n"
  "      uniform sampler2D Source;\n"
  "      uniform sampler2D Target;\n"
  "      varying mediump vec2 vCoord;\n"
  "      void main()\n"
  "      {\n"
  "          vec4 src = texture2D(Source, vCoord);\n"
  "          vec4 dst = texture2D(Target, vCoord);\n"
  "          gl_FragColor.rgb = src.rgb * src.a + dst.rgb * dst.a;\n"
  "          gl_FragColor.a = dst.a;\n"
  "      }\n"
  "    </fs>\n"
  "  </shader>\n"
  "  <parameters>\n"
  "    <parameter name=\"source\" uniform=\"Source\" source=\"material\"/>\n"
  "    <parameter name=\"target\" uniform=\"Target\" source=\"material\"/>\n"
  "  </parameters>\n"
  "</material>\n";
  