From 4a1a777088cfd20875d2a99a71028e37e2c9fc92 Mon Sep 17 00:00:00 2001
From: Julien Gouesse <gouessej@orange.fr>
Date: Thu, 13 Aug 2015 20:50:15 +0200
Subject: Adds the compute shaders into the list of supported shaders for
 ShaderCode

---
 src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderCode.java | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderCode.java b/src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderCode.java
index e1db3f7a3..9f0a77976 100644
--- a/src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderCode.java
+++ b/src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderCode.java
@@ -47,6 +47,7 @@ import java.util.Set;
 import com.jogamp.opengl.GL;
 import com.jogamp.opengl.GL2ES2;
 import com.jogamp.opengl.GL3;
+import com.jogamp.opengl.GL3ES3;
 import com.jogamp.opengl.GL4;
 import com.jogamp.opengl.GLES2;
 import com.jogamp.opengl.GLContext;
@@ -138,6 +139,7 @@ public class ShaderCode {
             case GL3.GL_GEOMETRY_SHADER:
             case GL3.GL_TESS_CONTROL_SHADER:
             case GL3.GL_TESS_EVALUATION_SHADER:
+            case GL3ES3.GL_COMPUTE_SHADER:
                 break;
             default:
                 throw new GLException("Unknown shader type: "+type);
@@ -168,6 +170,7 @@ public class ShaderCode {
             case GL3.GL_GEOMETRY_SHADER:
             case GL3.GL_TESS_CONTROL_SHADER:
             case GL3.GL_TESS_EVALUATION_SHADER:
+            case GL3ES3.GL_COMPUTE_SHADER:
                 break;
             default:
                 throw new GLException("Unknown shader type: "+type);
@@ -767,6 +770,8 @@ public class ShaderCode {
                 return "TESS_CONTROL_SHADER";
             case GL3.GL_TESS_EVALUATION_SHADER:
                 return "TESS_EVALUATION_SHADER";
+            case GL3ES3.GL_COMPUTE_SHADER:
+            	return "COMPUTE_SHADER";
         }
         return "UNKNOWN_SHADER";
     }
@@ -1284,6 +1289,8 @@ public class ShaderCode {
                     defaultPrecision = es3_default_precision_vp; break;
                 case GL2ES2.GL_FRAGMENT_SHADER:
                     defaultPrecision = es3_default_precision_fp; break;
+                case GL3ES3.GL_COMPUTE_SHADER:
+                	defaultPrecision = es3_default_precision_fp; break;
                 default:
                     defaultPrecision = null;
                     break;
@@ -1308,6 +1315,8 @@ public class ShaderCode {
                     defaultPrecision = gl3_default_precision_vp_gp; break;
                 case GL2ES2.GL_FRAGMENT_SHADER:
                     defaultPrecision = gl3_default_precision_fp; break;
+                case GL3ES3.GL_COMPUTE_SHADER:
+                	defaultPrecision = gl3_default_precision_fp; break;
                 default:
                     defaultPrecision = null;
                     break;
-- 
cgit v1.2.3


From 8f56b4a0631fd4d8668573ff3baa704e22d8ed85 Mon Sep 17 00:00:00 2001
From: Julien Gouesse <gouessej@orange.fr>
Date: Thu, 13 Aug 2015 21:00:31 +0200
Subject: Updates the documentation of the class ShaderCode concerning the
 compute shaders

---
 .../com/jogamp/opengl/util/glsl/ShaderCode.java    | 24 ++++++++++++----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderCode.java b/src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderCode.java
index 9f0a77976..c916a6671 100644
--- a/src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderCode.java
+++ b/src/jogl/classes/com/jogamp/opengl/util/glsl/ShaderCode.java
@@ -122,7 +122,7 @@ public class ShaderCode {
 
     /**
      * @param type either {@link GL2ES2#GL_VERTEX_SHADER}, {@link GL2ES2#GL_FRAGMENT_SHADER}, {@link GL3#GL_GEOMETRY_SHADER},
-     *                    {@link GL4#GL_TESS_CONTROL_SHADER} or {@link GL4#GL_TESS_EVALUATION_SHADER}.
+     *                    {@link GL4#GL_TESS_CONTROL_SHADER}, {@link GL4#GL_TESS_EVALUATION_SHADER} or {@link GL3ES3#GL_COMPUTE_SHADER}.
      * @param count number of shaders
      * @param source CharSequence array containing the shader sources, organized as <code>source[count][strings-per-shader]</code>.
      *               May be either an immutable <code>String</code> - or mutable <code>StringBuilder</code> array.
@@ -159,7 +159,7 @@ public class ShaderCode {
 
     /**
      * @param type either {@link GL2ES2#GL_VERTEX_SHADER}, {@link GL2ES2#GL_FRAGMENT_SHADER}, {@link GL3#GL_GEOMETRY_SHADER},
-     *                    {@link GL4#GL_TESS_CONTROL_SHADER} or {@link GL4#GL_TESS_EVALUATION_SHADER}.
+     *                    {@link GL4#GL_TESS_CONTROL_SHADER}, {@link GL4#GL_TESS_EVALUATION_SHADER} or {@link GL3ES3#GL_COMPUTE_SHADER}.
      * @param count number of shaders
      * @param binary binary buffer containing the shader binaries,
      */
@@ -189,7 +189,7 @@ public class ShaderCode {
      *
      * @param gl current GL object to determine whether a shader compiler is available. If null, no validation is performed.
      * @param type either {@link GL2ES2#GL_VERTEX_SHADER}, {@link GL2ES2#GL_FRAGMENT_SHADER}, {@link GL3#GL_GEOMETRY_SHADER},
-     *                    {@link GL4#GL_TESS_CONTROL_SHADER} or {@link GL4#GL_TESS_EVALUATION_SHADER}.
+     *                    {@link GL4#GL_TESS_CONTROL_SHADER}, {@link GL4#GL_TESS_EVALUATION_SHADER} or {@link GL3ES3#GL_COMPUTE_SHADER}.
      * @param count number of shaders
      * @param context class used to help resolving the source location
      * @param sourceFiles array of source locations, organized as <code>sourceFiles[count]</code> -> <code>shaderSources[count][1]</code>
@@ -236,7 +236,7 @@ public class ShaderCode {
      *
      * @param gl current GL object to determine whether a shader compiler is available. If null, no validation is performed.
      * @param type either {@link GL2ES2#GL_VERTEX_SHADER}, {@link GL2ES2#GL_FRAGMENT_SHADER}, {@link GL3#GL_GEOMETRY_SHADER},
-     *                    {@link GL4#GL_TESS_CONTROL_SHADER} or {@link GL4#GL_TESS_EVALUATION_SHADER}.
+     *                    {@link GL4#GL_TESS_CONTROL_SHADER}, {@link GL4#GL_TESS_EVALUATION_SHADER} or {@link GL3ES3#GL_COMPUTE_SHADER}.
      * @param count number of shaders
      * @param sourceLocations array of {@link Uri} source locations, organized as <code>sourceFiles[count]</code> -> <code>shaderSources[count][1]</code>
      * @param mutableStringBuilder if <code>true</code> method returns a mutable <code>StringBuilder</code> instance
@@ -282,7 +282,7 @@ public class ShaderCode {
      * which location is resolved using the <code>context</code> class, see {@link #readShaderBinary(Class, String)}.
      *
      * @param type either {@link GL2ES2#GL_VERTEX_SHADER}, {@link GL2ES2#GL_FRAGMENT_SHADER}, {@link GL3#GL_GEOMETRY_SHADER},
-     *                    {@link GL4#GL_TESS_CONTROL_SHADER} or {@link GL4#GL_TESS_EVALUATION_SHADER}.
+     *                    {@link GL4#GL_TESS_CONTROL_SHADER}, {@link GL4#GL_TESS_EVALUATION_SHADER} or {@link GL3ES3#GL_COMPUTE_SHADER}.
      * @param count number of shaders
      * @param context class used to help resolving the source location
      * @param binFormat a valid native binary format as they can be queried by {@link ShaderUtil#getShaderBinaryFormats(GL)}.
@@ -313,7 +313,7 @@ public class ShaderCode {
      * Creates a complete {@link ShaderCode} object while reading the shader binary from {@link Uri} <code>binLocations</code>
      * via {@link #readShaderBinary(Uri)}.
      * @param type either {@link GL2ES2#GL_VERTEX_SHADER}, {@link GL2ES2#GL_FRAGMENT_SHADER}, {@link GL3#GL_GEOMETRY_SHADER},
-     *                    {@link GL4#GL_TESS_CONTROL_SHADER} or {@link GL4#GL_TESS_EVALUATION_SHADER}.
+     *                    {@link GL4#GL_TESS_CONTROL_SHADER}, {@link GL4#GL_TESS_EVALUATION_SHADER} or {@link GL3ES3#GL_COMPUTE_SHADER}.
      * @param count number of shaders
      * @param binFormat a valid native binary format as they can be queried by {@link ShaderUtil#getShaderBinaryFormats(GL)}.
      * @param binLocations {@link Uri} binary location
@@ -360,7 +360,7 @@ public class ShaderCode {
      * </ul>
      * @param binary true for a binary resource, false for a source resource
      * @param type either {@link GL2ES2#GL_VERTEX_SHADER}, {@link GL2ES2#GL_FRAGMENT_SHADER}, {@link GL3#GL_GEOMETRY_SHADER},
-     *                    {@link GL4#GL_TESS_CONTROL_SHADER} or {@link GL4#GL_TESS_EVALUATION_SHADER}.
+     *                    {@link GL4#GL_TESS_CONTROL_SHADER}, {@link GL4#GL_TESS_EVALUATION_SHADER} or {@link GL3ES3#GL_COMPUTE_SHADER}.
      *
      * @throws GLException if <code>type</code> is not supported
      *
@@ -378,6 +378,8 @@ public class ShaderCode {
                 return binary?SUFFIX_TESS_CONTROL_BINARY:SUFFIX_TESS_CONTROL_SOURCE;
             case GL3.GL_TESS_EVALUATION_SHADER:
                 return binary?SUFFIX_TESS_EVALUATION_BINARY:SUFFIX_TESS_EVALUATION_SOURCE;
+            //case GL3ES3.GL_COMPUTE_SHADER:
+            	//FIXME
             default:
                 throw new GLException("illegal shader type: "+type);
         }
@@ -460,7 +462,7 @@ public class ShaderCode {
      * @param gl current GL object to determine whether a shader compiler is available (if <code>source</code> is used),
      *           or to determine the shader binary format (if <code>binary</code> is used).
      * @param type either {@link GL2ES2#GL_VERTEX_SHADER}, {@link GL2ES2#GL_FRAGMENT_SHADER}, {@link GL3#GL_GEOMETRY_SHADER},
-     *                    {@link GL4#GL_TESS_CONTROL_SHADER} or {@link GL4#GL_TESS_EVALUATION_SHADER}.
+     *                    {@link GL4#GL_TESS_CONTROL_SHADER}, {@link GL4#GL_TESS_EVALUATION_SHADER} or {@link GL3ES3#GL_COMPUTE_SHADER}.
      * @param count number of shaders
      * @param context class used to help resolving the source and binary location
      * @param srcRoot relative <i>root</i> path for <code>srcBasenames</code> optional
@@ -594,7 +596,7 @@ public class ShaderCode {
      * @param gl current GL object to determine whether a shader compiler is available (if <code>source</code> is used),
      *           or to determine the shader binary format (if <code>binary</code> is used).
      * @param type either {@link GL2ES2#GL_VERTEX_SHADER}, {@link GL2ES2#GL_FRAGMENT_SHADER}, {@link GL3#GL_GEOMETRY_SHADER},
-     *                    {@link GL4#GL_TESS_CONTROL_SHADER} or {@link GL4#GL_TESS_EVALUATION_SHADER}.
+     *                    {@link GL4#GL_TESS_CONTROL_SHADER}, {@link GL4#GL_TESS_EVALUATION_SHADER} or {@link GL3ES3#GL_COMPUTE_SHADER}.
      * @param count number of shaders
      * @param context class used to help resolving the source and binary location
      * @param srcRoot relative <i>root</i> path for <code>srcBasenames</code> optional
@@ -662,7 +664,7 @@ public class ShaderCode {
      * @param gl current GL object to determine whether a shader compiler is available (if <code>source</code> is used),
      *           or to determine the shader binary format (if <code>binary</code> is used).
      * @param type either {@link GL2ES2#GL_VERTEX_SHADER}, {@link GL2ES2#GL_FRAGMENT_SHADER}, {@link GL3#GL_GEOMETRY_SHADER},
-     *                    {@link GL4#GL_TESS_CONTROL_SHADER} or {@link GL4#GL_TESS_EVALUATION_SHADER}.
+     *                    {@link GL4#GL_TESS_CONTROL_SHADER}, {@link GL4#GL_TESS_EVALUATION_SHADER} or {@link GL3ES3#GL_COMPUTE_SHADER}.
      * @param context class used to help resolving the source and binary location
      * @param srcRoot relative <i>root</i> path for <code>basename</code> optional
      * @param binRoot relative <i>root</i> path for <code>basename</code>
@@ -729,7 +731,7 @@ public class ShaderCode {
      * @param gl current GL object to determine whether a shader compiler is available (if <code>source</code> is used),
      *           or to determine the shader binary format (if <code>binary</code> is used).
      * @param type either {@link GL2ES2#GL_VERTEX_SHADER}, {@link GL2ES2#GL_FRAGMENT_SHADER}, {@link GL3#GL_GEOMETRY_SHADER},
-     *                    {@link GL4#GL_TESS_CONTROL_SHADER} or {@link GL4#GL_TESS_EVALUATION_SHADER}.
+     *                    {@link GL4#GL_TESS_CONTROL_SHADER}, {@link GL4#GL_TESS_EVALUATION_SHADER} or {@link GL3ES3#GL_COMPUTE_SHADER}.
      * @param context class used to help resolving the source and binary location
      * @param srcRoot relative <i>root</i> path for <code>basename</code> optional
      * @param binRoot relative <i>root</i> path for <code>basename</code>
-- 
cgit v1.2.3