Compare commits

..

No commits in common. "gh-pages" and "master" have entirely different histories.

197 changed files with 3900 additions and 8711 deletions

17
.github/workflows/build.yml vendored Normal file
View file

@ -0,0 +1,17 @@
name: build
on: push
jobs:
build:
name: Build project
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install dependencies
run: sudo apt-get install -y meson libglfw3-dev libglew-dev libfreeimage-dev
- name: Meson Build
run: |
meson build
ninja -C build

23
.github/workflows/docs.yml vendored Normal file
View file

@ -0,0 +1,23 @@
name: docs
on:
push:
branches:
- master
jobs:
docs:
name: Build and deploy documentation
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Doxygen
run: sudo apt-get install -y doxygen graphviz
- name: Build documentation
run: doxygen Doxyfile
- name: Deploy documentation
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./doc/html

4
.gitignore vendored Normal file
View file

@ -0,0 +1,4 @@
*\~
.cache/
build/
doc/

View file

2494
Doxyfile Normal file

File diff suppressed because it is too large Load diff

29
LICENSE Normal file
View file

@ -0,0 +1,29 @@
BSD 3-Clause License
Copyright (c) 2021, Dimitri Lozeve
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

101
README.md Normal file
View file

@ -0,0 +1,101 @@
# ShaderTool
[![build](https://github.com/dlozeve/ShaderTool/actions/workflows/build.yml/badge.svg)](https://github.com/dlozeve/ShaderTool/actions/workflows/build.yml)
[![docs](https://github.com/dlozeve/ShaderTool/actions/workflows/docs.yml/badge.svg)](https://dlozeve.github.io/ShaderTool/)
Live tool for developing OpenGL shaders interactively.
![psychedelic bacteria](https://github.com/dlozeve/ShaderTool/blob/master/images/bacteria.png?raw=true) ![julia](https://github.com/dlozeve/ShaderTool/blob/master/images/julia.gif?raw=true)
I developed this small program to experiment with shaders locally, to
reproduce an experience like [Shadertoy](https://www.shadertoy.com/)
offline, with the ability to choose my own text editor. It was also a
good project to learn OpenGL development. For this reason, the code is
very minimal and should be fairly readable.
Additional features:
- Extensive logging (using the nice
[log.c](https://github.com/rxi/log.c) library)
- FPS tracking
- Reload shaders automatically on save (using
[inotify](https://man.archlinux.org/man/inotify.7))
- Save screenshot to a file
- Complete argument parsing with
[Argp](https://www.gnu.org/software/libc/manual/html_node/Argp.html)
- Full documentation with [Doxygen](https://www.doxygen.nl/index.html)
## Build
This project requires the [GLFW](https://www.glfw.org/),
[GLEW](http://glew.sourceforge.net/), and
[FreeImage](https://freeimage.sourceforge.io/) libraries. On a
Debian/Ubuntu system:
```sh
sudo apt-get install libglfw3-dev libglew-dev libfreeimage-dev
```
To build (with [Meson](https://mesonbuild.com/)):
```sh
meson build
ninja -C build
```
To build the documentation with
[Doxygen](https://www.doxygen.nl/index.html):
```sh
doxygen Doxyfile
```
The documentation is also available
[online](https://dlozeve.github.io/ShaderTool/).
## Usage
```
Usage: shadertool [OPTION...] SHADER
Compile and render the SHADER.
ShaderTool -- Live tool for developing OpenGL shaders interactively
-b, --buffer=FILE Source file of the buffer fragment shader
-r, --auto-reload Automatically reload on save
-s, -q, --silent, --quiet Don't produce any output
-v, --verbose Produce verbose output
-?, --help Give this help list
--usage Give a short usage message
-V, --version Print program version
```
For instance, to run the [mandelbrot](shaders/mandelbrot.frag) shader
with live reloading on save:
```sh
shadertool -r shaders/mandelbrot.frag
```
Keyboard shortcuts:
- `Escape` to quit
- `R` to reload the shaders
- `S` to save a screenshot to the current directory, in a file
`shadername_frame_date_time.png`
## Limitations
For now, the "buffer" shader (i.e. the additional shader that renders
in a texture in another framebuffer) does not work properly. I don't
understand exactly what's broken, but maybe I'll investigate it more
closely later. If you have any idea about what went wrong, don't
hesitate to notify me!
## References and other resources
- [LearnOpenGL](https://learnopengl.com/)
- [open.gl](https://open.gl/)
- [docs.gl](http://docs.gl/)
- [The Book of Shaders](https://thebookofshaders.com/)
- [glslViewer](https://github.com/patriciogonzalezvivo/glslViewer), a
much more complete project with similar aims
- [Shadertoy](https://www.shadertoy.com/)
- [smoothstep.io](https://smoothstep.io/)
- [webgl-noise](https://github.com/stegu/webgl-noise/), a collection
of reference implementations of noise functions, for use in shaders

View file

@ -1,78 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ShaderTool: README.md File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ShaderTool
&#160;<span id="projectnumber">0.1</span>
</div>
<div id="projectbrief">Live tool for developing OpenGL shaders interactively</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">README.md File Reference</div> </div>
</div><!--header-->
<div class="contents">
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

View file

@ -1,85 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ShaderTool: Data Structures</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ShaderTool
&#160;<span id="projectnumber">0.1</span>
</div>
<div id="projectbrief">Live tool for developing OpenGL shaders interactively</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">Data Structures</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory">
<table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structarguments.html" target="_self">arguments</a></td><td class="desc"></td></tr>
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structrenderer__state.html" target="_self">renderer_state</a></td><td class="desc"></td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structshader__state.html" target="_self">shader_state</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

BIN
bc_s.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 676 B

BIN
bdwn.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 B

View file

@ -1,95 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ShaderTool: Data Structure Index</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ShaderTool
&#160;<span id="projectnumber">0.1</span>
</div>
<div id="projectbrief">Live tool for developing OpenGL shaders interactively</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">Data Structure Index</div> </div>
</div><!--header-->
<div class="contents">
<div class="qindex"><a class="qindex" href="#letter_a">a</a>&#160;|&#160;<a class="qindex" href="#letter_r">r</a>&#160;|&#160;<a class="qindex" href="#letter_s">s</a></div>
<table class="classindex">
<tr><td rowspan="2" valign="bottom"><a name="letter_a"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;a&#160;&#160;</div></td></tr></table>
</td>
<td rowspan="2" valign="bottom"><a name="letter_r"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;r&#160;&#160;</div></td></tr></table>
</td>
<td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;s&#160;&#160;</div></td></tr></table>
</td>
<td></td></tr>
<tr><td></td></tr>
<tr><td valign="top"><a class="el" href="structarguments.html">arguments</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structrenderer__state.html">renderer_state</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structshader__state.html">shader_state</a>&#160;&#160;&#160;</td>
<td></td></tr>
<tr><td></td><td></td><td></td><td></td></tr>
</table>
<div class="qindex"><a class="qindex" href="#letter_a">a</a>&#160;|&#160;<a class="qindex" href="#letter_r">r</a>&#160;|&#160;<a class="qindex" href="#letter_s">s</a></div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

View file

@ -1,100 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ShaderTool: src Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ShaderTool
&#160;<span id="projectnumber">0.1</span>
</div>
<div id="projectbrief">Live tool for developing OpenGL shaders interactively</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">src Directory Reference</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
Files</h2></td></tr>
<tr class="memitem:io_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="io_8c.html">io.c</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:io_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="io_8h.html">io.h</a> <a href="io_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:main_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8c.html">main.c</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:renderer_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="renderer_8c.html">renderer.c</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:renderer_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="renderer_8h.html">renderer.h</a> <a href="renderer_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:shaders_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="shaders_8c.html">shaders.c</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:shaders_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="shaders_8h.html">shaders.h</a> <a href="shaders_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

BIN
doc.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 746 B

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

View file

@ -1,120 +0,0 @@
/*
@licstart The following is the entire license notice for the
JavaScript code in this file.
Copyright (C) 1997-2017 by Dimitri van Heesch
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
@licend The above is the entire license notice
for the JavaScript code in this file
*/
function toggleVisibility(linkObj)
{
var base = $(linkObj).attr('id');
var summary = $('#'+base+'-summary');
var content = $('#'+base+'-content');
var trigger = $('#'+base+'-trigger');
var src=$(trigger).attr('src');
if (content.is(':visible')===true) {
content.hide();
summary.show();
$(linkObj).addClass('closed').removeClass('opened');
$(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
} else {
content.show();
summary.hide();
$(linkObj).removeClass('closed').addClass('opened');
$(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
}
return false;
}
function updateStripes()
{
$('table.directory tr').
removeClass('even').filter(':visible:even').addClass('even');
}
function toggleLevel(level)
{
$('table.directory tr').each(function() {
var l = this.id.split('_').length-1;
var i = $('#img'+this.id.substring(3));
var a = $('#arr'+this.id.substring(3));
if (l<level+1) {
i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
a.html('&#9660;');
$(this).show();
} else if (l==level+1) {
i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
a.html('&#9658;');
$(this).show();
} else {
$(this).hide();
}
});
updateStripes();
}
function toggleFolder(id)
{
// the clicked row
var currentRow = $('#row_'+id);
// all rows after the clicked row
var rows = currentRow.nextAll("tr");
var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
// only match elements AFTER this one (can't hide elements before)
var childRows = rows.filter(function() { return this.id.match(re); });
// first row is visible we are HIDING
if (childRows.filter(':first').is(':visible')===true) {
// replace down arrow by right arrow for current row
var currentRowSpans = currentRow.find("span");
currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
currentRowSpans.filter(".arrow").html('&#9658;');
rows.filter("[id^=row_"+id+"]").hide(); // hide all children
} else { // we are SHOWING
// replace right arrow by down arrow for current row
var currentRowSpans = currentRow.find("span");
currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
currentRowSpans.filter(".arrow").html('&#9660;');
// replace down arrows by right arrows for child rows
var childRowsSpans = childRows.find("span");
childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
childRowsSpans.filter(".arrow").html('&#9658;');
childRows.show(); //show all children
}
updateStripes();
}
function toggleInherit(id)
{
var rows = $('tr.inherit.'+id);
var img = $('tr.inherit_header.'+id+' img');
var src = $(img).attr('src');
if (rows.filter(':first').is(':visible')===true) {
rows.css('display','none');
$(img).attr('src',src.substring(0,src.length-8)+'closed.png');
} else {
rows.css('display','table-row'); // using show() causes jump in firefox
$(img).attr('src',src.substring(0,src.length-10)+'open.png');
}
}
/* @license-end */

View file

@ -1,90 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ShaderTool: File List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ShaderTool
&#160;<span id="projectnumber">0.1</span>
</div>
<div id="projectbrief">Live tool for developing OpenGL shaders interactively</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">File List</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all files with brief descriptions:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span id="img_0_" class="iconfopen" onclick="toggleFolder('0_')">&#160;</span><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html" target="_self">src</a></td><td class="desc"></td></tr>
<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="io_8c.html" target="_self">io.c</a></td><td class="desc"></td></tr>
<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="io_8h_source.html"><span class="icondoc"></span></a><a class="el" href="io_8h.html" target="_self">io.h</a></td><td class="desc"></td></tr>
<tr id="row_0_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="main_8c.html" target="_self">main.c</a></td><td class="desc"></td></tr>
<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="renderer_8c.html" target="_self">renderer.c</a></td><td class="desc"></td></tr>
<tr id="row_0_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="renderer_8h_source.html"><span class="icondoc"></span></a><a class="el" href="renderer_8h.html" target="_self">renderer.h</a></td><td class="desc"></td></tr>
<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="shaders_8c.html" target="_self">shaders.c</a></td><td class="desc"></td></tr>
<tr id="row_0_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="shaders_8h_source.html"><span class="icondoc"></span></a><a class="el" href="shaders_8h.html" target="_self">shaders.h</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 616 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 597 B

View file

@ -1,130 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ShaderTool: Data Fields</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ShaderTool
&#160;<span id="projectnumber">0.1</span>
</div>
<div id="projectbrief">Live tool for developing OpenGL shaders interactively</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
<div class="textblock">Here is a list of all struct and union fields with links to the structures/unions they belong to:</div><ul>
<li>autoreload
: <a class="el" href="structarguments.html#aef0b289368d537231ead5d0e1e2c703f">arguments</a>
</li>
<li>buffer_file
: <a class="el" href="structarguments.html#a89b6196d0bc9b0d599ac3560af62a0e7">arguments</a>
</li>
<li>buffer_shader
: <a class="el" href="structrenderer__state.html#a39726f9047174897d3cd54bf34f0c918">renderer_state</a>
</li>
<li>filename
: <a class="el" href="structshader__state.html#a4a39bb26de28029c609c6c2c3dbf92fc">shader_state</a>
</li>
<li>frame_count
: <a class="el" href="structrenderer__state.html#ab6592afba4a3b9fcc76eb5853b9fecb3">renderer_state</a>
</li>
<li>framebuffer
: <a class="el" href="structrenderer__state.html#a36c3b08d88805a322c446a42f09a9e92">renderer_state</a>
</li>
<li>inotify_fd
: <a class="el" href="structrenderer__state.html#a36edaf5f4fdce89e7dc3a1d47cf96795">renderer_state</a>
</li>
<li>prev_frame_count
: <a class="el" href="structrenderer__state.html#a823e5fe4cf25de6572b02c4278f24a47">renderer_state</a>
</li>
<li>prev_time
: <a class="el" href="structrenderer__state.html#a774cdc17c1ec071da811f56ffd4e090b">renderer_state</a>
</li>
<li>program
: <a class="el" href="structshader__state.html#a585871ab45d0a6f6b0f5bacbccce0896">shader_state</a>
</li>
<li>screen_shader
: <a class="el" href="structrenderer__state.html#a20e2c1fbe9446676f4cce1b56f501585">renderer_state</a>
</li>
<li>shader_file
: <a class="el" href="structarguments.html#aede36bf225cf550bf4aa3b6f55c446de">arguments</a>
</li>
<li>silent
: <a class="el" href="structarguments.html#ab860c7ee6240047cfce0a2d3589cb53e">arguments</a>
</li>
<li>texture_color_buffer
: <a class="el" href="structrenderer__state.html#af738cddb5b77a8d8cf765d98953f8b1d">renderer_state</a>
</li>
<li>time
: <a class="el" href="structrenderer__state.html#ab0eb1b70130c2abfed2e2366390ca20f">renderer_state</a>
</li>
<li>verbose
: <a class="el" href="structarguments.html#a45d8ecff22a65388fc343eeda3c2dbee">arguments</a>
</li>
<li>wd
: <a class="el" href="structshader__state.html#a64eb6436823980d957e5fe2937b2779c">shader_state</a>
</li>
<li>window
: <a class="el" href="structrenderer__state.html#a66a324cf71a869d65347455d97f82d33">renderer_state</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

View file

@ -1,130 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ShaderTool: Data Fields - Variables</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ShaderTool
&#160;<span id="projectnumber">0.1</span>
</div>
<div id="projectbrief">Live tool for developing OpenGL shaders interactively</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
&#160;<ul>
<li>autoreload
: <a class="el" href="structarguments.html#aef0b289368d537231ead5d0e1e2c703f">arguments</a>
</li>
<li>buffer_file
: <a class="el" href="structarguments.html#a89b6196d0bc9b0d599ac3560af62a0e7">arguments</a>
</li>
<li>buffer_shader
: <a class="el" href="structrenderer__state.html#a39726f9047174897d3cd54bf34f0c918">renderer_state</a>
</li>
<li>filename
: <a class="el" href="structshader__state.html#a4a39bb26de28029c609c6c2c3dbf92fc">shader_state</a>
</li>
<li>frame_count
: <a class="el" href="structrenderer__state.html#ab6592afba4a3b9fcc76eb5853b9fecb3">renderer_state</a>
</li>
<li>framebuffer
: <a class="el" href="structrenderer__state.html#a36c3b08d88805a322c446a42f09a9e92">renderer_state</a>
</li>
<li>inotify_fd
: <a class="el" href="structrenderer__state.html#a36edaf5f4fdce89e7dc3a1d47cf96795">renderer_state</a>
</li>
<li>prev_frame_count
: <a class="el" href="structrenderer__state.html#a823e5fe4cf25de6572b02c4278f24a47">renderer_state</a>
</li>
<li>prev_time
: <a class="el" href="structrenderer__state.html#a774cdc17c1ec071da811f56ffd4e090b">renderer_state</a>
</li>
<li>program
: <a class="el" href="structshader__state.html#a585871ab45d0a6f6b0f5bacbccce0896">shader_state</a>
</li>
<li>screen_shader
: <a class="el" href="structrenderer__state.html#a20e2c1fbe9446676f4cce1b56f501585">renderer_state</a>
</li>
<li>shader_file
: <a class="el" href="structarguments.html#aede36bf225cf550bf4aa3b6f55c446de">arguments</a>
</li>
<li>silent
: <a class="el" href="structarguments.html#ab860c7ee6240047cfce0a2d3589cb53e">arguments</a>
</li>
<li>texture_color_buffer
: <a class="el" href="structrenderer__state.html#af738cddb5b77a8d8cf765d98953f8b1d">renderer_state</a>
</li>
<li>time
: <a class="el" href="structrenderer__state.html#ab0eb1b70130c2abfed2e2366390ca20f">renderer_state</a>
</li>
<li>verbose
: <a class="el" href="structarguments.html#a45d8ecff22a65388fc343eeda3c2dbee">arguments</a>
</li>
<li>wd
: <a class="el" href="structshader__state.html#a64eb6436823980d957e5fe2937b2779c">shader_state</a>
</li>
<li>window
: <a class="el" href="structrenderer__state.html#a66a324cf71a869d65347455d97f82d33">renderer_state</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

View file

@ -1,137 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ShaderTool: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ShaderTool
&#160;<span id="projectnumber">0.1</span>
</div>
<div id="projectbrief">Live tool for developing OpenGL shaders interactively</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div><ul>
<li>argp_program_bug_address
: <a class="el" href="main_8c.html#aaa037e59f26a80a8a2e35e6f2364004d">main.c</a>
</li>
<li>argp_program_version
: <a class="el" href="main_8c.html#a62f73ea01c816f1996aed4c66f57c4fb">main.c</a>
</li>
<li>basename_without_suffix()
: <a class="el" href="io_8c.html#a04487b3f64fdc93c3ce0037ca16cbff0">io.c</a>
, <a class="el" href="io_8h.html#a04487b3f64fdc93c3ce0037ca16cbff0">io.h</a>
</li>
<li>BUF_LEN
: <a class="el" href="io_8c.html#a8b5839f71a3b6e7d64b2d5e9967e3dd1">io.c</a>
</li>
<li>capture_screenshot()
: <a class="el" href="io_8c.html#a3055c0f3882078342855d3eae628c488">io.c</a>
, <a class="el" href="io_8h.html#a3055c0f3882078342855d3eae628c488">io.h</a>
</li>
<li>compile_shaders()
: <a class="el" href="shaders_8c.html#a199bc15d3bf9a2b6948bfbf44e90652c">shaders.c</a>
, <a class="el" href="shaders_8h.html#a199bc15d3bf9a2b6948bfbf44e90652c">shaders.h</a>
</li>
<li>framebuffer_size_callback()
: <a class="el" href="renderer_8c.html#a5180f7bf2b71421af837035824a8c8ac">renderer.c</a>
, <a class="el" href="renderer_8h.html#a5180f7bf2b71421af837035824a8c8ac">renderer.h</a>
</li>
<li>initialize_framebuffer()
: <a class="el" href="renderer_8c.html#a5d8bc1fbae1bbe4bd2e70c9b645875ab">renderer.c</a>
, <a class="el" href="renderer_8h.html#a5d8bc1fbae1bbe4bd2e70c9b645875ab">renderer.h</a>
</li>
<li>initialize_shaders()
: <a class="el" href="shaders_8c.html#af837a2c5bab4e34d763335c71a4b8a12">shaders.c</a>
, <a class="el" href="shaders_8h.html#a58c13f6719bcad0be93367257facb2d8">shaders.h</a>
</li>
<li>initialize_vertices()
: <a class="el" href="renderer_8c.html#a934ec25611d153f2e7f357573ade2061">renderer.c</a>
, <a class="el" href="renderer_8h.html#a934ec25611d153f2e7f357573ade2061">renderer.h</a>
</li>
<li>initialize_window()
: <a class="el" href="renderer_8c.html#a906b1457eeeaa2d7a9655343af151f66">renderer.c</a>
, <a class="el" href="renderer_8h.html#a906b1457eeeaa2d7a9655343af151f66">renderer.h</a>
</li>
<li>main()
: <a class="el" href="main_8c.html#a0ddf1224851353fc92bfbff6f499fa97">main.c</a>
</li>
<li>process_input()
: <a class="el" href="io_8c.html#a526d50cc66c2573b2e5b96c7256e9fae">io.c</a>
, <a class="el" href="io_8h.html#a526d50cc66c2573b2e5b96c7256e9fae">io.h</a>
</li>
<li>read_file()
: <a class="el" href="shaders_8c.html#abf2fc422517537eba9784a4cb7ecab69">shaders.c</a>
, <a class="el" href="shaders_8h.html#abf2fc422517537eba9784a4cb7ecab69">shaders.h</a>
</li>
<li>UNUSED
: <a class="el" href="renderer_8c.html#aa2c1c2787f4fc780b0a902fc66d5c3ce">renderer.c</a>
</li>
<li>WINDOW_HEIGHT
: <a class="el" href="main_8c.html#a5473cf64fa979b48335079c99532e243">main.c</a>
</li>
<li>WINDOW_WIDTH
: <a class="el" href="main_8c.html#a498d9f026138406895e9a34b504ac6a6">main.c</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

View file

@ -1,88 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ShaderTool: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ShaderTool
&#160;<span id="projectnumber">0.1</span>
</div>
<div id="projectbrief">Live tool for developing OpenGL shaders interactively</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
&#160;<ul>
<li>BUF_LEN
: <a class="el" href="io_8c.html#a8b5839f71a3b6e7d64b2d5e9967e3dd1">io.c</a>
</li>
<li>UNUSED
: <a class="el" href="renderer_8c.html#aa2c1c2787f4fc780b0a902fc66d5c3ce">renderer.c</a>
</li>
<li>WINDOW_HEIGHT
: <a class="el" href="main_8c.html#a5473cf64fa979b48335079c99532e243">main.c</a>
</li>
<li>WINDOW_WIDTH
: <a class="el" href="main_8c.html#a498d9f026138406895e9a34b504ac6a6">main.c</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

View file

@ -1,119 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ShaderTool: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ShaderTool
&#160;<span id="projectnumber">0.1</span>
</div>
<div id="projectbrief">Live tool for developing OpenGL shaders interactively</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
&#160;<ul>
<li>basename_without_suffix()
: <a class="el" href="io_8c.html#a04487b3f64fdc93c3ce0037ca16cbff0">io.c</a>
, <a class="el" href="io_8h.html#a04487b3f64fdc93c3ce0037ca16cbff0">io.h</a>
</li>
<li>capture_screenshot()
: <a class="el" href="io_8c.html#a3055c0f3882078342855d3eae628c488">io.c</a>
, <a class="el" href="io_8h.html#a3055c0f3882078342855d3eae628c488">io.h</a>
</li>
<li>compile_shaders()
: <a class="el" href="shaders_8c.html#a199bc15d3bf9a2b6948bfbf44e90652c">shaders.c</a>
, <a class="el" href="shaders_8h.html#a199bc15d3bf9a2b6948bfbf44e90652c">shaders.h</a>
</li>
<li>framebuffer_size_callback()
: <a class="el" href="renderer_8c.html#a5180f7bf2b71421af837035824a8c8ac">renderer.c</a>
, <a class="el" href="renderer_8h.html#a5180f7bf2b71421af837035824a8c8ac">renderer.h</a>
</li>
<li>initialize_framebuffer()
: <a class="el" href="renderer_8c.html#a5d8bc1fbae1bbe4bd2e70c9b645875ab">renderer.c</a>
, <a class="el" href="renderer_8h.html#a5d8bc1fbae1bbe4bd2e70c9b645875ab">renderer.h</a>
</li>
<li>initialize_shaders()
: <a class="el" href="shaders_8h.html#a58c13f6719bcad0be93367257facb2d8">shaders.h</a>
, <a class="el" href="shaders_8c.html#af837a2c5bab4e34d763335c71a4b8a12">shaders.c</a>
</li>
<li>initialize_vertices()
: <a class="el" href="renderer_8c.html#a934ec25611d153f2e7f357573ade2061">renderer.c</a>
, <a class="el" href="renderer_8h.html#a934ec25611d153f2e7f357573ade2061">renderer.h</a>
</li>
<li>initialize_window()
: <a class="el" href="renderer_8h.html#a906b1457eeeaa2d7a9655343af151f66">renderer.h</a>
, <a class="el" href="renderer_8c.html#a906b1457eeeaa2d7a9655343af151f66">renderer.c</a>
</li>
<li>main()
: <a class="el" href="main_8c.html#a0ddf1224851353fc92bfbff6f499fa97">main.c</a>
</li>
<li>process_input()
: <a class="el" href="io_8c.html#a526d50cc66c2573b2e5b96c7256e9fae">io.c</a>
, <a class="el" href="io_8h.html#a526d50cc66c2573b2e5b96c7256e9fae">io.h</a>
</li>
<li>read_file()
: <a class="el" href="shaders_8c.html#abf2fc422517537eba9784a4cb7ecab69">shaders.c</a>
, <a class="el" href="shaders_8h.html#abf2fc422517537eba9784a4cb7ecab69">shaders.h</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

View file

@ -1,82 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ShaderTool: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ShaderTool
&#160;<span id="projectnumber">0.1</span>
</div>
<div id="projectbrief">Live tool for developing OpenGL shaders interactively</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
&#160;<ul>
<li>argp_program_bug_address
: <a class="el" href="main_8c.html#aaa037e59f26a80a8a2e35e6f2364004d">main.c</a>
</li>
<li>argp_program_version
: <a class="el" href="main_8c.html#a62f73ea01c816f1996aed4c66f57c4fb">main.c</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

View file

@ -1,138 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ShaderTool: Graph Legend</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ShaderTool
&#160;<span id="projectnumber">0.1</span>
</div>
<div id="projectbrief">Live tool for developing OpenGL shaders interactively</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">Graph Legend</div> </div>
</div><!--header-->
<div class="contents">
<p>This page explains how to interpret the graphs that are generated by doxygen.</p>
<p>Consider the following example: </p><div class="fragment"><div class="line"><span class="comment">/*! Invisible class because of truncation */</span></div>
<div class="line"><span class="keyword">class </span>Invisible { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! Truncated class, inheritance relation is hidden */</span></div>
<div class="line"><span class="keyword">class </span>Truncated : <span class="keyword">public</span> Invisible { };</div>
<div class="line"> </div>
<div class="line"><span class="comment">/* Class not documented with doxygen comments */</span></div>
<div class="line"><span class="keyword">class </span>Undocumented { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! Class that is inherited using public inheritance */</span></div>
<div class="line"><span class="keyword">class </span>PublicBase : <span class="keyword">public</span> Truncated { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! A template class */</span></div>
<div class="line"><span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt; <span class="keyword">class </span>Templ { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! Class that is inherited using protected inheritance */</span></div>
<div class="line"><span class="keyword">class </span>ProtectedBase { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! Class that is inherited using private inheritance */</span></div>
<div class="line"><span class="keyword">class </span>PrivateBase { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! Class that is used by the Inherited class */</span></div>
<div class="line"><span class="keyword">class </span>Used { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! Super class that inherits a number of other classes */</span></div>
<div class="line"><span class="keyword">class </span>Inherited : <span class="keyword">public</span> PublicBase,</div>
<div class="line"> <span class="keyword">protected</span> ProtectedBase,</div>
<div class="line"> <span class="keyword">private</span> PrivateBase,</div>
<div class="line"> <span class="keyword">public</span> Undocumented,</div>
<div class="line"> <span class="keyword">public</span> Templ&lt;int&gt;</div>
<div class="line">{</div>
<div class="line"> <span class="keyword">private</span>:</div>
<div class="line"> Used *m_usedClass;</div>
<div class="line">};</div>
</div><!-- fragment --><p> This will result in the following graph:</p>
<center><img src="graph_legend.png" alt="" class="inline"/></center><p>The boxes in the above graph have the following meaning: </p>
<ul>
<li>
A filled gray box represents the struct or class for which the graph is generated. </li>
<li>
A box with a black border denotes a documented struct or class. </li>
<li>
A box with a gray border denotes an undocumented struct or class. </li>
<li>
A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries. </li>
</ul>
<p>The arrows have the following meaning: </p>
<ul>
<li>
A dark blue arrow is used to visualize a public inheritance relation between two classes. </li>
<li>
A dark green arrow is used for protected inheritance. </li>
<li>
A dark red arrow is used for private inheritance. </li>
<li>
A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible. </li>
<li>
A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance. </li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

View file

@ -1 +0,0 @@
f51bf6e9a10430aafef59831b08dcbfe

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

BIN
images/bacteria.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

BIN
images/julia.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 MiB

View file

@ -1,130 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ShaderTool: ShaderTool</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ShaderTool
&#160;<span id="projectnumber">0.1</span>
</div>
<div id="projectbrief">Live tool for developing OpenGL shaders interactively</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="PageDoc"><div class="header">
<div class="headertitle">
<div class="title">ShaderTool </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p><a href="https://github.com/dlozeve/ShaderTool/actions/workflows/build.yml"><object type="image/svg+xml" data="https://github.com/dlozeve/ShaderTool/actions/workflows/build.yml/badge.svg" style="pointer-events: none;">build</object></a> <a href="https://dlozeve.github.io/ShaderTool/"><object type="image/svg+xml" data="https://github.com/dlozeve/ShaderTool/actions/workflows/docs.yml/badge.svg" style="pointer-events: none;">docs</object></a></p>
<p>Live tool for developing OpenGL shaders interactively.</p>
<p><img src="https://github.com/dlozeve/ShaderTool/blob/master/images/bacteria.png?raw=true" alt="psychedelic bacteria" class="inline"/> <img src="https://github.com/dlozeve/ShaderTool/blob/master/images/julia.gif?raw=true" alt="julia" class="inline"/></p>
<p>I developed this small program to experiment with shaders locally, to reproduce an experience like <a href="https://www.shadertoy.com/">Shadertoy</a> offline, with the ability to choose my own text editor. It was also a good project to learn OpenGL development. For this reason, the code is very minimal and should be fairly readable.</p>
<p>Additional features:</p>
<ul>
<li>Extensive logging (using the nice <a href="https://github.com/rxi/log.c">log.c</a> library)</li>
<li>FPS tracking</li>
<li>Reload shaders automatically on save (using <a href="https://man.archlinux.org/man/inotify.7">inotify</a>)</li>
<li>Save screenshot to a file</li>
<li>Complete argument parsing with <a href="https://www.gnu.org/software/libc/manual/html_node/Argp.html">Argp</a></li>
<li>Full documentation with <a href="https://www.doxygen.nl/index.html">Doxygen</a></li>
</ul>
<h1>Build</h1>
<p>This project requires the <a href="https://www.glfw.org/">GLFW</a>, <a href="http://glew.sourceforge.net/">GLEW</a>, and <a href="https://freeimage.sourceforge.io/">FreeImage</a> libraries. On a Debian/Ubuntu system: </p><div class="fragment"><div class="line">sudo apt-get install libglfw3-dev libglew-dev libfreeimage-dev</div>
</div><!-- fragment --><p>To build (with <a href="https://mesonbuild.com/">Meson</a>): </p><div class="fragment"><div class="line">meson build</div>
<div class="line">ninja -C build</div>
</div><!-- fragment --><p>To build the documentation with <a href="https://www.doxygen.nl/index.html">Doxygen</a>: </p><div class="fragment"><div class="line">doxygen Doxyfile</div>
</div><!-- fragment --><p>The documentation is also available <a href="https://dlozeve.github.io/ShaderTool/">online</a>.</p>
<h1>Usage</h1>
<div class="fragment"><div class="line">Usage: shadertool [OPTION...] SHADER</div>
<div class="line"> Compile and render the SHADER.</div>
<div class="line">ShaderTool -- Live tool for developing OpenGL shaders interactively</div>
<div class="line"> </div>
<div class="line"> -b, --buffer=FILE Source file of the buffer fragment shader</div>
<div class="line"> -r, --auto-reload Automatically reload on save</div>
<div class="line"> -s, -q, --silent, --quiet Don&#39;t produce any output</div>
<div class="line"> -v, --verbose Produce verbose output</div>
<div class="line"> -?, --help Give this help list</div>
<div class="line"> --usage Give a short usage message</div>
<div class="line"> -V, --version Print program version</div>
</div><!-- fragment --><p>For instance, to run the <a href="shaders/mandelbrot.frag">mandelbrot</a> shader with live reloading on save: </p><div class="fragment"><div class="line">shadertool -r shaders/mandelbrot.frag</div>
</div><!-- fragment --><p>Keyboard shortcuts:</p>
<ul>
<li><code>Escape</code> to quit</li>
<li><code>R</code> to reload the shaders</li>
<li><code>S</code> to save a screenshot to the current directory, in a file <code>shadername_frame_date_time.png</code></li>
</ul>
<h1>Limitations</h1>
<p>For now, the "buffer" shader (i.e. the additional shader that renders in a texture in another framebuffer) does not work properly. I don't understand exactly what's broken, but maybe I'll investigate it more closely later. If you have any idea about what went wrong, don't hesitate to notify me!</p>
<h1>References and other resources</h1>
<ul>
<li><a href="https://learnopengl.com/">LearnOpenGL</a></li>
<li><a href="https://open.gl/">open.gl</a></li>
<li><a href="http://docs.gl/">docs.gl</a></li>
<li><a href="https://thebookofshaders.com/">The Book of Shaders</a></li>
<li><a href="https://github.com/patriciogonzalezvivo/glslViewer">glslViewer</a>, a much more complete project with similar aims</li>
<li><a href="https://www.shadertoy.com/">Shadertoy</a></li>
<li><a href="https://smoothstep.io/">smoothstep.io</a></li>
<li><a href="https://github.com/stegu/webgl-noise/">webgl-noise</a>, a collection of reference implementations of noise functions, for use in shaders </li>
</ul>
</div></div><!-- PageDoc -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

View file

@ -1,230 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ShaderTool: src/io.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ShaderTool
&#160;<span id="projectnumber">0.1</span>
</div>
<div id="projectbrief">Live tool for developing OpenGL shaders interactively</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">io.c File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;FreeImage.h&gt;</code><br />
<code>#include &lt;errno.h&gt;</code><br />
<code>#include &lt;libgen.h&gt;</code><br />
<code>#include &lt;stdlib.h&gt;</code><br />
<code>#include &lt;string.h&gt;</code><br />
<code>#include &lt;sys/inotify.h&gt;</code><br />
<code>#include &lt;time.h&gt;</code><br />
<code>#include &lt;unistd.h&gt;</code><br />
<code>#include &quot;log.h&quot;</code><br />
<code>#include &quot;<a class="el" href="renderer_8h_source.html">renderer.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="shaders_8h_source.html">shaders.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for io.c:</div>
<div class="dyncontent">
<div class="center"><img src="io_8c__incl.png" border="0" usemap="#src_2io_8c" alt=""/></div>
<map name="src_2io_8c" id="src_2io_8c">
<area shape="rect" title=" " alt="" coords="529,5,597,32"/>
<area shape="rect" title=" " alt="" coords="5,80,108,107"/>
<area shape="rect" title=" " alt="" coords="132,80,200,107"/>
<area shape="rect" title=" " alt="" coords="225,80,299,107"/>
<area shape="rect" title=" " alt="" coords="324,80,395,107"/>
<area shape="rect" title=" " alt="" coords="419,80,489,107"/>
<area shape="rect" title=" " alt="" coords="514,80,613,107"/>
<area shape="rect" title=" " alt="" coords="637,80,701,107"/>
<area shape="rect" title=" " alt="" coords="725,80,799,107"/>
<area shape="rect" title=" " alt="" coords="824,80,879,107"/>
<area shape="rect" href="renderer_8h.html" title=" " alt="" coords="913,155,1001,181"/>
<area shape="rect" href="shaders_8h.html" title=" " alt="" coords="954,80,1039,107"/>
<area shape="rect" title=" " alt="" coords="901,229,1012,256"/>
</map>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a8b5839f71a3b6e7d64b2d5e9967e3dd1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="io_8c.html#a8b5839f71a3b6e7d64b2d5e9967e3dd1">BUF_LEN</a>&#160;&#160;&#160;(10 * (sizeof(struct inotify_event) + 1))</td></tr>
<tr class="separator:a8b5839f71a3b6e7d64b2d5e9967e3dd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a04487b3f64fdc93c3ce0037ca16cbff0"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="io_8c.html#a04487b3f64fdc93c3ce0037ca16cbff0">basename_without_suffix</a> (const char *filename)</td></tr>
<tr class="memdesc:a04487b3f64fdc93c3ce0037ca16cbff0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the file name without the leading directories and without the extension. <a href="io_8c.html#a04487b3f64fdc93c3ce0037ca16cbff0">More...</a><br /></td></tr>
<tr class="separator:a04487b3f64fdc93c3ce0037ca16cbff0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3055c0f3882078342855d3eae628c488"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="io_8c.html#a3055c0f3882078342855d3eae628c488">capture_screenshot</a> (struct <a class="el" href="structrenderer__state.html">renderer_state</a> *state)</td></tr>
<tr class="memdesc:a3055c0f3882078342855d3eae628c488"><td class="mdescLeft">&#160;</td><td class="mdescRight">Capture a screenshot of the current window. <a href="io_8c.html#a3055c0f3882078342855d3eae628c488">More...</a><br /></td></tr>
<tr class="separator:a3055c0f3882078342855d3eae628c488"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a526d50cc66c2573b2e5b96c7256e9fae"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="io_8c.html#a526d50cc66c2573b2e5b96c7256e9fae">process_input</a> (struct <a class="el" href="structrenderer__state.html">renderer_state</a> *state)</td></tr>
<tr class="memdesc:a526d50cc66c2573b2e5b96c7256e9fae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensure the window is closed when the user presses the escape key. <a href="io_8c.html#a526d50cc66c2573b2e5b96c7256e9fae">More...</a><br /></td></tr>
<tr class="separator:a526d50cc66c2573b2e5b96c7256e9fae"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a8b5839f71a3b6e7d64b2d5e9967e3dd1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8b5839f71a3b6e7d64b2d5e9967e3dd1">&#9670;&nbsp;</a></span>BUF_LEN</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define BUF_LEN&#160;&#160;&#160;(10 * (sizeof(struct inotify_event) + 1))</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="a04487b3f64fdc93c3ce0037ca16cbff0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a04487b3f64fdc93c3ce0037ca16cbff0">&#9670;&nbsp;</a></span>basename_without_suffix()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* basename_without_suffix </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>filename</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the file name without the leading directories and without the extension. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">filename</td><td>The original filename. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A newly allocated string containing the output of basename(3) without the extension. </dd></dl>
</div>
</div>
<a id="a3055c0f3882078342855d3eae628c488"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3055c0f3882078342855d3eae628c488">&#9670;&nbsp;</a></span>capture_screenshot()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void capture_screenshot </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structrenderer__state.html">renderer_state</a> *&#160;</td>
<td class="paramname"><em>state</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Capture a screenshot of the current window. </p>
<p>Takes the dimensions of the viewport to save a pixel array of the same dimensions. Uses FreeImage to create an image from the raw pixels and save it to disk.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">state</td><td>The renderer state, needed to get the name of the current shader and the frame count. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a526d50cc66c2573b2e5b96c7256e9fae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a526d50cc66c2573b2e5b96c7256e9fae">&#9670;&nbsp;</a></span>process_input()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void process_input </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structrenderer__state.html">renderer_state</a> *&#160;</td>
<td class="paramname"><em>state</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Ensure the window is closed when the user presses the escape key. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">state</td><td>The current state of the renderer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

View file

@ -1,15 +0,0 @@
<map id="src/io.c" name="src/io.c">
<area shape="rect" id="node1" title=" " alt="" coords="529,5,597,32"/>
<area shape="rect" id="node2" title=" " alt="" coords="5,80,108,107"/>
<area shape="rect" id="node3" title=" " alt="" coords="132,80,200,107"/>
<area shape="rect" id="node4" title=" " alt="" coords="225,80,299,107"/>
<area shape="rect" id="node5" title=" " alt="" coords="324,80,395,107"/>
<area shape="rect" id="node6" title=" " alt="" coords="419,80,489,107"/>
<area shape="rect" id="node7" title=" " alt="" coords="514,80,613,107"/>
<area shape="rect" id="node8" title=" " alt="" coords="637,80,701,107"/>
<area shape="rect" id="node9" title=" " alt="" coords="725,80,799,107"/>
<area shape="rect" id="node10" title=" " alt="" coords="824,80,879,107"/>
<area shape="rect" id="node11" href="$renderer_8h.html" title=" " alt="" coords="913,155,1001,181"/>
<area shape="rect" id="node13" href="$shaders_8h.html" title=" " alt="" coords="954,80,1039,107"/>
<area shape="rect" id="node12" title=" " alt="" coords="901,229,1012,256"/>
</map>

View file

@ -1 +0,0 @@
30af8ba7fb5c46185d62bb3935ee2b20

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

View file

@ -1,200 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ShaderTool: src/io.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ShaderTool
&#160;<span id="projectnumber">0.1</span>
</div>
<div id="projectbrief">Live tool for developing OpenGL shaders interactively</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">io.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="renderer_8h_source.html">renderer.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for io.h:</div>
<div class="dyncontent">
<div class="center"><img src="io_8h__incl.png" border="0" usemap="#src_2io_8h" alt=""/></div>
<map name="src_2io_8h" id="src_2io_8h">
<area shape="rect" title=" " alt="" coords="26,5,95,32"/>
<area shape="rect" href="renderer_8h.html" title=" " alt="" coords="17,80,105,107"/>
<area shape="rect" title=" " alt="" coords="5,155,116,181"/>
</map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="io_8h__dep__incl.png" border="0" usemap="#src_2io_8hdep" alt=""/></div>
<map name="src_2io_8hdep" id="src_2io_8hdep">
<area shape="rect" title=" " alt="" coords="15,5,85,32"/>
<area shape="rect" href="main_8c.html" title=" " alt="" coords="5,80,95,107"/>
</map>
</div>
</div>
<p><a href="io_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a04487b3f64fdc93c3ce0037ca16cbff0"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="io_8h.html#a04487b3f64fdc93c3ce0037ca16cbff0">basename_without_suffix</a> (const char *filename)</td></tr>
<tr class="memdesc:a04487b3f64fdc93c3ce0037ca16cbff0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the file name without the leading directories and without the extension. <a href="io_8h.html#a04487b3f64fdc93c3ce0037ca16cbff0">More...</a><br /></td></tr>
<tr class="separator:a04487b3f64fdc93c3ce0037ca16cbff0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3055c0f3882078342855d3eae628c488"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="io_8h.html#a3055c0f3882078342855d3eae628c488">capture_screenshot</a> (struct <a class="el" href="structrenderer__state.html">renderer_state</a> *state)</td></tr>
<tr class="memdesc:a3055c0f3882078342855d3eae628c488"><td class="mdescLeft">&#160;</td><td class="mdescRight">Capture a screenshot of the current window. <a href="io_8h.html#a3055c0f3882078342855d3eae628c488">More...</a><br /></td></tr>
<tr class="separator:a3055c0f3882078342855d3eae628c488"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a526d50cc66c2573b2e5b96c7256e9fae"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="io_8h.html#a526d50cc66c2573b2e5b96c7256e9fae">process_input</a> (struct <a class="el" href="structrenderer__state.html">renderer_state</a> *state)</td></tr>
<tr class="memdesc:a526d50cc66c2573b2e5b96c7256e9fae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensure the window is closed when the user presses the escape key. <a href="io_8h.html#a526d50cc66c2573b2e5b96c7256e9fae">More...</a><br /></td></tr>
<tr class="separator:a526d50cc66c2573b2e5b96c7256e9fae"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="a04487b3f64fdc93c3ce0037ca16cbff0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a04487b3f64fdc93c3ce0037ca16cbff0">&#9670;&nbsp;</a></span>basename_without_suffix()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* basename_without_suffix </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>filename</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the file name without the leading directories and without the extension. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">filename</td><td>The original filename. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A newly allocated string containing the output of basename(3) without the extension. </dd></dl>
</div>
</div>
<a id="a3055c0f3882078342855d3eae628c488"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3055c0f3882078342855d3eae628c488">&#9670;&nbsp;</a></span>capture_screenshot()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void capture_screenshot </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structrenderer__state.html">renderer_state</a> *&#160;</td>
<td class="paramname"><em>state</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Capture a screenshot of the current window. </p>
<p>Takes the dimensions of the viewport to save a pixel array of the same dimensions. Uses FreeImage to create an image from the raw pixels and save it to disk.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">state</td><td>The renderer state, needed to get the name of the current shader and the frame count. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a526d50cc66c2573b2e5b96c7256e9fae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a526d50cc66c2573b2e5b96c7256e9fae">&#9670;&nbsp;</a></span>process_input()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void process_input </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structrenderer__state.html">renderer_state</a> *&#160;</td>
<td class="paramname"><em>state</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Ensure the window is closed when the user presses the escape key. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">state</td><td>The current state of the renderer. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

View file

@ -1,4 +0,0 @@
<map id="src/io.h" name="src/io.h">
<area shape="rect" id="node1" title=" " alt="" coords="15,5,85,32"/>
<area shape="rect" id="node2" href="$main_8c.html" title=" " alt="" coords="5,80,95,107"/>
</map>

View file

@ -1 +0,0 @@
6e4e26dd0fcdd693f557496bdd2793c7

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

View file

@ -1,5 +0,0 @@
<map id="src/io.h" name="src/io.h">
<area shape="rect" id="node1" title=" " alt="" coords="26,5,95,32"/>
<area shape="rect" id="node2" href="$renderer_8h.html" title=" " alt="" coords="17,80,105,107"/>
<area shape="rect" id="node3" title=" " alt="" coords="5,155,116,181"/>
</map>

View file

@ -1 +0,0 @@
b0488af5f86ec13425d42d23c487da5b

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

View file

@ -1,97 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ShaderTool: src/io.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ShaderTool
&#160;<span id="projectnumber">0.1</span>
</div>
<div id="projectbrief">Live tool for developing OpenGL shaders interactively</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">io.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="io_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef IO_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define IO_H</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160; </div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="renderer_8h.html">renderer.h</a>&quot;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; </div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keywordtype">char</span> *<a class="code" href="io_8h.html#a04487b3f64fdc93c3ce0037ca16cbff0">basename_without_suffix</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *filename);</div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="keywordtype">void</span> <a class="code" href="io_8h.html#a3055c0f3882078342855d3eae628c488">capture_screenshot</a>(<span class="keyword">struct</span> <a class="code" href="structrenderer__state.html">renderer_state</a> *state);</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keywordtype">void</span> <a class="code" href="io_8h.html#a526d50cc66c2573b2e5b96c7256e9fae">process_input</a>(<span class="keyword">struct</span> <a class="code" href="structrenderer__state.html">renderer_state</a> *state);</div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; </div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* IO_H */</span><span class="preprocessor"></span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aio_8h_html_a526d50cc66c2573b2e5b96c7256e9fae"><div class="ttname"><a href="io_8h.html#a526d50cc66c2573b2e5b96c7256e9fae">process_input</a></div><div class="ttdeci">void process_input(struct renderer_state *state)</div><div class="ttdoc">Ensure the window is closed when the user presses the escape key.</div><div class="ttdef"><b>Definition:</b> io.c:86</div></div>
<div class="ttc" id="astructrenderer__state_html"><div class="ttname"><a href="structrenderer__state.html">renderer_state</a></div><div class="ttdef"><b>Definition:</b> renderer.h:19</div></div>
<div class="ttc" id="aio_8h_html_a04487b3f64fdc93c3ce0037ca16cbff0"><div class="ttname"><a href="io_8h.html#a04487b3f64fdc93c3ce0037ca16cbff0">basename_without_suffix</a></div><div class="ttdeci">char * basename_without_suffix(const char *filename)</div><div class="ttdoc">Return the file name without the leading directories and without the extension.</div><div class="ttdef"><b>Definition:</b> io.c:24</div></div>
<div class="ttc" id="aio_8h_html_a3055c0f3882078342855d3eae628c488"><div class="ttname"><a href="io_8h.html#a3055c0f3882078342855d3eae628c488">capture_screenshot</a></div><div class="ttdeci">void capture_screenshot(struct renderer_state *state)</div><div class="ttdoc">Capture a screenshot of the current window.</div><div class="ttdef"><b>Definition:</b> io.c:47</div></div>
<div class="ttc" id="arenderer_8h_html"><div class="ttname"><a href="renderer_8h.html">renderer.h</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

35
jquery.js vendored

File diff suppressed because one or more lines are too long

View file

@ -1,229 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ShaderTool: src/main.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ShaderTool
&#160;<span id="projectnumber">0.1</span>
</div>
<div id="projectbrief">Live tool for developing OpenGL shaders interactively</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">main.c File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;GL/glew.h&gt;</code><br />
<code>#include &lt;GLFW/glfw3.h&gt;</code><br />
<code>#include &lt;argp.h&gt;</code><br />
<code>#include &lt;fcntl.h&gt;</code><br />
<code>#include &lt;stdlib.h&gt;</code><br />
<code>#include &lt;sys/inotify.h&gt;</code><br />
<code>#include &quot;<a class="el" href="io_8h_source.html">io.h</a>&quot;</code><br />
<code>#include &quot;log.h&quot;</code><br />
<code>#include &quot;<a class="el" href="renderer_8h_source.html">renderer.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="shaders_8h_source.html">shaders.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for main.c:</div>
<div class="dyncontent">
<div class="center"><img src="main_8c__incl.png" border="0" usemap="#src_2main_8c" alt=""/></div>
<map name="src_2main_8c" id="src_2main_8c">
<area shape="rect" title=" " alt="" coords="385,5,474,32"/>
<area shape="rect" title=" " alt="" coords="5,80,91,107"/>
<area shape="rect" title=" " alt="" coords="299,229,410,256"/>
<area shape="rect" title=" " alt="" coords="166,80,229,107"/>
<area shape="rect" title=" " alt="" coords="253,80,315,107"/>
<area shape="rect" title=" " alt="" coords="339,80,410,107"/>
<area shape="rect" title=" " alt="" coords="435,80,533,107"/>
<area shape="rect" href="io_8h.html" title=" " alt="" coords="558,80,605,107"/>
<area shape="rect" href="renderer_8h.html" title=" " alt="" coords="568,155,656,181"/>
<area shape="rect" title=" " alt="" coords="681,80,735,107"/>
<area shape="rect" href="shaders_8h.html" title=" " alt="" coords="760,80,845,107"/>
</map>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarguments.html">arguments</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a498d9f026138406895e9a34b504ac6a6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8c.html#a498d9f026138406895e9a34b504ac6a6">WINDOW_WIDTH</a>&#160;&#160;&#160;800</td></tr>
<tr class="separator:a498d9f026138406895e9a34b504ac6a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5473cf64fa979b48335079c99532e243"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8c.html#a5473cf64fa979b48335079c99532e243">WINDOW_HEIGHT</a>&#160;&#160;&#160;800</td></tr>
<tr class="separator:a5473cf64fa979b48335079c99532e243"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a0ddf1224851353fc92bfbff6f499fa97"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8c.html#a0ddf1224851353fc92bfbff6f499fa97">main</a> (int argc, char *argv[])</td></tr>
<tr class="separator:a0ddf1224851353fc92bfbff6f499fa97"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a62f73ea01c816f1996aed4c66f57c4fb"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8c.html#a62f73ea01c816f1996aed4c66f57c4fb">argp_program_version</a> = &quot;0.1&quot;</td></tr>
<tr class="separator:a62f73ea01c816f1996aed4c66f57c4fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa037e59f26a80a8a2e35e6f2364004d"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8c.html#aaa037e59f26a80a8a2e35e6f2364004d">argp_program_bug_address</a></td></tr>
<tr class="separator:aaa037e59f26a80a8a2e35e6f2364004d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a5473cf64fa979b48335079c99532e243"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5473cf64fa979b48335079c99532e243">&#9670;&nbsp;</a></span>WINDOW_HEIGHT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define WINDOW_HEIGHT&#160;&#160;&#160;800</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a498d9f026138406895e9a34b504ac6a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a498d9f026138406895e9a34b504ac6a6">&#9670;&nbsp;</a></span>WINDOW_WIDTH</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define WINDOW_WIDTH&#160;&#160;&#160;800</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="a0ddf1224851353fc92bfbff6f499fa97"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ddf1224851353fc92bfbff6f499fa97">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>argc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>argv</em>[]&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="aaa037e59f26a80a8a2e35e6f2364004d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaa037e59f26a80a8a2e35e6f2364004d">&#9670;&nbsp;</a></span>argp_program_bug_address</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* argp_program_bug_address</td>
</tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">=</div>
<div class="line"> <span class="stringliteral">&quot;https://github.com/dlozeve/ShaderTool/issues&quot;</span></div>
</div><!-- fragment -->
</div>
</div>
<a id="a62f73ea01c816f1996aed4c66f57c4fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62f73ea01c816f1996aed4c66f57c4fb">&#9670;&nbsp;</a></span>argp_program_version</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* argp_program_version = &quot;0.1&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

View file

@ -1,13 +0,0 @@
<map id="src/main.c" name="src/main.c">
<area shape="rect" id="node1" title=" " alt="" coords="385,5,474,32"/>
<area shape="rect" id="node2" title=" " alt="" coords="5,80,91,107"/>
<area shape="rect" id="node3" title=" " alt="" coords="299,229,410,256"/>
<area shape="rect" id="node4" title=" " alt="" coords="166,80,229,107"/>
<area shape="rect" id="node5" title=" " alt="" coords="253,80,315,107"/>
<area shape="rect" id="node6" title=" " alt="" coords="339,80,410,107"/>
<area shape="rect" id="node7" title=" " alt="" coords="435,80,533,107"/>
<area shape="rect" id="node8" href="$io_8h.html" title=" " alt="" coords="558,80,605,107"/>
<area shape="rect" id="node9" href="$renderer_8h.html" title=" " alt="" coords="568,155,656,181"/>
<area shape="rect" id="node10" title=" " alt="" coords="681,80,735,107"/>
<area shape="rect" id="node11" href="$shaders_8h.html" title=" " alt="" coords="760,80,845,107"/>
</map>

View file

@ -1 +0,0 @@
b42d1c851d673dff334116dc22a785c0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

50
menu.js
View file

@ -1,50 +0,0 @@
/*
@licstart The following is the entire license notice for the
JavaScript code in this file.
Copyright (C) 1997-2017 by Dimitri van Heesch
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
@licend The above is the entire license notice
for the JavaScript code in this file
*/
function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
function makeTree(data,relPath) {
var result='';
if ('children' in data) {
result+='<ul>';
for (var i in data.children) {
result+='<li><a href="'+relPath+data.children[i].url+'">'+
data.children[i].text+'</a>'+
makeTree(data.children[i],relPath)+'</li>';
}
result+='</ul>';
}
return result;
}
$('#main-nav').append(makeTree(menudata,relPath));
$('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
if (searchEnabled) {
if (serverSide) {
$('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><div class="left"><form id="FSearchBox" action="'+relPath+searchPage+'" method="get"><img id="MSearchSelect" src="'+relPath+'search/mag.png" alt=""/><input type="text" id="MSearchField" name="query" value="'+search+'" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)"></form></div><div class="right"></div></div></li>');
} else {
$('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><span class="left"><img id="MSearchSelect" src="'+relPath+'search/mag_sel.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/><input type="text" id="MSearchField" value="'+search+'" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/></span><span class="right"><a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="'+relPath+'search/close.png" alt=""/></a></span></div></li>');
}
}
$('#main-menu').smartmenus();
}
/* @license-end */

View file

@ -1,37 +0,0 @@
/*
@licstart The following is the entire license notice for the
JavaScript code in this file.
Copyright (C) 1997-2019 by Dimitri van Heesch
This program is free software; you can redistribute it and/or modify
it under the terms of version 2 of the GNU General Public License as published by
the Free Software Foundation
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
@licend The above is the entire license notice
for the JavaScript code in this file
*/
var menudata={children:[
{text:"Main Page",url:"index.html"},
{text:"Data Structures",url:"annotated.html",children:[
{text:"Data Structures",url:"annotated.html"},
{text:"Data Structure Index",url:"classes.html"},
{text:"Data Fields",url:"functions.html",children:[
{text:"All",url:"functions.html"},
{text:"Variables",url:"functions_vars.html"}]}]},
{text:"Files",url:"files.html",children:[
{text:"File List",url:"files.html"},
{text:"Globals",url:"globals.html",children:[
{text:"All",url:"globals.html"},
{text:"Functions",url:"globals_func.html"},
{text:"Variables",url:"globals_vars.html"},
{text:"Macros",url:"globals_defs.html"}]}]}]}

22
meson.build Normal file
View file

@ -0,0 +1,22 @@
project(
'shadertool', 'c',
version: '0.1',
default_options: [
'buildtype=debugoptimized',
'warning_level=3',
'werror=true',
]
)
cc = meson.get_compiler('c')
glfw_dep = dependency('glfw3')
glew_dep = dependency('glew')
freeimage_dep = cc.find_library('freeimage')
executable(
'shadertool',
sources: ['src/main.c', 'src/renderer.c', 'src/shaders.c', 'src/io.c', 'src/log.c'],
dependencies: [glfw_dep, glew_dep, freeimage_dep],
c_args: '-DLOG_USE_COLOR',
)

BIN
nav_f.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 B

BIN
nav_g.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 B

BIN
nav_h.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 B

BIN
open.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 B

View file

@ -1,297 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ShaderTool: src/renderer.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ShaderTool
&#160;<span id="projectnumber">0.1</span>
</div>
<div id="projectbrief">Live tool for developing OpenGL shaders interactively</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">renderer.c File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;GL/glew.h&gt;</code><br />
<code>#include &lt;GLFW/glfw3.h&gt;</code><br />
<code>#include &quot;log.h&quot;</code><br />
<code>#include &quot;<a class="el" href="renderer_8h_source.html">renderer.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for renderer.c:</div>
<div class="dyncontent">
<div class="center"><img src="renderer_8c__incl.png" border="0" usemap="#src_2renderer_8c" alt=""/></div>
<map name="src_2renderer_8c" id="src_2renderer_8c">
<area shape="rect" title=" " alt="" coords="105,5,215,32"/>
<area shape="rect" title=" " alt="" coords="5,80,91,107"/>
<area shape="rect" title=" " alt="" coords="153,155,263,181"/>
<area shape="rect" title=" " alt="" coords="166,80,221,107"/>
<area shape="rect" href="renderer_8h.html" title=" " alt="" coords="245,80,333,107"/>
</map>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:aa2c1c2787f4fc780b0a902fc66d5c3ce"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="renderer_8c.html#aa2c1c2787f4fc780b0a902fc66d5c3ce">UNUSED</a>(a)&#160;&#160;&#160;(void)a</td></tr>
<tr class="separator:aa2c1c2787f4fc780b0a902fc66d5c3ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a906b1457eeeaa2d7a9655343af151f66"><td class="memItemLeft" align="right" valign="top">GLFWwindow *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="renderer_8c.html#a906b1457eeeaa2d7a9655343af151f66">initialize_window</a> (int width, int height)</td></tr>
<tr class="memdesc:a906b1457eeeaa2d7a9655343af151f66"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize GLFW and OpenGL, and create a window. <a href="renderer_8c.html#a906b1457eeeaa2d7a9655343af151f66">More...</a><br /></td></tr>
<tr class="separator:a906b1457eeeaa2d7a9655343af151f66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a934ec25611d153f2e7f357573ade2061"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="renderer_8c.html#a934ec25611d153f2e7f357573ade2061">initialize_vertices</a> ()</td></tr>
<tr class="memdesc:a934ec25611d153f2e7f357573ade2061"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the vertex array. <a href="renderer_8c.html#a934ec25611d153f2e7f357573ade2061">More...</a><br /></td></tr>
<tr class="separator:a934ec25611d153f2e7f357573ade2061"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d8bc1fbae1bbe4bd2e70c9b645875ab"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="renderer_8c.html#a5d8bc1fbae1bbe4bd2e70c9b645875ab">initialize_framebuffer</a> (unsigned int *framebuffer, unsigned int *texture_color_buffer, unsigned int texture_width, unsigned int texture_height)</td></tr>
<tr class="memdesc:a5d8bc1fbae1bbe4bd2e70c9b645875ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a framebuffer and the associated texture. <a href="renderer_8c.html#a5d8bc1fbae1bbe4bd2e70c9b645875ab">More...</a><br /></td></tr>
<tr class="separator:a5d8bc1fbae1bbe4bd2e70c9b645875ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5180f7bf2b71421af837035824a8c8ac"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="renderer_8c.html#a5180f7bf2b71421af837035824a8c8ac">framebuffer_size_callback</a> (GLFWwindow *window, int width, int height)</td></tr>
<tr class="memdesc:a5180f7bf2b71421af837035824a8c8ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback to adjust the size of the viewport when the window is resized. <a href="renderer_8c.html#a5180f7bf2b71421af837035824a8c8ac">More...</a><br /></td></tr>
<tr class="separator:a5180f7bf2b71421af837035824a8c8ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="aa2c1c2787f4fc780b0a902fc66d5c3ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa2c1c2787f4fc780b0a902fc66d5c3ce">&#9670;&nbsp;</a></span>UNUSED</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define UNUSED</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">a</td><td>)</td>
<td>&#160;&#160;&#160;(void)a</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="a5180f7bf2b71421af837035824a8c8ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5180f7bf2b71421af837035824a8c8ac">&#9670;&nbsp;</a></span>framebuffer_size_callback()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void framebuffer_size_callback </td>
<td>(</td>
<td class="paramtype">GLFWwindow *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>width</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>height</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Callback to adjust the size of the viewport when the window is resized. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">window</td><td>The current window. </td></tr>
<tr><td class="paramname">width</td><td>The new width. </td></tr>
<tr><td class="paramname">height</td><td>The new height. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a5d8bc1fbae1bbe4bd2e70c9b645875ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5d8bc1fbae1bbe4bd2e70c9b645875ab">&#9670;&nbsp;</a></span>initialize_framebuffer()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned int initialize_framebuffer </td>
<td>(</td>
<td class="paramtype">unsigned int *&#160;</td>
<td class="paramname"><em>framebuffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int *&#160;</td>
<td class="paramname"><em>texture_color_buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>texture_width</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>texture_height</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize a framebuffer and the associated texture. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">framebuffer</td><td>The framebuffer ID to be initialized. </td></tr>
<tr><td class="paramname">texture_color_buffer</td><td>The texture ID to be initialized. </td></tr>
<tr><td class="paramname">texture_width</td><td>The width of the desired texture image. </td></tr>
<tr><td class="paramname">texture_height</td><td>The height of the desired texture image. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, 1 on failure. </dd></dl>
</div>
</div>
<a id="a934ec25611d153f2e7f357573ade2061"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a934ec25611d153f2e7f357573ade2061">&#9670;&nbsp;</a></span>initialize_vertices()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned int initialize_vertices </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize the vertex array. </p>
<p>This functions defines a simple rectangle containing the whole viewport.</p>
<dl class="section return"><dt>Returns</dt><dd>The vertex array object ID. </dd></dl>
</div>
</div>
<a id="a906b1457eeeaa2d7a9655343af151f66"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a906b1457eeeaa2d7a9655343af151f66">&#9670;&nbsp;</a></span>initialize_window()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLFWwindow* initialize_window </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>width</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>height</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize GLFW and OpenGL, and create a window. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">width</td><td>The width of the window to create. </td></tr>
<tr><td class="paramname">height</td><td>The height of the window to create. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the newly created GLFW window, or <code>NULL</code> on error. </dd></dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

View file

@ -1,7 +0,0 @@
<map id="src/renderer.c" name="src/renderer.c">
<area shape="rect" id="node1" title=" " alt="" coords="105,5,215,32"/>
<area shape="rect" id="node2" title=" " alt="" coords="5,80,91,107"/>
<area shape="rect" id="node3" title=" " alt="" coords="153,155,263,181"/>
<area shape="rect" id="node4" title=" " alt="" coords="166,80,221,107"/>
<area shape="rect" id="node5" href="$renderer_8h.html" title=" " alt="" coords="245,80,333,107"/>
</map>

View file

@ -1 +0,0 @@
5184e94e13b9a9496dce15cf1a662567

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

View file

@ -1,290 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ShaderTool: src/renderer.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ShaderTool
&#160;<span id="projectnumber">0.1</span>
</div>
<div id="projectbrief">Live tool for developing OpenGL shaders interactively</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">renderer.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;GLFW/glfw3.h&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for renderer.h:</div>
<div class="dyncontent">
<div class="center"><img src="renderer_8h__incl.png" border="0" usemap="#src_2renderer_8h" alt=""/></div>
<map name="src_2renderer_8h" id="src_2renderer_8h">
<area shape="rect" title=" " alt="" coords="5,5,116,32"/>
<area shape="rect" title=" " alt="" coords="5,80,116,107"/>
</map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="renderer_8h__dep__incl.png" border="0" usemap="#src_2renderer_8hdep" alt=""/></div>
<map name="src_2renderer_8hdep" id="src_2renderer_8hdep">
<area shape="rect" title=" " alt="" coords="163,5,273,32"/>
<area shape="rect" href="io_8c.html" title=" " alt="" coords="5,155,73,181"/>
<area shape="rect" href="shaders_8h.html" title=" " alt="" coords="36,80,144,107"/>
<area shape="rect" href="main_8c.html" title=" " alt="" coords="137,155,227,181"/>
<area shape="rect" href="shaders_8c.html" title=" " alt="" coords="262,155,369,181"/>
<area shape="rect" href="io_8h.html" title=" " alt="" coords="219,80,289,107"/>
<area shape="rect" href="renderer_8c.html" title=" " alt="" coords="364,80,475,107"/>
</map>
</div>
</div>
<p><a href="renderer_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structshader__state.html">shader_state</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structrenderer__state.html">renderer_state</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a906b1457eeeaa2d7a9655343af151f66"><td class="memItemLeft" align="right" valign="top">GLFWwindow *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="renderer_8h.html#a906b1457eeeaa2d7a9655343af151f66">initialize_window</a> (int width, int height)</td></tr>
<tr class="memdesc:a906b1457eeeaa2d7a9655343af151f66"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize GLFW and OpenGL, and create a window. <a href="renderer_8h.html#a906b1457eeeaa2d7a9655343af151f66">More...</a><br /></td></tr>
<tr class="separator:a906b1457eeeaa2d7a9655343af151f66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a934ec25611d153f2e7f357573ade2061"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="renderer_8h.html#a934ec25611d153f2e7f357573ade2061">initialize_vertices</a> ()</td></tr>
<tr class="memdesc:a934ec25611d153f2e7f357573ade2061"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the vertex array. <a href="renderer_8h.html#a934ec25611d153f2e7f357573ade2061">More...</a><br /></td></tr>
<tr class="separator:a934ec25611d153f2e7f357573ade2061"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d8bc1fbae1bbe4bd2e70c9b645875ab"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="renderer_8h.html#a5d8bc1fbae1bbe4bd2e70c9b645875ab">initialize_framebuffer</a> (unsigned int *framebuffer, unsigned int *texture_color_buffer, unsigned int texture_width, unsigned int texture_height)</td></tr>
<tr class="memdesc:a5d8bc1fbae1bbe4bd2e70c9b645875ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a framebuffer and the associated texture. <a href="renderer_8h.html#a5d8bc1fbae1bbe4bd2e70c9b645875ab">More...</a><br /></td></tr>
<tr class="separator:a5d8bc1fbae1bbe4bd2e70c9b645875ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5180f7bf2b71421af837035824a8c8ac"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="renderer_8h.html#a5180f7bf2b71421af837035824a8c8ac">framebuffer_size_callback</a> (GLFWwindow *window, int width, int height)</td></tr>
<tr class="memdesc:a5180f7bf2b71421af837035824a8c8ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback to adjust the size of the viewport when the window is resized. <a href="renderer_8h.html#a5180f7bf2b71421af837035824a8c8ac">More...</a><br /></td></tr>
<tr class="separator:a5180f7bf2b71421af837035824a8c8ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="a5180f7bf2b71421af837035824a8c8ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5180f7bf2b71421af837035824a8c8ac">&#9670;&nbsp;</a></span>framebuffer_size_callback()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void framebuffer_size_callback </td>
<td>(</td>
<td class="paramtype">GLFWwindow *&#160;</td>
<td class="paramname"><em>window</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>width</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>height</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Callback to adjust the size of the viewport when the window is resized. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">window</td><td>The current window. </td></tr>
<tr><td class="paramname">width</td><td>The new width. </td></tr>
<tr><td class="paramname">height</td><td>The new height. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a5d8bc1fbae1bbe4bd2e70c9b645875ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5d8bc1fbae1bbe4bd2e70c9b645875ab">&#9670;&nbsp;</a></span>initialize_framebuffer()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned int initialize_framebuffer </td>
<td>(</td>
<td class="paramtype">unsigned int *&#160;</td>
<td class="paramname"><em>framebuffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int *&#160;</td>
<td class="paramname"><em>texture_color_buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>texture_width</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned int&#160;</td>
<td class="paramname"><em>texture_height</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize a framebuffer and the associated texture. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">framebuffer</td><td>The framebuffer ID to be initialized. </td></tr>
<tr><td class="paramname">texture_color_buffer</td><td>The texture ID to be initialized. </td></tr>
<tr><td class="paramname">texture_width</td><td>The width of the desired texture image. </td></tr>
<tr><td class="paramname">texture_height</td><td>The height of the desired texture image. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, 1 on failure. </dd></dl>
</div>
</div>
<a id="a934ec25611d153f2e7f357573ade2061"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a934ec25611d153f2e7f357573ade2061">&#9670;&nbsp;</a></span>initialize_vertices()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">unsigned int initialize_vertices </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize the vertex array. </p>
<p>This functions defines a simple rectangle containing the whole viewport.</p>
<dl class="section return"><dt>Returns</dt><dd>The vertex array object ID. </dd></dl>
</div>
</div>
<a id="a906b1457eeeaa2d7a9655343af151f66"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a906b1457eeeaa2d7a9655343af151f66">&#9670;&nbsp;</a></span>initialize_window()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">GLFWwindow* initialize_window </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>width</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>height</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize GLFW and OpenGL, and create a window. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">width</td><td>The width of the window to create. </td></tr>
<tr><td class="paramname">height</td><td>The height of the window to create. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the newly created GLFW window, or <code>NULL</code> on error. </dd></dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

View file

@ -1,9 +0,0 @@
<map id="src/renderer.h" name="src/renderer.h">
<area shape="rect" id="node1" title=" " alt="" coords="163,5,273,32"/>
<area shape="rect" id="node2" href="$io_8c.html" title=" " alt="" coords="5,155,73,181"/>
<area shape="rect" id="node3" href="$shaders_8h.html" title=" " alt="" coords="36,80,144,107"/>
<area shape="rect" id="node4" href="$main_8c.html" title=" " alt="" coords="137,155,227,181"/>
<area shape="rect" id="node5" href="$shaders_8c.html" title=" " alt="" coords="262,155,369,181"/>
<area shape="rect" id="node6" href="$io_8h.html" title=" " alt="" coords="219,80,289,107"/>
<area shape="rect" id="node7" href="$renderer_8c.html" title=" " alt="" coords="364,80,475,107"/>
</map>

View file

@ -1 +0,0 @@
9cab67ee2dfd6c17da84834dcc621220

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

View file

@ -1,4 +0,0 @@
<map id="src/renderer.h" name="src/renderer.h">
<area shape="rect" id="node1" title=" " alt="" coords="5,5,116,32"/>
<area shape="rect" id="node2" title=" " alt="" coords="5,80,116,107"/>
</map>

View file

@ -1 +0,0 @@
a6799417ba01b841cfb051f6e11e6490

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

View file

@ -1,135 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ShaderTool: src/renderer.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">ShaderTool
&#160;<span id="projectnumber">0.1</span>
</div>
<div id="projectbrief">Live tool for developing OpenGL shaders interactively</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">renderer.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="renderer_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef RENDERER_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define RENDERER_H</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160; </div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;GLFW/glfw3.h&gt;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; </div>
<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="structshader__state.html"> 9</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structshader__state.html">shader_state</a> {</div>
<div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="structshader__state.html#a585871ab45d0a6f6b0f5bacbccce0896"> 10</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structshader__state.html#a585871ab45d0a6f6b0f5bacbccce0896">program</a>; </div>
<div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="structshader__state.html#a4a39bb26de28029c609c6c2c3dbf92fc"> 11</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structshader__state.html#a4a39bb26de28029c609c6c2c3dbf92fc">filename</a>; </div>
<div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="structshader__state.html#a64eb6436823980d957e5fe2937b2779c"> 12</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structshader__state.html#a64eb6436823980d957e5fe2937b2779c">wd</a>; </div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;};</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; </div>
<div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="structrenderer__state.html"> 19</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structrenderer__state.html">renderer_state</a> {</div>
<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="structrenderer__state.html#a66a324cf71a869d65347455d97f82d33"> 20</a></span>&#160; GLFWwindow *<a class="code" href="structrenderer__state.html#a66a324cf71a869d65347455d97f82d33">window</a>; </div>
<div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="structrenderer__state.html#a20e2c1fbe9446676f4cce1b56f501585"> 21</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structshader__state.html">shader_state</a> <a class="code" href="structrenderer__state.html#a20e2c1fbe9446676f4cce1b56f501585">screen_shader</a>; </div>
<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="structrenderer__state.html#a39726f9047174897d3cd54bf34f0c918"> 22</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structshader__state.html">shader_state</a> <a class="code" href="structrenderer__state.html#a39726f9047174897d3cd54bf34f0c918">buffer_shader</a>; </div>
<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="structrenderer__state.html#a36c3b08d88805a322c446a42f09a9e92"> 23</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structrenderer__state.html#a36c3b08d88805a322c446a42f09a9e92">framebuffer</a>; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="structrenderer__state.html#af738cddb5b77a8d8cf765d98953f8b1d"> 25</a></span>&#160; <a class="code" href="structrenderer__state.html#af738cddb5b77a8d8cf765d98953f8b1d">texture_color_buffer</a>; </div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="structrenderer__state.html#a36edaf5f4fdce89e7dc3a1d47cf96795"> 26</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structrenderer__state.html#a36edaf5f4fdce89e7dc3a1d47cf96795">inotify_fd</a>; </div>
<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="structrenderer__state.html#ab6592afba4a3b9fcc76eb5853b9fecb3"> 27</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structrenderer__state.html#ab6592afba4a3b9fcc76eb5853b9fecb3">frame_count</a>; </div>
<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="structrenderer__state.html#a823e5fe4cf25de6572b02c4278f24a47"> 28</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structrenderer__state.html#a823e5fe4cf25de6572b02c4278f24a47">prev_frame_count</a>; </div>
<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="structrenderer__state.html#ab0eb1b70130c2abfed2e2366390ca20f"> 29</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="structrenderer__state.html#ab0eb1b70130c2abfed2e2366390ca20f">time</a>; </div>
<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="structrenderer__state.html#a774cdc17c1ec071da811f56ffd4e090b"> 30</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="structrenderer__state.html#a774cdc17c1ec071da811f56ffd4e090b">prev_time</a>; </div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;};</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; </div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;GLFWwindow *<a class="code" href="renderer_8h.html#a906b1457eeeaa2d7a9655343af151f66">initialize_window</a>(<span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height);</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="renderer_8h.html#a934ec25611d153f2e7f357573ade2061">initialize_vertices</a>();</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="renderer_8h.html#a5d8bc1fbae1bbe4bd2e70c9b645875ab">initialize_framebuffer</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *framebuffer,</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *texture_color_buffer,</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> texture_width,</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> texture_height);</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keywordtype">void</span> <a class="code" href="renderer_8h.html#a5180f7bf2b71421af837035824a8c8ac">framebuffer_size_callback</a>(GLFWwindow *window, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height);</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; </div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* RENDERER_H */</span><span class="preprocessor"></span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="astructrenderer__state_html_ab6592afba4a3b9fcc76eb5853b9fecb3"><div class="ttname"><a href="structrenderer__state.html#ab6592afba4a3b9fcc76eb5853b9fecb3">renderer_state::frame_count</a></div><div class="ttdeci">size_t frame_count</div><div class="ttdef"><b>Definition:</b> renderer.h:27</div></div>
<div class="ttc" id="astructshader__state_html_a585871ab45d0a6f6b0f5bacbccce0896"><div class="ttname"><a href="structshader__state.html#a585871ab45d0a6f6b0f5bacbccce0896">shader_state::program</a></div><div class="ttdeci">unsigned int program</div><div class="ttdef"><b>Definition:</b> renderer.h:10</div></div>
<div class="ttc" id="arenderer_8h_html_a934ec25611d153f2e7f357573ade2061"><div class="ttname"><a href="renderer_8h.html#a934ec25611d153f2e7f357573ade2061">initialize_vertices</a></div><div class="ttdeci">unsigned int initialize_vertices()</div><div class="ttdoc">Initialize the vertex array.</div><div class="ttdef"><b>Definition:</b> renderer.c:58</div></div>
<div class="ttc" id="astructshader__state_html_a4a39bb26de28029c609c6c2c3dbf92fc"><div class="ttname"><a href="structshader__state.html#a4a39bb26de28029c609c6c2c3dbf92fc">shader_state::filename</a></div><div class="ttdeci">const char * filename</div><div class="ttdef"><b>Definition:</b> renderer.h:11</div></div>
<div class="ttc" id="arenderer_8h_html_a5d8bc1fbae1bbe4bd2e70c9b645875ab"><div class="ttname"><a href="renderer_8h.html#a5d8bc1fbae1bbe4bd2e70c9b645875ab">initialize_framebuffer</a></div><div class="ttdeci">unsigned int initialize_framebuffer(unsigned int *framebuffer, unsigned int *texture_color_buffer, unsigned int texture_width, unsigned int texture_height)</div><div class="ttdoc">Initialize a framebuffer and the associated texture.</div><div class="ttdef"><b>Definition:</b> renderer.c:108</div></div>
<div class="ttc" id="astructrenderer__state_html"><div class="ttname"><a href="structrenderer__state.html">renderer_state</a></div><div class="ttdef"><b>Definition:</b> renderer.h:19</div></div>
<div class="ttc" id="astructrenderer__state_html_a39726f9047174897d3cd54bf34f0c918"><div class="ttname"><a href="structrenderer__state.html#a39726f9047174897d3cd54bf34f0c918">renderer_state::buffer_shader</a></div><div class="ttdeci">struct shader_state buffer_shader</div><div class="ttdef"><b>Definition:</b> renderer.h:22</div></div>
<div class="ttc" id="astructrenderer__state_html_a66a324cf71a869d65347455d97f82d33"><div class="ttname"><a href="structrenderer__state.html#a66a324cf71a869d65347455d97f82d33">renderer_state::window</a></div><div class="ttdeci">GLFWwindow * window</div><div class="ttdef"><b>Definition:</b> renderer.h:20</div></div>
<div class="ttc" id="astructrenderer__state_html_a36c3b08d88805a322c446a42f09a9e92"><div class="ttname"><a href="structrenderer__state.html#a36c3b08d88805a322c446a42f09a9e92">renderer_state::framebuffer</a></div><div class="ttdeci">unsigned int framebuffer</div><div class="ttdef"><b>Definition:</b> renderer.h:23</div></div>
<div class="ttc" id="astructshader__state_html"><div class="ttname"><a href="structshader__state.html">shader_state</a></div><div class="ttdef"><b>Definition:</b> renderer.h:9</div></div>
<div class="ttc" id="arenderer_8h_html_a5180f7bf2b71421af837035824a8c8ac"><div class="ttname"><a href="renderer_8h.html#a5180f7bf2b71421af837035824a8c8ac">framebuffer_size_callback</a></div><div class="ttdeci">void framebuffer_size_callback(GLFWwindow *window, int width, int height)</div><div class="ttdoc">Callback to adjust the size of the viewport when the window is resized.</div><div class="ttdef"><b>Definition:</b> renderer.c:141</div></div>
<div class="ttc" id="astructrenderer__state_html_a36edaf5f4fdce89e7dc3a1d47cf96795"><div class="ttname"><a href="structrenderer__state.html#a36edaf5f4fdce89e7dc3a1d47cf96795">renderer_state::inotify_fd</a></div><div class="ttdeci">int inotify_fd</div><div class="ttdef"><b>Definition:</b> renderer.h:26</div></div>
<div class="ttc" id="astructrenderer__state_html_a774cdc17c1ec071da811f56ffd4e090b"><div class="ttname"><a href="structrenderer__state.html#a774cdc17c1ec071da811f56ffd4e090b">renderer_state::prev_time</a></div><div class="ttdeci">double prev_time</div><div class="ttdef"><b>Definition:</b> renderer.h:30</div></div>
<div class="ttc" id="astructshader__state_html_a64eb6436823980d957e5fe2937b2779c"><div class="ttname"><a href="structshader__state.html#a64eb6436823980d957e5fe2937b2779c">shader_state::wd</a></div><div class="ttdeci">int wd</div><div class="ttdef"><b>Definition:</b> renderer.h:12</div></div>
<div class="ttc" id="astructrenderer__state_html_a20e2c1fbe9446676f4cce1b56f501585"><div class="ttname"><a href="structrenderer__state.html#a20e2c1fbe9446676f4cce1b56f501585">renderer_state::screen_shader</a></div><div class="ttdeci">struct shader_state screen_shader</div><div class="ttdef"><b>Definition:</b> renderer.h:21</div></div>
<div class="ttc" id="astructrenderer__state_html_a823e5fe4cf25de6572b02c4278f24a47"><div class="ttname"><a href="structrenderer__state.html#a823e5fe4cf25de6572b02c4278f24a47">renderer_state::prev_frame_count</a></div><div class="ttdeci">size_t prev_frame_count</div><div class="ttdef"><b>Definition:</b> renderer.h:28</div></div>
<div class="ttc" id="arenderer_8h_html_a906b1457eeeaa2d7a9655343af151f66"><div class="ttname"><a href="renderer_8h.html#a906b1457eeeaa2d7a9655343af151f66">initialize_window</a></div><div class="ttdeci">GLFWwindow * initialize_window(int width, int height)</div><div class="ttdoc">Initialize GLFW and OpenGL, and create a window.</div><div class="ttdef"><b>Definition:</b> renderer.c:16</div></div>
<div class="ttc" id="astructrenderer__state_html_ab0eb1b70130c2abfed2e2366390ca20f"><div class="ttname"><a href="structrenderer__state.html#ab0eb1b70130c2abfed2e2366390ca20f">renderer_state::time</a></div><div class="ttdeci">double time</div><div class="ttdef"><b>Definition:</b> renderer.h:29</div></div>
<div class="ttc" id="astructrenderer__state_html_af738cddb5b77a8d8cf765d98953f8b1d"><div class="ttname"><a href="structrenderer__state.html#af738cddb5b77a8d8cf765d98953f8b1d">renderer_state::texture_color_buffer</a></div><div class="ttdeci">unsigned int texture_color_buffer</div><div class="ttdef"><b>Definition:</b> renderer.h:25</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

View file

@ -1,30 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_0.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
/* @license-end */
--></script>
</div>
</body>
</html>

View file

@ -1,7 +0,0 @@
var searchData=
[
['argp_5fprogram_5fbug_5faddress_0',['argp_program_bug_address',['../main_8c.html#aaa037e59f26a80a8a2e35e6f2364004d',1,'main.c']]],
['argp_5fprogram_5fversion_1',['argp_program_version',['../main_8c.html#a62f73ea01c816f1996aed4c66f57c4fb',1,'main.c']]],
['arguments_2',['arguments',['../structarguments.html',1,'']]],
['autoreload_3',['autoreload',['../structarguments.html#aef0b289368d537231ead5d0e1e2c703f',1,'arguments']]]
];

View file

@ -1,30 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_1.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
/* @license-end */
--></script>
</div>
</body>
</html>

View file

@ -1,7 +0,0 @@
var searchData=
[
['basename_5fwithout_5fsuffix_4',['basename_without_suffix',['../io_8c.html#a04487b3f64fdc93c3ce0037ca16cbff0',1,'basename_without_suffix(const char *filename):&#160;io.c'],['../io_8h.html#a04487b3f64fdc93c3ce0037ca16cbff0',1,'basename_without_suffix(const char *filename):&#160;io.c']]],
['buf_5flen_5',['BUF_LEN',['../io_8c.html#a8b5839f71a3b6e7d64b2d5e9967e3dd1',1,'io.c']]],
['buffer_5ffile_6',['buffer_file',['../structarguments.html#a89b6196d0bc9b0d599ac3560af62a0e7',1,'arguments']]],
['buffer_5fshader_7',['buffer_shader',['../structrenderer__state.html#a39726f9047174897d3cd54bf34f0c918',1,'renderer_state']]]
];

View file

@ -1,30 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_2.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
/* @license-end */
--></script>
</div>
</body>
</html>

View file

@ -1,5 +0,0 @@
var searchData=
[
['capture_5fscreenshot_8',['capture_screenshot',['../io_8c.html#a3055c0f3882078342855d3eae628c488',1,'capture_screenshot(struct renderer_state *state):&#160;io.c'],['../io_8h.html#a3055c0f3882078342855d3eae628c488',1,'capture_screenshot(struct renderer_state *state):&#160;io.c']]],
['compile_5fshaders_9',['compile_shaders',['../shaders_8c.html#a199bc15d3bf9a2b6948bfbf44e90652c',1,'compile_shaders(unsigned int *shader_program, const char *const fragment_shader_file):&#160;shaders.c'],['../shaders_8h.html#a199bc15d3bf9a2b6948bfbf44e90652c',1,'compile_shaders(unsigned int *shader_program, const char *const fragment_shader_file):&#160;shaders.c']]]
];

View file

@ -1,30 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_3.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
/* @license-end */
--></script>
</div>
</body>
</html>

View file

@ -1,7 +0,0 @@
var searchData=
[
['filename_10',['filename',['../structshader__state.html#a4a39bb26de28029c609c6c2c3dbf92fc',1,'shader_state']]],
['frame_5fcount_11',['frame_count',['../structrenderer__state.html#ab6592afba4a3b9fcc76eb5853b9fecb3',1,'renderer_state']]],
['framebuffer_12',['framebuffer',['../structrenderer__state.html#a36c3b08d88805a322c446a42f09a9e92',1,'renderer_state']]],
['framebuffer_5fsize_5fcallback_13',['framebuffer_size_callback',['../renderer_8c.html#a5180f7bf2b71421af837035824a8c8ac',1,'framebuffer_size_callback(GLFWwindow *window, int width, int height):&#160;renderer.c'],['../renderer_8h.html#a5180f7bf2b71421af837035824a8c8ac',1,'framebuffer_size_callback(GLFWwindow *window, int width, int height):&#160;renderer.c']]]
];

View file

@ -1,30 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_4.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
/* @license-end */
--></script>
</div>
</body>
</html>

View file

@ -1,10 +0,0 @@
var searchData=
[
['initialize_5fframebuffer_14',['initialize_framebuffer',['../renderer_8c.html#a5d8bc1fbae1bbe4bd2e70c9b645875ab',1,'initialize_framebuffer(unsigned int *framebuffer, unsigned int *texture_color_buffer, unsigned int texture_width, unsigned int texture_height):&#160;renderer.c'],['../renderer_8h.html#a5d8bc1fbae1bbe4bd2e70c9b645875ab',1,'initialize_framebuffer(unsigned int *framebuffer, unsigned int *texture_color_buffer, unsigned int texture_width, unsigned int texture_height):&#160;renderer.c']]],
['initialize_5fshaders_15',['initialize_shaders',['../shaders_8c.html#af837a2c5bab4e34d763335c71a4b8a12',1,'initialize_shaders(struct renderer_state *state, const char *shader_file, const char *buffer_file, int texture_width, int texture_height):&#160;shaders.c'],['../shaders_8h.html#a58c13f6719bcad0be93367257facb2d8',1,'initialize_shaders(struct renderer_state *state, const char *shader_file, const char *buffer_file, int window_width, int window_height):&#160;shaders.c']]],
['initialize_5fvertices_16',['initialize_vertices',['../renderer_8c.html#a934ec25611d153f2e7f357573ade2061',1,'initialize_vertices():&#160;renderer.c'],['../renderer_8h.html#a934ec25611d153f2e7f357573ade2061',1,'initialize_vertices():&#160;renderer.c']]],
['initialize_5fwindow_17',['initialize_window',['../renderer_8c.html#a906b1457eeeaa2d7a9655343af151f66',1,'initialize_window(int width, int height):&#160;renderer.c'],['../renderer_8h.html#a906b1457eeeaa2d7a9655343af151f66',1,'initialize_window(int width, int height):&#160;renderer.c']]],
['inotify_5ffd_18',['inotify_fd',['../structrenderer__state.html#a36edaf5f4fdce89e7dc3a1d47cf96795',1,'renderer_state']]],
['io_2ec_19',['io.c',['../io_8c.html',1,'']]],
['io_2eh_20',['io.h',['../io_8h.html',1,'']]]
];

View file

@ -1,30 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_5.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
/* @license-end */
--></script>
</div>
</body>
</html>

View file

@ -1,5 +0,0 @@
var searchData=
[
['main_21',['main',['../main_8c.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main.c']]],
['main_2ec_22',['main.c',['../main_8c.html',1,'']]]
];

View file

@ -1,30 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_6.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
/* @license-end */
--></script>
</div>
</body>
</html>

View file

@ -1,7 +0,0 @@
var searchData=
[
['prev_5fframe_5fcount_23',['prev_frame_count',['../structrenderer__state.html#a823e5fe4cf25de6572b02c4278f24a47',1,'renderer_state']]],
['prev_5ftime_24',['prev_time',['../structrenderer__state.html#a774cdc17c1ec071da811f56ffd4e090b',1,'renderer_state']]],
['process_5finput_25',['process_input',['../io_8c.html#a526d50cc66c2573b2e5b96c7256e9fae',1,'process_input(struct renderer_state *state):&#160;io.c'],['../io_8h.html#a526d50cc66c2573b2e5b96c7256e9fae',1,'process_input(struct renderer_state *state):&#160;io.c']]],
['program_26',['program',['../structshader__state.html#a585871ab45d0a6f6b0f5bacbccce0896',1,'shader_state']]]
];

View file

@ -1,30 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_7.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
/* @license-end */
--></script>
</div>
</body>
</html>

View file

@ -1,8 +0,0 @@
var searchData=
[
['read_5ffile_27',['read_file',['../shaders_8c.html#abf2fc422517537eba9784a4cb7ecab69',1,'read_file(const char *const filename):&#160;shaders.c'],['../shaders_8h.html#abf2fc422517537eba9784a4cb7ecab69',1,'read_file(const char *const filename):&#160;shaders.c']]],
['readme_2emd_28',['README.md',['../README_8md.html',1,'']]],
['renderer_2ec_29',['renderer.c',['../renderer_8c.html',1,'']]],
['renderer_2eh_30',['renderer.h',['../renderer_8h.html',1,'']]],
['renderer_5fstate_31',['renderer_state',['../structrenderer__state.html',1,'']]]
];

View file

@ -1,30 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_8.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
/* @license-end */
--></script>
</div>
</body>
</html>

View file

@ -1,10 +0,0 @@
var searchData=
[
['shadertool_32',['ShaderTool',['../index.html',1,'']]],
['screen_5fshader_33',['screen_shader',['../structrenderer__state.html#a20e2c1fbe9446676f4cce1b56f501585',1,'renderer_state']]],
['shader_5ffile_34',['shader_file',['../structarguments.html#aede36bf225cf550bf4aa3b6f55c446de',1,'arguments']]],
['shader_5fstate_35',['shader_state',['../structshader__state.html',1,'']]],
['shaders_2ec_36',['shaders.c',['../shaders_8c.html',1,'']]],
['shaders_2eh_37',['shaders.h',['../shaders_8h.html',1,'']]],
['silent_38',['silent',['../structarguments.html#ab860c7ee6240047cfce0a2d3589cb53e',1,'arguments']]]
];

View file

@ -1,30 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_9.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
/* @license-end */
--></script>
</div>
</body>
</html>

View file

@ -1,5 +0,0 @@
var searchData=
[
['texture_5fcolor_5fbuffer_39',['texture_color_buffer',['../structrenderer__state.html#af738cddb5b77a8d8cf765d98953f8b1d',1,'renderer_state']]],
['time_40',['time',['../structrenderer__state.html#ab0eb1b70130c2abfed2e2366390ca20f',1,'renderer_state']]]
];

View file

@ -1,30 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_a.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
/* @license-end */
--></script>
</div>
</body>
</html>

View file

@ -1,4 +0,0 @@
var searchData=
[
['unused_41',['UNUSED',['../renderer_8c.html#aa2c1c2787f4fc780b0a902fc66d5c3ce',1,'renderer.c']]]
];

View file

@ -1,30 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_b.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
/* @license-end */
--></script>
</div>
</body>
</html>

View file

@ -1,4 +0,0 @@
var searchData=
[
['verbose_42',['verbose',['../structarguments.html#a45d8ecff22a65388fc343eeda3c2dbee',1,'arguments']]]
];

View file

@ -1,30 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_c.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
/* @license-end */
--></script>
</div>
</body>
</html>

View file

@ -1,7 +0,0 @@
var searchData=
[
['wd_43',['wd',['../structshader__state.html#a64eb6436823980d957e5fe2937b2779c',1,'shader_state']]],
['window_44',['window',['../structrenderer__state.html#a66a324cf71a869d65347455d97f82d33',1,'renderer_state']]],
['window_5fheight_45',['WINDOW_HEIGHT',['../main_8c.html#a5473cf64fa979b48335079c99532e243',1,'main.c']]],
['window_5fwidth_46',['WINDOW_WIDTH',['../main_8c.html#a498d9f026138406895e9a34b504ac6a6',1,'main.c']]]
];

View file

@ -1,30 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="classes_0.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
/* @license-end */
--></script>
</div>
</body>
</html>

View file

@ -1,4 +0,0 @@
var searchData=
[
['arguments_47',['arguments',['../structarguments.html',1,'']]]
];

View file

@ -1,30 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="classes_1.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
/* @license-end */
--></script>
</div>
</body>
</html>

View file

@ -1,4 +0,0 @@
var searchData=
[
['renderer_5fstate_48',['renderer_state',['../structrenderer__state.html',1,'']]]
];

View file

@ -1,30 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="classes_2.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
createResults();
/* @license-end */
--></script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript"><!--
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
/* @license-end */
--></script>
</div>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show more