コード例 #1
0
ファイル: ShaderState.java プロジェクト: masterav10/jogl
  public StringBuilder toString(StringBuilder sb, boolean alsoUnlocated) {
    if (null == sb) {
      sb = new StringBuilder();
    }

    sb.append("ShaderState[ ");

    sb.append(Platform.getNewline()).append(" ");
    if (null != shaderProgram) {
      shaderProgram.toString(sb);
    } else {
      sb.append("ShaderProgram: null");
    }
    sb.append(Platform.getNewline()).append(" enabledAttributes [");
    {
      Iterator<String> names = activedAttribEnabledMap.keySet().iterator();
      Iterator<Boolean> values = activedAttribEnabledMap.values().iterator();
      while (names.hasNext()) {
        sb.append(Platform.getNewline())
            .append("  ")
            .append(names.next())
            .append(": ")
            .append(values.next());
      }
    }
    sb.append(Platform.getNewline()).append(" ],").append(" activeAttributes [");
    for (Iterator<GLArrayData> iter = activeAttribDataMap.values().iterator(); iter.hasNext(); ) {
      final GLArrayData ad = iter.next();
      if (alsoUnlocated || 0 <= ad.getLocation()) {
        sb.append(Platform.getNewline()).append("  ").append(ad);
      }
    }
    sb.append(Platform.getNewline()).append(" ],").append(" managedAttributes [");
    for (Iterator<GLArrayData> iter = managedAttributes.iterator(); iter.hasNext(); ) {
      final GLArrayData ad = iter.next();
      if (alsoUnlocated || 0 <= ad.getLocation()) {
        sb.append(Platform.getNewline()).append("  ").append(ad);
      }
    }
    sb.append(Platform.getNewline()).append(" ],").append(" activeUniforms [");
    for (Iterator<GLUniformData> iter = activeUniformDataMap.values().iterator();
        iter.hasNext(); ) {
      final GLUniformData ud = iter.next();
      if (alsoUnlocated || 0 <= ud.getLocation()) {
        sb.append(Platform.getNewline()).append("  ").append(ud);
      }
    }
    sb.append(Platform.getNewline()).append(" ],").append(" managedUniforms [");
    for (Iterator<GLUniformData> iter = managedUniforms.iterator(); iter.hasNext(); ) {
      final GLUniformData ud = iter.next();
      if (alsoUnlocated || 0 <= ud.getLocation()) {
        sb.append(Platform.getNewline()).append("  ").append(ud);
      }
    }
    sb.append(Platform.getNewline()).append(" ]").append(Platform.getNewline()).append("]");
    return sb;
  }
コード例 #2
0
ファイル: ShaderState.java プロジェクト: masterav10/jogl
 /**
  * Set the uniform data.
  *
  * <p>Even if the uniform is not found in the current shader, it is stored in this state.
  *
  * @param data the GLUniforms's name must match the uniform one, it's index will be set with the
  *     uniforms's location, if found.
  * @return false, if the name is not found, otherwise true
  * @throws GLException if the program is not in use
  * @see #glGetUniformLocation
  * @see javax.media.opengl.GL2ES2#glGetUniformLocation
  * @see javax.media.opengl.GL2ES2#glUniform
  * @see #getUniformLocation
  * @see ShaderProgram#glReplaceShader
  */
 public boolean uniform(GL2ES2 gl, GLUniformData data) {
   if (!shaderProgram.inUse()) throw new GLException("Program is not in use");
   int location = data.getLocation();
   if (0 > location) {
     location = getUniformLocation(gl, data);
   }
   if (0 <= location) {
     // only pass the data, if the uniform exists in the current shader
     if (DEBUG) {
       System.err.println("ShaderState: glUniform: " + data);
     }
     gl.glUniform(data);
   }
   return true;
 }