<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Shaders</title><link>https://sourceforge.net/p/glslayer/wiki/Shaders/</link><description>Recent changes to Shaders</description><atom:link href="https://sourceforge.net/p/glslayer/wiki/Shaders/feed" rel="self"/><language>en</language><lastBuildDate>Fri, 05 Oct 2012 09:56:27 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/glslayer/wiki/Shaders/feed" rel="self" type="application/rss+xml"/><item><title>WikiPage Shaders modified by Milan Davidovic</title><link>https://sourceforge.net/p/glslayer/wiki/Shaders/</link><description>&lt;pre&gt;--- v5
+++ v6
@@ -1,14 +1,15 @@
-There are 5 classes that represent shader types:
+There are 6 classes that represent shader types:
 
 * IVertexShader
 * ITessControlShader
 * ITessEvaluationShader
 * IGeometryShader
 * IFragmentShader
+* IComputeShader
 
-They are all derived from IShader which has some common functionality. Shader objects are created using IRenderContext functions Create\*Shader() which have overloads that take shader source string or shader binary. All shader types except fragment shaders can also be created with Create\*ShaderWithTransformFeedback() which creates shader object and sets up transform feedback output varyings.
+They are all derived from IShader which has some common functionality. Shader objects are created using IRenderContext functions Create\*Shader() which have overloads that take shader source string or shader binary. All shader types except fragment and compute shaders can also be created with Create\*ShaderWithTransformFeedback() which creates shader object and sets up transform feedback output varyings.
 
-These are current shader object design directions, some of them still need to be proven through testing and practical usage and might be changed later if they are proven to be unsound because of either performance or usability reasons:
+The following are current shader object design directions, some of them still need to be proven through testing and practical usage and might be changed later if they are proven to be unsound because of either performance or usability reasons:
 
 * OpenGL separate shader objects are used exclusively, so each shader stage can be set separately. There is no concept of "program object" in GLSlayer API that contains shader objects for each stage. Internally, single pipeline object is created and always used.
 * Shader objects are designed to be immutable. When a shader is created, source code is specified and shader is compiled and linked, after that source cannot be changed and shader cannot be recompiled and relinked.
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Milan Davidovic</dc:creator><pubDate>Fri, 05 Oct 2012 09:56:27 -0000</pubDate><guid>https://sourceforge.net8e1c5466e46171e45c52be664c857aecdd52248b</guid></item><item><title>WikiPage Shaders modified by Milan Davidovic</title><link>https://sourceforge.net/p/glslayer/wiki/Shaders/</link><description>&lt;pre&gt;--- v4
+++ v5
@@ -8,8 +8,8 @@
 
 They are all derived from IShader which has some common functionality. Shader objects are created using IRenderContext functions Create\*Shader() which have overloads that take shader source string or shader binary. All shader types except fragment shaders can also be created with Create\*ShaderWithTransformFeedback() which creates shader object and sets up transform feedback output varyings.
 
-These are current shader object design directions, some of them still need to be proven through testing and practical usage and might be changed later if it is proven to be unsound because of either performance o usability reasons:
+These are current shader object design directions, some of them still need to be proven through testing and practical usage and might be changed later if they are proven to be unsound because of either performance or usability reasons:
 
-* OpenGL separate shader objects are used exclusively, so each shader
-* Shader objects are designed to be immutable. When a shader is created, source code is specified and shader is compiled and linked, after that source cannot be changed.
-* 
+* OpenGL separate shader objects are used exclusively, so each shader stage can be set separately. There is no concept of "program object" in GLSlayer API that contains shader objects for each stage. Internally, single pipeline object is created and always used.
+* Shader objects are designed to be immutable. When a shader is created, source code is specified and shader is compiled and linked, after that source cannot be changed and shader cannot be recompiled and relinked.
+* Uniform blocks are used exclusively for shader constant storage.
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Milan Davidovic</dc:creator><pubDate>Thu, 24 May 2012 20:52:44 -0000</pubDate><guid>https://sourceforge.net8e50d83592970e6c87c2577736c9319dc00625a0</guid></item><item><title>WikiPage Shaders modified by Milan Davidovic</title><link>https://sourceforge.net/p/glslayer/wiki/Shaders/</link><description>&lt;pre&gt;--- v3
+++ v4
@@ -8,5 +8,8 @@
 
 They are all derived from IShader which has some common functionality. Shader objects are created using IRenderContext functions Create\*Shader() which have overloads that take shader source string or shader binary. All shader types except fragment shaders can also be created with Create\*ShaderWithTransformFeedback() which creates shader object and sets up transform feedback output varyings.
 
-Shader objects are designed to be immutable, that is once they are created they cannot be changed.
+These are current shader object design directions, some of them still need to be proven through testing and practical usage and might be changed later if it is proven to be unsound because of either performance o usability reasons:
 
+* OpenGL separate shader objects are used exclusively, so each shader
+* Shader objects are designed to be immutable. When a shader is created, source code is specified and shader is compiled and linked, after that source cannot be changed.
+* 
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Milan Davidovic</dc:creator><pubDate>Thu, 24 May 2012 20:35:14 -0000</pubDate><guid>https://sourceforge.netede3a7bfe4f9402031b5b4263c73dcf9089187a8</guid></item><item><title>WikiPage Shaders modified by Milan Davidovic</title><link>https://sourceforge.net/p/glslayer/wiki/Shaders/</link><description>&lt;pre&gt;--- v2
+++ v3
@@ -8,3 +8,5 @@
 
 They are all derived from IShader which has some common functionality. Shader objects are created using IRenderContext functions Create\*Shader() which have overloads that take shader source string or shader binary. All shader types except fragment shaders can also be created with Create\*ShaderWithTransformFeedback() which creates shader object and sets up transform feedback output varyings.
 
+Shader objects are designed to be immutable, that is once they are created they cannot be changed.
+
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Milan Davidovic</dc:creator><pubDate>Tue, 22 May 2012 21:24:00 -0000</pubDate><guid>https://sourceforge.net9e584c2e86a6e8c2fcc3fff75a414d6b12023d98</guid></item><item><title>WikiPage Shaders modified by Milan Davidovic</title><link>https://sourceforge.net/p/glslayer/wiki/Shaders/</link><description>&lt;pre&gt;--- v1 
+++ v2 
@@ -6,5 +6,5 @@
 * IGeometryShader
 * IFragmentShader
 
-They are all derived from IShader which has some common functionality. Shader objects are created using IRenderContext functions Create*Shader() which have overloads that take shader source string or shader binary. All shader types except fragment shaders can also be created with Create*ShaderWithTransformFeedback() which creates shader object and sets up transform feedback output varyings.
+They are all derived from IShader which has some common functionality. Shader objects are created using IRenderContext functions Create\*Shader() which have overloads that take shader source string or shader binary. All shader types except fragment shaders can also be created with Create\*ShaderWithTransformFeedback() which creates shader object and sets up transform feedback output varyings.
 
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Milan Davidovic</dc:creator><pubDate>Sun, 20 May 2012 18:32:55 -0000</pubDate><guid>https://sourceforge.nete28502bc5e686906ab72428dddd293bf23fb2a37</guid></item><item><title>WikiPage Shaders modified by Milan Davidovic</title><link>https://sourceforge.net/p/glslayer/wiki/Shaders/</link><description>There are 5 classes that represent shader types:

* IVertexShader
* ITessControlShader
* ITessEvaluationShader
* IGeometryShader
* IFragmentShader

They are all derived from IShader which has some common functionality. Shader objects are created using IRenderContext functions Create*Shader() which have overloads that take shader source string or shader binary. All shader types except fragment shaders can also be created with Create*ShaderWithTransformFeedback() which creates shader object and sets up transform feedback output varyings.

</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Milan Davidovic</dc:creator><pubDate>Sun, 20 May 2012 18:32:01 -0000</pubDate><guid>https://sourceforge.netff6cade012a07aad8ec4dfeb83b5ecd6ad0e222e</guid></item></channel></rss>