Skip to content

Instantly share code, notes, and snippets.

@nheagy
Last active August 29, 2015 13:57

Revisions

  1. nheagy revised this gist Apr 1, 2014. 1 changed file with 62 additions and 61 deletions.
    123 changes: 62 additions & 61 deletions gistfile1.m
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,39 @@
    const GLchar *blurVertex =
    "attribute vec4 a_position;\n\
    attribute vec4 a_texCoord;\n\
    attribute vec4 a_color;\n\
    \n\
    uniform float texelWidthOffset;\n\
    uniform float texelHeightOffset;\n\
    \n\
    varying vec2 blurCoordinates[15];\n\
    varying lowp vec4 v_fragmentColor;\n\
    \n\
    void main()\n\
    {\n\
    gl_Position = a_position;\n\
    \n\
    vec2 singleStepOffset = vec2(texelWidthOffset, texelHeightOffset);\n\
    blurCoordinates[0] = a_texCoord.xy;\n\
    blurCoordinates[1] = a_texCoord.xy + singleStepOffset * 1.496250;\n\
    blurCoordinates[2] = a_texCoord.xy - singleStepOffset * 1.496250;\n\
    blurCoordinates[3] = a_texCoord.xy + singleStepOffset * 3.491251;\n\
    blurCoordinates[4] = a_texCoord.xy - singleStepOffset * 3.491251;\n\
    blurCoordinates[5] = a_texCoord.xy + singleStepOffset * 5.486253;\n\
    blurCoordinates[6] = a_texCoord.xy - singleStepOffset * 5.486253;\n\
    blurCoordinates[7] = a_texCoord.xy + singleStepOffset * 7.481259;\n\
    blurCoordinates[8] = a_texCoord.xy - singleStepOffset * 7.481259;\n\
    blurCoordinates[9] = a_texCoord.xy + singleStepOffset * 9.476268;\n\
    blurCoordinates[10] = a_texCoord.xy - singleStepOffset * 9.476268;\n\
    blurCoordinates[11] = a_texCoord.xy + singleStepOffset * 11.471281;\n\
    blurCoordinates[12] = a_texCoord.xy - singleStepOffset * 11.471281;\n\
    blurCoordinates[13] = a_texCoord.xy + singleStepOffset * 13.466302;\n\
    blurCoordinates[14] = a_texCoord.xy - singleStepOffset * 13.466302;\n\
    v_fragmentColor = a_color;\n\
    }\n";

    const GLchar *blurFragment =
    "uniform sampler2D inputImageTexture;\n\
    "uniform sampler2D CC_Texture0;\n\
    uniform highp float texelWidthOffset;\n\
    uniform highp float texelHeightOffset;\n\
    \n\
    @@ -9,67 +43,34 @@
    void main()\n\
    {\n\
    lowp vec4 sum = vec4(0.0);\n\
    sum += texture2D(inputImageTexture, blurCoordinates[0]) * 0.040892;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[1]) * 0.080769;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[2]) * 0.080769;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[3]) * 0.076840;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[4]) * 0.076840;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[5]) * 0.070242;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[6]) * 0.070242;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[7]) * 0.061699;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[8]) * 0.061699;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[9]) * 0.052076;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[10]) * 0.052076;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[11]) * 0.042234;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[12]) * 0.042234;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[13]) * 0.032912;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[14]) * 0.032912;\n\
    sum += texture2D(CC_Texture0, blurCoordinates[0]) * 0.040892;\n\
    sum += texture2D(CC_Texture0, blurCoordinates[1]) * 0.080769;\n\
    sum += texture2D(CC_Texture0, blurCoordinates[2]) * 0.080769;\n\
    sum += texture2D(CC_Texture0, blurCoordinates[3]) * 0.076840;\n\
    sum += texture2D(CC_Texture0, blurCoordinates[4]) * 0.076840;\n\
    sum += texture2D(CC_Texture0, blurCoordinates[5]) * 0.070242;\n\
    sum += texture2D(CC_Texture0, blurCoordinates[6]) * 0.070242;\n\
    sum += texture2D(CC_Texture0, blurCoordinates[7]) * 0.061699;\n\
    sum += texture2D(CC_Texture0, blurCoordinates[8]) * 0.061699;\n\
    sum += texture2D(CC_Texture0, blurCoordinates[9]) * 0.052076;\n\
    sum += texture2D(CC_Texture0, blurCoordinates[10]) * 0.052076;\n\
    sum += texture2D(CC_Texture0, blurCoordinates[11]) * 0.042234;\n\
    sum += texture2D(CC_Texture0, blurCoordinates[12]) * 0.042234;\n\
    sum += texture2D(CC_Texture0, blurCoordinates[13]) * 0.032912;\n\
    sum += texture2D(CC_Texture0, blurCoordinates[14]) * 0.032912;\n\
    highp vec2 singleStepOffset = vec2(texelWidthOffset, texelHeightOffset);\n\
    sum += texture2D(inputImageTexture, blurCoordinates[0] + singleStepOffset * 15.461327) * 0.024645;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[0] - singleStepOffset * 15.461327) * 0.024645;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[0] + singleStepOffset * 17.456362) * 0.017732;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[0] - singleStepOffset * 17.456362) * 0.017732;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[0] + singleStepOffset * 19.451405) * 0.012260;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[0] - singleStepOffset * 19.451405) * 0.012260;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[0] + singleStepOffset * 21.446457) * 0.008144;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[0] - singleStepOffset * 21.446457) * 0.008144;\n\
    sum += texture2D(CC_Texture0, blurCoordinates[0] + singleStepOffset * 15.461327) * 0.024645;\n\
    sum += texture2D(CC_Texture0, blurCoordinates[0] - singleStepOffset * 15.461327) * 0.024645;\n\
    sum += texture2D(CC_Texture0, blurCoordinates[0] + singleStepOffset * 17.456362) * 0.017732;\n\
    sum += texture2D(CC_Texture0, blurCoordinates[0] - singleStepOffset * 17.456362) * 0.017732;\n\
    sum += texture2D(CC_Texture0, blurCoordinates[0] + singleStepOffset * 19.451405) * 0.012260;\n\
    sum += texture2D(CC_Texture0, blurCoordinates[0] - singleStepOffset * 19.451405) * 0.012260;\n\
    sum += texture2D(CC_Texture0, blurCoordinates[0] + singleStepOffset * 21.446457) * 0.008144;\n\
    sum += texture2D(CC_Texture0, blurCoordinates[0] - singleStepOffset * 21.446457) * 0.008144;\n\
    gl_FragColor = sum;\n\
    }\n\
    ";

    const GLchar *blurVertex =
    "attribute vec4 position;\n\
    attribute vec a_color;\n\
    attribute vec4 inputTextureCoordinate;\n\
    \n\
    uniform float texelWidthOffset;\n\
    uniform float texelHeightOffset;\n\
    \n\
    varying vec2 blurCoordinates[15];\n\
    \n\
    void main()\n\
    {\n\
    gl_Position = position;\n\
    \n\
    vec2 singleStepOffset = vec2(texelWidthOffset, texelHeightOffset);\n\
    blurCoordinates[0] = inputTextureCoordinate.xy;\n\
    blurCoordinates[1] = inputTextureCoordinate.xy + singleStepOffset * 1.496250;\n\
    blurCoordinates[2] = inputTextureCoordinate.xy - singleStepOffset * 1.496250;\n\
    blurCoordinates[3] = inputTextureCoordinate.xy + singleStepOffset * 3.491251;\n\
    blurCoordinates[4] = inputTextureCoordinate.xy - singleStepOffset * 3.491251;\n\
    blurCoordinates[5] = inputTextureCoordinate.xy + singleStepOffset * 5.486253;\n\
    blurCoordinates[6] = inputTextureCoordinate.xy - singleStepOffset * 5.486253;\n\
    blurCoordinates[7] = inputTextureCoordinate.xy + singleStepOffset * 7.481259;\n\
    blurCoordinates[8] = inputTextureCoordinate.xy - singleStepOffset * 7.481259;\n\
    blurCoordinates[9] = inputTextureCoordinate.xy + singleStepOffset * 9.476268;\n\
    blurCoordinates[10] = inputTextureCoordinate.xy - singleStepOffset * 9.476268;\n\
    blurCoordinates[11] = inputTextureCoordinate.xy + singleStepOffset * 11.471281;\n\
    blurCoordinates[12] = inputTextureCoordinate.xy - singleStepOffset * 11.471281;\n\
    blurCoordinates[13] = inputTextureCoordinate.xy + singleStepOffset * 13.466302;\n\
    blurCoordinates[14] = inputTextureCoordinate.xy - singleStepOffset * 13.466302;\n\
    v_fragmentColor = a_color;\n\
    }\n";

    @implementation GameView

    @synthesize wordcounterTexture, wordlists, touchBeginTile, highscores, score=score;
    @@ -81,11 +82,11 @@ - (id)init
    {
    CCGLProgram *shaderProgram = [[CCGLProgram alloc] initWithVertexShaderByteArray:blurVertex fragmentShaderByteArray:blurFragment];

    [shaderProgram addAttribute:@"position" index:kCCVertexAttrib_Position];
    [shaderProgram addAttribute:@"color" index:kCCVertexAttrib_Color];
    [shaderProgram addAttribute:@"inputTextureCoordinate" index:kCCVertexAttrib_TexCoords];
    [shaderProgram addAttribute:@"a_position" index:kCCVertexAttrib_Position];
    [shaderProgram addAttribute:@"a_color" index:kCCVertexAttrib_Color];
    [shaderProgram addAttribute:@"a_texCoord" index:kCCVertexAttrib_TexCoords];

    [shaderProgram link];
    [shaderProgram updateUniforms];
    [[CCShaderCache sharedShaderCache] addProgram:shaderProgram forKey:@"BlurShader"];
    self.shaderProgram = shaderProgram;
    self.shaderProgram = [[CCShaderCache sharedShaderCache] programForKey:@"BlurShader"];
  2. nheagy renamed this gist Apr 1, 2014. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  3. nheagy created this gist Apr 1, 2014.
    91 changes: 91 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,91 @@
    const GLchar *blurFragment =
    "uniform sampler2D inputImageTexture;\n\
    uniform highp float texelWidthOffset;\n\
    uniform highp float texelHeightOffset;\n\
    \n\
    varying highp vec2 blurCoordinates[15];\n\
    varying vec4 v_fragmentColor;\n\
    \n\
    void main()\n\
    {\n\
    lowp vec4 sum = vec4(0.0);\n\
    sum += texture2D(inputImageTexture, blurCoordinates[0]) * 0.040892;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[1]) * 0.080769;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[2]) * 0.080769;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[3]) * 0.076840;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[4]) * 0.076840;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[5]) * 0.070242;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[6]) * 0.070242;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[7]) * 0.061699;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[8]) * 0.061699;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[9]) * 0.052076;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[10]) * 0.052076;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[11]) * 0.042234;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[12]) * 0.042234;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[13]) * 0.032912;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[14]) * 0.032912;\n\
    highp vec2 singleStepOffset = vec2(texelWidthOffset, texelHeightOffset);\n\
    sum += texture2D(inputImageTexture, blurCoordinates[0] + singleStepOffset * 15.461327) * 0.024645;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[0] - singleStepOffset * 15.461327) * 0.024645;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[0] + singleStepOffset * 17.456362) * 0.017732;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[0] - singleStepOffset * 17.456362) * 0.017732;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[0] + singleStepOffset * 19.451405) * 0.012260;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[0] - singleStepOffset * 19.451405) * 0.012260;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[0] + singleStepOffset * 21.446457) * 0.008144;\n\
    sum += texture2D(inputImageTexture, blurCoordinates[0] - singleStepOffset * 21.446457) * 0.008144;\n\
    gl_FragColor = sum;\n\
    }\n\
    ";

    const GLchar *blurVertex =
    "attribute vec4 position;\n\
    attribute vec a_color;\n\
    attribute vec4 inputTextureCoordinate;\n\
    \n\
    uniform float texelWidthOffset;\n\
    uniform float texelHeightOffset;\n\
    \n\
    varying vec2 blurCoordinates[15];\n\
    \n\
    void main()\n\
    {\n\
    gl_Position = position;\n\
    \n\
    vec2 singleStepOffset = vec2(texelWidthOffset, texelHeightOffset);\n\
    blurCoordinates[0] = inputTextureCoordinate.xy;\n\
    blurCoordinates[1] = inputTextureCoordinate.xy + singleStepOffset * 1.496250;\n\
    blurCoordinates[2] = inputTextureCoordinate.xy - singleStepOffset * 1.496250;\n\
    blurCoordinates[3] = inputTextureCoordinate.xy + singleStepOffset * 3.491251;\n\
    blurCoordinates[4] = inputTextureCoordinate.xy - singleStepOffset * 3.491251;\n\
    blurCoordinates[5] = inputTextureCoordinate.xy + singleStepOffset * 5.486253;\n\
    blurCoordinates[6] = inputTextureCoordinate.xy - singleStepOffset * 5.486253;\n\
    blurCoordinates[7] = inputTextureCoordinate.xy + singleStepOffset * 7.481259;\n\
    blurCoordinates[8] = inputTextureCoordinate.xy - singleStepOffset * 7.481259;\n\
    blurCoordinates[9] = inputTextureCoordinate.xy + singleStepOffset * 9.476268;\n\
    blurCoordinates[10] = inputTextureCoordinate.xy - singleStepOffset * 9.476268;\n\
    blurCoordinates[11] = inputTextureCoordinate.xy + singleStepOffset * 11.471281;\n\
    blurCoordinates[12] = inputTextureCoordinate.xy - singleStepOffset * 11.471281;\n\
    blurCoordinates[13] = inputTextureCoordinate.xy + singleStepOffset * 13.466302;\n\
    blurCoordinates[14] = inputTextureCoordinate.xy - singleStepOffset * 13.466302;\n\
    v_fragmentColor = a_color;\n\
    }\n";

    @implementation GameView

    @synthesize wordcounterTexture, wordlists, touchBeginTile, highscores, score=score;

    #pragma mark Setup
    - (id)init
    {
    if ((self = [super init]))
    {
    CCGLProgram *shaderProgram = [[CCGLProgram alloc] initWithVertexShaderByteArray:blurVertex fragmentShaderByteArray:blurFragment];

    [shaderProgram addAttribute:@"position" index:kCCVertexAttrib_Position];
    [shaderProgram addAttribute:@"color" index:kCCVertexAttrib_Color];
    [shaderProgram addAttribute:@"inputTextureCoordinate" index:kCCVertexAttrib_TexCoords];

    [shaderProgram link];
    [shaderProgram updateUniforms];
    [[CCShaderCache sharedShaderCache] addProgram:shaderProgram forKey:@"BlurShader"];
    self.shaderProgram = shaderProgram;