Note that there are some explanatory texts on larger screens.

plurals
  1. POglProgramStringARB causing GL_INVALID_OPERATION....or Help with fragment programs
    primarykey
    data
    text
    <p>I am trying to write a fragment program that will take a texture and clamp the texels between two values. That is, if the min value is say 0.2 and the max value is 0.6, any texel less than 0.2 will become 0, any texel greater than 0.6 will become 1.0, and all values in between will be mapped from 0 to 1.0.</p> <p>My call to glProgramStringARB is cause a GL_INVALID_OPERATION. I can't seem to figure out why this is happening. Please help.</p> <p>This is my first attempt at writing a shader so I'm not entirely sure what I'm doing. Here's my code:</p> <pre><code>String str = "!!ARBfp1.0\n"+ "TEMP R0;\n"+ "MOV R0.x, fragment.texcoord[1];\n"+ "ADD R0.w, fragment.texcoord[2].x, -R0.x;\n"+ "TEX R0.xyz, fragment.texcoord[0], texture[0], 2D;\n"+ "RCP R0.w, R0.w;\n"+ "ADD R0.xyz, R0, -fragment.texcoord[1].x;\n"+ "MUL_SAT result.color.xyz, R0, R0.w;\n"+ "END\n"; int count = str.Length; Gl.glEnable(Gl.GL_FRAGMENT_PROGRAM_ARB); Gl.glGenProgramsARB(1, out mFragProg); Gl.glBindProgramARB(Gl.GL_FRAGMENT_PROGRAM_ARB, mFragProg); Gl.glProgramStringARB(Gl.GL_FRAGMENT_PROGRAM_ARB, Gl.GL_PROGRAM_FORMAT_ASCII_ARB, count, str); GetGLError("glProgramStringARB"); Gl.glDisable(Gl.GL_FRAGMENT_PROGRAM_ARB); </code></pre> <p>Then to use it I do the following:</p> <pre><code>Gl.glEnable(Gl.GL_FRAGMENT_PROGRAM_ARB); Gl.glBindProgramARB(Gl.GL_FRAGMENT_PROGRAM_ARB, mFragProg); float max = (mMiddle + (mRange / 2.0f))/65535.0f; float min = (mMiddle - (mRange / 2.0f))/65535.0f; Gl.glMultiTexCoord1f(Gl.GL_TEXTURE1_ARB, min); Gl.glMultiTexCoord1f(Gl.GL_TEXTURE2_ARB, max); GetGLError("Enable Program for Drawing"); /* * Drawing Code */ Gl.glDisable(Gl.GL_FRAGMENT_PROGRAM_ARB); </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload