diff options
Diffstat (limited to 'manuals/chickadee/Shaders.html')
-rw-r--r-- | manuals/chickadee/Shaders.html | 70 |
1 files changed, 35 insertions, 35 deletions
diff --git a/manuals/chickadee/Shaders.html b/manuals/chickadee/Shaders.html index 95c5186..505e031 100644 --- a/manuals/chickadee/Shaders.html +++ b/manuals/chickadee/Shaders.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> -<!-- Copyright (C) 2017-2021 David Thompson davet@gnu.org +<!-- Copyright (C) 2017-2023 David Thompson dthompson2@worcester.edu Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 @@ -17,25 +17,25 @@ Foundation Web site at http://www.gnu.org/licenses/fdl.html. The document was typeset with http://www.texinfo.org/ (GNU Texinfo). - --> -<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> + --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> <head> -<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Shaders (The Chickadee Game Toolkit)</title> -<meta name="description" content="Shaders (The Chickadee Game Toolkit)"> -<meta name="keywords" content="Shaders (The Chickadee Game Toolkit)"> -<meta name="resource-type" content="document"> -<meta name="distribution" content="global"> -<meta name="Generator" content="makeinfo"> -<link href="index.html" rel="start" title="Top"> -<link href="Index.html" rel="index" title="Index"> -<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> -<link href="Graphics.html" rel="up" title="Graphics"> -<link href="Framebuffers.html" rel="next" title="Framebuffers"> -<link href="Buffers.html" rel="prev" title="Buffers"> +<meta name="description" content="Shaders (The Chickadee Game Toolkit)" /> +<meta name="keywords" content="Shaders (The Chickadee Game Toolkit)" /> +<meta name="resource-type" content="document" /> +<meta name="distribution" content="global" /> +<meta name="Generator" content="makeinfo" /> +<link href="index.html" rel="start" title="Top" /> +<link href="Index.html" rel="index" title="Index" /> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents" /> +<link href="Graphics.html" rel="up" title="Graphics" /> +<link href="Framebuffers.html" rel="next" title="Framebuffers" /> +<link href="Buffers.html" rel="prev" title="Buffers" /> <style type="text/css"> -<!-- +<!-- a.summary-letter {text-decoration: none} blockquote.indentedblock {margin-right: 0em} div.display {margin-left: 3.2em} @@ -72,9 +72,9 @@ ul.no-bullet {list-style: none} } } ---> +--> </style> -<link rel="stylesheet" type="text/css" href="https://dthompson.us/css/dthompson.css"> +<link rel="stylesheet" type="text/css" href="https://dthompson.us/css/dthompson.css" /> </head> @@ -84,7 +84,7 @@ ul.no-bullet {list-style: none} <p> Next: <a href="Framebuffers.html" accesskey="n" rel="next">Framebuffers</a>, Previous: <a href="Buffers.html" accesskey="p" rel="prev">Buffers</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p> </div> -<hr> +<hr /> <span id="Shaders-1"></span><h4 class="subsection">5.3.13 Shaders</h4> <p>Shaders are programs that the GPU can evaluate that allow the @@ -139,10 +139,10 @@ Chickadee uses, is to think about it as a function call: The shader is a function, and it is applied to some “attributes” (positional arguments), and some “uniforms” (keyword arguments). </p> -<div class="example"> -<pre class="example">(define my-shader (load-shader "vert.glsl" "frag.glsl")) -(define vertices (make-vertex-array …)) -(shader-apply my-shader vertices #:color red) +<div class="lisp"> +<pre class="lisp"><span class="syntax-open">(</span><span class="syntax-special">define</span> <span class="syntax-symbol">my-shader</span> <span class="syntax-open">(</span><span class="syntax-symbol">load-shader</span> <span class="syntax-string">"vert.glsl"</span> <span class="syntax-string">"frag.glsl"</span><span class="syntax-close">)</span><span class="syntax-close">)</span> +<span class="syntax-open">(</span><span class="syntax-special">define</span> <span class="syntax-symbol">vertices</span> <span class="syntax-open">(</span><span class="syntax-symbol">make-vertex-array</span> <span class="syntax-symbol">...</span><span class="syntax-close">)</span><span class="syntax-close">)</span> +<span class="syntax-open">(</span><span class="syntax-symbol">shader-apply</span> <span class="syntax-symbol">my-shader</span> <span class="syntax-symbol">vertices</span> <span class="syntax-keyword">#:color</span> <span class="syntax-symbol">red</span><span class="syntax-close">)</span> </pre></div> <p>See <a href="Rendering-Engine.html">Rendering Engine</a> for more details about the <code>shader-apply</code> @@ -277,17 +277,17 @@ shader struct. <p>Some example code will explain this concept best. Here is the Scheme equivalent of the <code>Light</code> struct: </p> -<div class="example"> -<pre class="example">(define-shader-type <light> - make-light - light? - (bool enabled light-enabled?) - (int type light-type) - (float-vec3 position light-position) - (float-vec3 direction light-direction) - (float-vec4 color light-color) - (float intensity light-intensity) - (float cut-off light-cut-off)) +<div class="lisp"> +<pre class="lisp"><span class="syntax-open">(</span><span class="syntax-special">define-shader-type</span> <span class="syntax-symbol"><light></span> + <span class="syntax-symbol">make-light</span> + <span class="syntax-symbol">light?</span> + <span class="syntax-open">(</span><span class="syntax-symbol">bool</span> <span class="syntax-symbol">enabled</span> <span class="syntax-symbol">light-enabled?</span><span class="syntax-close">)</span> + <span class="syntax-open">(</span><span class="syntax-symbol">int</span> <span class="syntax-symbol">type</span> <span class="syntax-symbol">light-type</span><span class="syntax-close">)</span> + <span class="syntax-open">(</span><span class="syntax-symbol">float-vec3</span> <span class="syntax-symbol">position</span> <span class="syntax-symbol">light-position</span><span class="syntax-close">)</span> + <span class="syntax-open">(</span><span class="syntax-symbol">float-vec3</span> <span class="syntax-symbol">direction</span> <span class="syntax-symbol">light-direction</span><span class="syntax-close">)</span> + <span class="syntax-open">(</span><span class="syntax-symbol">float-vec4</span> <span class="syntax-symbol">color</span> <span class="syntax-symbol">light-color</span><span class="syntax-close">)</span> + <span class="syntax-open">(</span><span class="syntax-symbol">float</span> <span class="syntax-symbol">intensity</span> <span class="syntax-symbol">light-intensity</span><span class="syntax-close">)</span> + <span class="syntax-open">(</span><span class="syntax-symbol">float</span> <span class="syntax-symbol">cut-off</span> <span class="syntax-symbol">light-cut-off</span><span class="syntax-close">)</span><span class="syntax-close">)</span> </pre></div> <p>The macro <code>define-shader-type</code> closely resembles the familiar @@ -393,7 +393,7 @@ optional. <dd><p>Return <code>#t</code> if <var>obj</var> is a shader data type object. </p></dd></dl> -<hr> +<hr /> <div class="header"> <p> Next: <a href="Framebuffers.html" accesskey="n" rel="next">Framebuffers</a>, Previous: <a href="Buffers.html" accesskey="p" rel="prev">Buffers</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p> |