Browse Source

Merge pull request #346 from raysan5/develop

Integrate Develop branch
Ray 8 years ago
parent
commit
c074783861
100 changed files with 11 additions and 9049 deletions
  1. 4 1
      .gitignore
  2. 7 10
      README.md
  3. 0 156
      docs/404.html
  4. 0 1
      docs/CNAME
  5. 0 173
      docs/cheatsheet/cheatsheet.html
  6. 0 56
      docs/cheatsheet/raylib_audio.c
  7. 0 30
      docs/cheatsheet/raylib_colors.c
  8. 0 128
      docs/cheatsheet/raylib_core.c
  9. 0 82
      docs/cheatsheet/raylib_defines.c
  10. 0 61
      docs/cheatsheet/raylib_models.c
  11. 0 32
      docs/cheatsheet/raylib_shaders.c
  12. 0 33
      docs/cheatsheet/raylib_shapes.c
  13. 0 29
      docs/cheatsheet/raylib_structs.c
  14. 0 19
      docs/cheatsheet/raylib_text.c
  15. 0 52
      docs/cheatsheet/raylib_textures.c
  16. 0 66
      docs/common/css/examples.css
  17. 0 35
      docs/common/css/games.css
  18. 0 111
      docs/common/css/main.css
  19. BIN
      docs/common/font/acme_7_wide_xtnd.eot
  20. BIN
      docs/common/font/acme_7_wide_xtnd.ttf
  21. BIN
      docs/common/font/acme_7_wide_xtnd.woff
  22. BIN
      docs/common/img/fb_raylib_logo.png
  23. BIN
      docs/common/img/icon_facebook.png
  24. BIN
      docs/common/img/icon_freenode_irc.png
  25. BIN
      docs/common/img/icon_github.png
  26. BIN
      docs/common/img/icon_handmade.png
  27. BIN
      docs/common/img/icon_itchio.png
  28. BIN
      docs/common/img/icon_patreon.png
  29. BIN
      docs/common/img/icon_reddit.png
  30. BIN
      docs/common/img/icon_twitch.png
  31. BIN
      docs/common/img/icon_twitter.png
  32. BIN
      docs/common/img/icon_youtube.png
  33. BIN
      docs/common/img/ln_raylib_logo.png
  34. BIN
      docs/common/img/raylib_logo.png
  35. BIN
      docs/common/img/raylib_logo_64x64.png
  36. 0 89
      docs/common/js/examples.js
  37. 0 103
      docs/common/js/games.js
  38. BIN
      docs/common/libs/fancybox/blank.gif
  39. BIN
      docs/common/libs/fancybox/fancybox_loading.gif
  40. BIN
      docs/common/libs/fancybox/[email protected]
  41. BIN
      docs/common/libs/fancybox/fancybox_overlay.png
  42. BIN
      docs/common/libs/fancybox/fancybox_sprite.png
  43. BIN
      docs/common/libs/fancybox/[email protected]
  44. BIN
      docs/common/libs/fancybox/helpers/fancybox_buttons.png
  45. 0 97
      docs/common/libs/fancybox/helpers/jquery.fancybox-buttons.css
  46. 0 122
      docs/common/libs/fancybox/helpers/jquery.fancybox-buttons.js
  47. 0 199
      docs/common/libs/fancybox/helpers/jquery.fancybox-media.js
  48. 0 55
      docs/common/libs/fancybox/helpers/jquery.fancybox-thumbs.css
  49. 0 162
      docs/common/libs/fancybox/helpers/jquery.fancybox-thumbs.js
  50. 0 284
      docs/common/libs/fancybox/jquery.fancybox.css
  51. 0 2020
      docs/common/libs/fancybox/jquery.fancybox.js
  52. 0 46
      docs/common/libs/fancybox/jquery.fancybox.pack.js
  53. 0 205
      docs/common/libs/jquery.easing.1.3.js
  54. 0 7
      docs/common/libs/jquery.mousewheel.min.js
  55. 0 137
      docs/examples.html
  56. 0 141
      docs/examples/src/audio/audio_module_playing.c
  57. 0 93
      docs/examples/src/audio/audio_music_stream.c
  58. 0 114
      docs/examples/src/audio/audio_raw_stream.c
  59. 0 67
      docs/examples/src/audio/audio_sound_loading.c
  60. 0 139
      docs/examples/src/core/core_2d_camera.c
  61. 0 92
      docs/examples/src/core/core_3d_camera_first_person.c
  62. 0 82
      docs/examples/src/core/core_3d_camera_free.c
  63. 0 72
      docs/examples/src/core/core_3d_mode.c
  64. 0 104
      docs/examples/src/core/core_3d_picking.c
  65. 0 54
      docs/examples/src/core/core_basic_window.c
  66. 0 94
      docs/examples/src/core/core_color_select.c
  67. 0 76
      docs/examples/src/core/core_drop_files.c
  68. 0 115
      docs/examples/src/core/core_gestures_detection.c
  69. 0 194
      docs/examples/src/core/core_input_gamepad.c
  70. 0 59
      docs/examples/src/core/core_input_keys.c
  71. 0 61
      docs/examples/src/core/core_input_mouse.c
  72. 0 58
      docs/examples/src/core/core_mouse_wheel.c
  73. 0 65
      docs/examples/src/core/core_random_values.c
  74. 0 85
      docs/examples/src/core/core_storage_values.c
  75. 0 84
      docs/examples/src/core/core_vr_simulator.c
  76. 0 74
      docs/examples/src/core/core_world_screen.c
  77. 0 121
      docs/examples/src/models/models_box_collisions.c
  78. 0 85
      docs/examples/src/models/models_cubicmap.c
  79. 0 75
      docs/examples/src/models/models_geometric_shapes.c
  80. 0 80
      docs/examples/src/models/models_heightmap.c
  81. 0 195
      docs/examples/src/models/models_mesh_picking.c
  82. 0 75
      docs/examples/src/models/models_obj_loading.c
  83. 0 128
      docs/examples/src/physac/physics_demo.c
  84. 0 143
      docs/examples/src/physac/physics_friction.c
  85. 0 129
      docs/examples/src/physac/physics_movement.c
  86. 0 122
      docs/examples/src/physac/physics_restitution.c
  87. 0 114
      docs/examples/src/physac/physics_shatter.c
  88. 0 121
      docs/examples/src/shaders/shaders_custom_uniform.c
  89. 0 93
      docs/examples/src/shaders/shaders_model_shader.c
  90. 0 180
      docs/examples/src/shaders/shaders_postprocessing.c
  91. 0 109
      docs/examples/src/shaders/shaders_shapes_textures.c
  92. 0 72
      docs/examples/src/shapes/shapes_basic_shapes.c
  93. 0 97
      docs/examples/src/shapes/shapes_colors_palette.c
  94. 0 59
      docs/examples/src/shapes/shapes_lines_bezier.c
  95. 0 56
      docs/examples/src/shapes/shapes_logo_raylib.c
  96. 0 160
      docs/examples/src/shapes/shapes_logo_raylib_anim.c
  97. 0 68
      docs/examples/src/text/text_bmfont_ttf.c
  98. 0 65
      docs/examples/src/text/text_bmfont_unordered.c
  99. 0 62
      docs/examples/src/text/text_format_text.c
  100. 0 116
      docs/examples/src/text/text_input_box.c

+ 4 - 1
.gitignore

@@ -42,7 +42,7 @@ Thumbs.db
 *.sbr
 *.sdf
 obj/
-# [Rr]elease/
+[Rr]elease/
 [Rr]elease.win32/
 _ReSharper*/
 [Tt]est[Rr]esult*
@@ -127,4 +127,7 @@ src/libraylib.bc
 !release/linux/libraylib.a
 !release/linux/libraylib.so
 !release/rpi/libraylib.a
+!release/win32/mingw32/raylib.dll
 
+# Meson build system
+builddir/

+ 7 - 10
README.md

@@ -1,11 +1,10 @@
-<img src="https://github.com/raysan5/raylib/blob/master/logo/logo256x256.png" width=256>
+<img align="left" src="https://github.com/raysan5/raylib/blob/master/logo/logo256x256.png" width=256>
 
-about
------
+**raylib is a simple and easy-to-use library to learn videogames programming.**
 
-raylib is a simple and easy-to-use library to learn videogames programming.
+raylib is highly inspired by Borland BGI graphics lib and by XNA framework.
 
-raylib is highly inspired by Borland BGI graphics lib and by XNA framework. 
+raylib could be useful for prototyping, tools development, graphic applications, embedded systems and education.
 
 NOTE for ADVENTURERS: raylib is a programming library to learn videogames programming; 
 no fancy interface, no visual helpers, no auto-debugging... just coding in the most 
@@ -14,20 +13,18 @@ pure spartan-programmers way. Are you ready to learn? Jump to [code examples!](h
 features
 --------
  
-   *  Written in plain C code (C99)
-   *  Uses PascalCase/camelCase notation
+   *  Written in plain C code (C99) in PascalCase/camelCase notation
    *  Hardware accelerated with OpenGL (1.1, 2.1, 3.3 or ES2)
    *  Unique OpenGL abstraction layer (usable as standalone module): [rlgl](https://github.com/raysan5/raylib/blob/master/src/rlgl.c)
    *  Powerful fonts module with SpriteFonts support (XNA bitmap fonts, AngelCode fonts, TTF)
    *  Outstanding texture formats support, including compressed formats (DXT, ETC, PVRT, ASTC)
    *  Basic 3d support for Geometrics, Models, Billboards, Heightmaps and Cubicmaps
-   *  Flexible Materials system, supporting by default diffuse, normal and specular maps
+   *  Flexible Materials system, supporting classic maps and PBR maps
    *  Shaders support, including Model shaders and Postprocessing shaders
-   *  Powerful math module for Vector, Matrix and Quaternion operations: [raymath](https://github.com/raysan5/raylib/blob/master/src/raymath.c) 
+   *  Powerful math module for Vector, Matrix and Quaternion operations: [raymath](https://github.com/raysan5/raylib/blob/master/src/raymath.h)
    *  Audio loading and playing with streaming support (WAV, OGG, FLAC, XM, MOD)
    *  Multiple platforms support: Windows, Linux, Mac, **Android**, **Raspberry Pi** and **HTML5**
    *  VR stereo rendering support with configurable HMD device parameters
-   *  Custom color palette for fancy visuals on raywhite background
    *  Minimal external dependencies (GLFW3, OpenGL, OpenAL)
    *  Complete bindings to LUA ([raylib-lua](https://github.com/raysan5/raylib-lua)) and Go ([raylib-go](https://github.com/gen2brain/raylib-go))
 

+ 0 - 156
docs/404.html

@@ -1,156 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-    <head>
-        <meta charset="utf-8">
-        <title>page not found... :(</title>
-        <style>
-            ::-moz-selection {
-                background: #b3d4fc;
-                text-shadow: none;
-            }
-
-            ::selection {
-                background: #b3d4fc;
-                text-shadow: none;
-            }
-
-            html {
-                padding: 30px 10px;
-                font-size: 20px;
-                line-height: 1.4;
-                color: #737373;
-                background: #f0f0f0;
-                -webkit-text-size-adjust: 100%;
-                -ms-text-size-adjust: 100%;
-            }
-
-            html,
-            input {
-                font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-            }
-
-            body {
-                max-width: 500px;
-                _width: 500px;
-                padding: 30px 20px 50px;
-                border: 1px solid #b3b3b3;
-                margin: 0 auto;
-                box-shadow: 0 1px 10px #a7a7a7, inset 0 1px 0 #fff;
-                background: #fcfcfc;
-            }
-
-            h1 {
-                margin: 0 10px;
-                font-size: 50px;
-                text-align: center;
-            }
-
-            h1 span {
-                color: #bbb;
-            }
-
-            h3 {
-                margin: 1.5em 0 0.5em;
-            }
-
-            p {
-                margin: 1em 0;
-            }
-
-            ul {
-                padding: 0 0 0 40px;
-                margin: 1em 0;
-            }
-
-            .container {
-                max-width: 380px;
-                _width: 380px;
-                margin: 0 auto;
-            }
-
-            /* google search */
-
-            #goog-fixurl ul {
-                list-style: none;
-                padding: 0;
-                margin: 0;
-            }
-
-            #goog-fixurl form {
-                margin: 0;
-            }
-
-            #goog-wm-qt,
-            #goog-wm-sb {
-                border: 1px solid #bbb;
-                font-size: 16px;
-                line-height: normal;
-                vertical-align: top;
-                color: #444;
-                border-radius: 2px;
-            }
-
-            #goog-wm-qt {
-                width: 220px;
-                height: 20px;
-                padding: 5px;
-                margin: 5px 10px 0 0;
-                box-shadow: inset 0 1px 1px #ccc;
-            }
-
-            #goog-wm-sb {
-                display: inline-block;
-                height: 32px;
-                padding: 0 10px;
-                margin: 5px 0 0;
-                white-space: nowrap;
-                cursor: pointer;
-                background-color: #f5f5f5;
-                background-image: -webkit-linear-gradient(rgba(255,255,255,0), #f1f1f1);
-                background-image: -moz-linear-gradient(rgba(255,255,255,0), #f1f1f1);
-                background-image: -ms-linear-gradient(rgba(255,255,255,0), #f1f1f1);
-                background-image: -o-linear-gradient(rgba(255,255,255,0), #f1f1f1);
-                -webkit-appearance: none;
-                -moz-appearance: none;
-                appearance: none;
-                *overflow: visible;
-                *display: inline;
-                *zoom: 1;
-            }
-
-            #goog-wm-sb:hover,
-            #goog-wm-sb:focus {
-                border-color: #aaa;
-                box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
-                background-color: #f8f8f8;
-            }
-
-            #goog-wm-qt:hover,
-            #goog-wm-qt:focus {
-                border-color: #105cb6;
-                outline: 0;
-                color: #222;
-            }
-
-            input::-moz-focus-inner {
-                padding: 0;
-                border: 0;
-            }
-        </style>
-    </head>
-    <body>
-        <div class="container">
-            <h1>not found <span>:(</span></h1>
-            <p>Sorry, but the page you were trying to view does not exist.</p>
-            <p>It looks like this was the result of either:</p>
-            <ul>
-                <li>a mistyped address</li>
-                <li>an out-of-date link</li>
-            </ul>
-            <script>
-                var GOOG_FIXURL_LANG = (navigator.language || '').slice(0,2),GOOG_FIXURL_SITE = location.host;
-            </script>
-            <script src="//linkhelp.clients.google.com/tbproxy/lh/wm/fixurl.js"></script>
-        </div>
-    </body>
-</html>

+ 0 - 1
docs/CNAME

@@ -1 +0,0 @@
-www.raylib.com

+ 0 - 173
docs/cheatsheet/cheatsheet.html

@@ -1,173 +0,0 @@
-<!DOCTYPE html>
-<html>
-	<head>
-    	<meta charset="utf-8">
-        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-        
-		<title>raylib - cheatsheet</title>
-		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-		
-		<meta name="title" content="raylib - cheatsheet">
-		<meta name="description" content="raylib is a simple and easy-to-use library to learn videogames programming. Don't miss latest functions added to raylib... check raylib cheatsheet">
-		<meta name="keywords" content="raylib, videogames, programming, C, C++, library, learn, study, simple, easy, free, open source, raysan">
-		<meta name="viewport" content="width=device-width">
-        
-        <!-- Facebook metatags for sharing -->
-        <meta property="og:title" content="raylib - cheatsheet"/>
-        <meta property="og:image" content="http://www.raylib.com/common/img/fb_raylib_logo.png"/>
-        <meta property="og:url" content="http://www.raylib.com" />
-        <meta property="og:site_name" content="raylib"/>
-        <meta property="og:description" content="don't miss latest functions added to raylib... check raylib cheatsheet"/>
-		
-		<!-- Add jQuery library -->
-		<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
-		
-		<!-- hightlight.js - Syntax highlighting for the Web -->
-        <link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.1/styles/docco.min.css">
-		<script src="http://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.1/highlight.min.js"></script>
-		
-		<style type="text/css">
-			@font-face {
-				font-family: 'grixel_acme_7_wide_xtnd';
-				src: url('../common/font/acme_7_wide_xtnd.eot');
-				src: url('../common/font/acme_7_wide_xtnd.eot?#iefix') format('embedded-opentype'),
-					 url('../common/font/acme_7_wide_xtnd.woff') format('woff'),
-					 url('../common/font/acme_7_wide_xtnd.ttf') format('truetype');
-				font-weight: normal;
-				font-style: normal;
-				font-size-adjust:0.49;
-			}
-            body{background-color:#f5f5f5;}
-            #fulldata{width: 1315px!important;}
-			.eximage img{ margin: 0 auto; border: 1px solid; border-color: black; width:770px; height:auto;}
-			pre code{ width: auto!important; border: 1px solid; border-color:#b0b0b0; width:758px; height:auto; }
-			.exdownbtn{width:250px; height:30px; float:left; position: relative; cursor:pointer; font-weight:bold; font-size:10px; 
-						line-height:30px; text-align: center; border-width:5px;	background-color:#e1e1e1; color:#5c5a5a; 
-						border:4px solid #898888; font-family: grixel_acme_7_wide_xtnd, Courier New, Verdana, Arial;}
-			.exdownbtn:hover{background-color:#f0d6d6; color:#c55757; border:4px solid #e66666;}
-            #core pre code{border:10px solid; border-color:#888888; background-color:#dbdbe1; }
-            #shapes pre code{border:10px solid; border-color:#e66666; background-color:#e9d0d6; }
-            #textures pre code{border:10px solid; border-color:#75a06d; background-color:#c3e4bf; }
-            #text pre code{border:10px solid; border-color:#52b296; background-color:#b9e9dd; }
-            #models pre code{border:10px solid; border-color:#5d9cbd; background-color:#b9d6e8; }
-            #shaders pre code{border:10px solid; border-color:#a864d2; background-color:#e0c6f1; }
-            #audio pre code{border:10px solid; border-color:#d3b157; background-color:#e5d7ae; }
-            #structs pre code{border:10px solid; border-color:#d2c9c6; background-color:#f8f8ff; height: 440px!important}
-            #colors pre code{border:10px solid; border-color:#c6d2c6; background-color:#e9f1f2; width:600px!important; }
-            #logo{width:128px; height:128px; float:left; position:relative; background-image:url(../common/img/raylib_logo.png);}
-            p{font-family: grixel_acme_7_wide_xtnd, Courier New, Verdana, Arial; font-size:13px; line-height:24px;}
-            #header{position:relative; height:110px; width: 1000px;}
-            #title, #plinks, #version{position:relative; float:left; margin:0px; margin-left:10px; margin-top:10px;}
-            #plinks{color: gray;}
-            #plinks a, #copyright a{color: gray; text-decoration:none;}
-            #plinks a:hover{color: black;}
-            #version {margin-top: 23px;}
-            #pcore{margin-bottom:-12px; margin-left:12px; color:#5c5a5a;}
-            #pshapes{margin-bottom:-12px; margin-left:12px; color:#c55757;}
-            #ptextures{margin-bottom:-12px; margin-left:12px; color:#60815a;}
-            #ptext{margin-bottom:-12px; margin-left:12px; color:#377764;}
-            #pmodels{margin-bottom:-12px; margin-left:12px; color:#417794;}
-            #pshaders{margin-bottom:-12px; margin-left:12px; color:#a864d2;}
-            #paudio{margin-bottom:-12px; margin-left:12px; color:#8c7539;}
-            #pstructs{margin-bottom:-12px; margin-left:12px; color:#bcbccd;}
-            #pcolors{margin-bottom:-12px; margin-left:12px; color:#bcbccd;}
-            
-            #leftgroup{position:relative; float:left; width:680px; }
-            #structs{width:660px!important;}
-            #colors{position:relative; float:left; width: auto; }
-
-            #copyright{color:#8b8b8b; font-size:10px; margin-left:590px; display:inline; }
-            #copyright a:hover{color:black;}
-        </style>
-		
-		<script type="text/javascript">
-			$(document).ready(function() {
-				$.get('raylib_core.c', function(data) { 
-					$('#core pre code').text(data);
-					$('#core pre code').each(function(i, e) {hljs.highlightBlock(e)});
-				}, 'text');
-                $.get('raylib_shapes.c', function(data) { 
-					$('#shapes pre code').text(data);
-					$('#shapes pre code').each(function(i, e) {hljs.highlightBlock(e)});
-				}, 'text');
-                $.get('raylib_textures.c', function(data) { 
-					$('#textures pre code').text(data);
-					$('#textures pre code').each(function(i, e) {hljs.highlightBlock(e)});
-				}, 'text');
-                $.get('raylib_text.c', function(data) { 
-					$('#text pre code').text(data);
-					$('#text pre code').each(function(i, e) {hljs.highlightBlock(e)});
-				}, 'text');
-                $.get('raylib_models.c', function(data) { 
-					$('#models pre code').text(data);
-					$('#models pre code').each(function(i, e) {hljs.highlightBlock(e)});
-				}, 'text');
-                $.get('raylib_shaders.c', function(data) { 
-					$('#shaders pre code').text(data);
-					$('#shaders pre code').each(function(i, e) {hljs.highlightBlock(e)});
-				}, 'text');
-                $.get('raylib_audio.c', function(data) { 
-					$('#audio pre code').text(data);
-					$('#audio pre code').each(function(i, e) {hljs.highlightBlock(e)});
-				}, 'text');
-                $.get('raylib_colors.c', function(data) { 
-					$('#colors pre code').text(data);
-					$('#colors pre code').each(function(i, e) {hljs.highlightBlock(e)});
-				}, 'text');
-                 $.get('raylib_structs.c', function(data) { 
-					$('#structs pre code').text(data);
-					$('#structs pre code').each(function(i, e) {hljs.highlightBlock(e)});
-				}, 'text');
-			});
-		</script>
-	</head>
-	
-	<body>
-        <div id="header">
-            <a id="logo" href="http://www.raylib.com/index.html"></a>
-            <p id="title">[simple and easy-to-use library to learn videogames programming]</p>
-            <p id="plinks">[<a href="http://www.facebook.com/raylibgames" target="_blank">www.facebook.com/raylibgames</a>][<a href="https://github.com/raysan5/raylib">github.com/raysan5/raylib</a>]</p>
-            <p id="version">v1.7.0 quick reference card</p>
-        </div>
-        <br>
-        <div id="fulldata">
-            <p id="pcore">module: core</p>
-            <div id="core"><pre><code class="cpp"></code></pre></div>
-            <p id="pshapes">module: shapes</p>
-            <div id="shapes"><pre><code class="cpp"></code></pre></div>
-            <p id="ptextures">module: textures</p>
-            <div id="textures"><pre><code class="cpp"></code></pre></div>
-            <p id="ptext">module: text</p>
-            <div id="text"><pre><code class="cpp"></code></pre></div>
-            <p id="pmodels">module: models</p>
-            <div id="models"><pre><code class="cpp"></code></pre></div>
-            <p id="pshaders">module: shaders (rlgl)</p>
-            <div id="shaders"><pre><code class="cpp"></code></pre></div>
-            <p id="paudio">module: audio</p>
-            <div id="audio"><pre><code class="cpp"></code></pre></div>
-                    
-            <div id="fullgroup">
-                <div id="leftgroup">
-                    <p id="pstructs">structs</p>
-                    <div id="structs"><pre><code class="cpp"></code></pre></div>
-                </div>
-                <p id="pcolors">colors</p>
-                <div id="colors"><pre><code class="cpp"></code></pre></div>
-            </div>
-            <p id="copyright">raylib quick reference card - Copyright (c) 2013-2017 Ramon Santamaria (<a href="http://www.twitter.com/raysan5">@raysan5</a>)</p>
-        </div>
-        
-
-		<!-- Google Analytics tracking code -->
-		<script>
-			(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-			(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-			m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-			})(window,document,'script','http://www.google-analytics.com/analytics.js','ga');
-
-			ga('create', 'UA-45733555-1', 'raylib.com');
-            ga('require', 'linkid', 'linkid.js');
-			ga('send', 'pageview');
-		</script>
-	</body>
-</html>

+ 0 - 56
docs/cheatsheet/raylib_audio.c

@@ -1,56 +0,0 @@
-
-    // Audio device management functions
-    void InitAudioDevice(void);                                                     // Initialize audio device and context
-    void CloseAudioDevice(void);                                                    // Close the audio device and context (and music stream)
-    bool IsAudioDeviceReady(void);                                                  // Check if audio device is ready
-    void SetMasterVolume(float volume);                                             // Set master volume (listener)
-
-    // Wave/Sound loading/unloading functions
-    Wave LoadWave(const char *fileName);                                            // Load wave data from file into RAM
-    Wave LoadWaveEx(float *data, int sampleCount, int sampleRate, 
-                    int sampleSize, int channels);                                  // Load wave data from float array data (32bit)
-    Sound LoadSound(const char *fileName);                                          // Load sound to memory
-    Sound LoadSoundFromWave(Wave wave);                                             // Load sound to memory from wave data
-    void UpdateSound(Sound sound, void *data, int numSamples);                      // Update sound buffer with new data
-    void UnloadWave(Wave wave);                                                     // Unload wave data
-    void UnloadSound(Sound sound);                                                  // Unload sound
-    
-    // Wave/Sound management functions
-    void PlaySound(Sound sound);                                                    // Play a sound
-    void PauseSound(Sound sound);                                                   // Pause a sound
-    void ResumeSound(Sound sound);                                                  // Resume a paused sound
-    void StopSound(Sound sound);                                                    // Stop playing a sound
-    bool IsSoundPlaying(Sound sound);                                               // Check if a sound is currently playing
-    void SetSoundVolume(Sound sound, float volume);                                 // Set volume for a sound (1.0 is max level)
-    void SetSoundPitch(Sound sound, float pitch);                                   // Set pitch for a sound (1.0 is base level)
-    void WaveFormat(Wave *wave, int sampleRate, int sampleSize, int channels);      // Convert wave data to desired format
-    Wave WaveCopy(Wave wave);                                                       // Copy a wave to a new wave
-    void WaveCrop(Wave *wave, int initSample, int finalSample);                     // Crop a wave to defined samples range
-    float *GetWaveData(Wave wave);                                                  // Get samples data from wave as a floats array
-    
-    // Music management functions
-    Music LoadMusicStream(const char *fileName);                                    // Load music stream from file
-    void UnloadMusicStream(Music music);                                            // Unload music stream
-    void PlayMusicStream(Music music);                                              // Start music playing
-    void UpdateMusicStream(Music music);                                            // Updates buffers for music streaming
-    void StopMusicStream(Music music);                                              // Stop music playing
-    void PauseMusicStream(Music music);                                             // Pause music playing
-    void ResumeMusicStream(Music music);                                            // Resume playing paused music
-    bool IsMusicPlaying(Music music);                                               // Check if music is playing
-    void SetMusicVolume(Music music, float volume);                                 // Set volume for music (1.0 is max level)
-    void SetMusicPitch(Music music, float pitch);                                   // Set pitch for a music (1.0 is base level)
-    void SetMusicLoopCount(Music music, float count);                               // Set music loop count (loop repeats)
-    float GetMusicTimeLength(Music music);                                          // Get music time length (in seconds)
-    float GetMusicTimePlayed(Music music);                                          // Get current music time played (in seconds)
-
-    // AudioStream management functions
-    AudioStream InitAudioStream(unsigned int sampleRate, unsigned int sampleSize,
-                                unsigned int channels);                             // Init audio stream (to stream raw audio pcm data)
-    void UpdateAudioStream(AudioStream stream, void *data, int numSamples);         // Update audio stream buffers with data
-    void CloseAudioStream(AudioStream stream);                                      // Close audio stream and free memory
-    bool IsAudioBufferProcessed(AudioStream stream);                                // Check if any audio stream buffers requires refill
-    void PlayAudioStream(AudioStream stream);                                       // Play audio stream
-    void PauseAudioStream(AudioStream stream);                                      // Pause audio stream
-    void ResumeAudioStream(AudioStream stream);                                     // Resume audio stream
-    void StopAudioStream(AudioStream stream);                                       // Stop audio stream
-    

+ 0 - 30
docs/cheatsheet/raylib_colors.c

@@ -1,30 +0,0 @@
-
-    // Custom raylib color palette for amazing visuals
-    #define LIGHTGRAY  (Color){ 200, 200, 200, 255 }        // Light Gray
-    #define GRAY       (Color){ 130, 130, 130, 255 }        // Gray
-    #define DARKGRAY   (Color){ 80, 80, 80, 255 }           // Dark Gray
-    #define YELLOW     (Color){ 253, 249, 0, 255 }          // Yellow
-    #define GOLD       (Color){ 255, 203, 0, 255 }          // Gold
-    #define ORANGE     (Color){ 255, 161, 0, 255 }          // Orange
-    #define PINK       (Color){ 255, 109, 194, 255 }        // Pink
-    #define RED        (Color){ 230, 41, 55, 255 }          // Red
-    #define MAROON     (Color){ 190, 33, 55, 255 }          // Maroon
-    #define GREEN      (Color){ 0, 228, 48, 255 }           // Green
-    #define LIME       (Color){ 0, 158, 47, 255 }           // Lime
-    #define DARKGREEN  (Color){ 0, 117, 44, 255 }           // Dark Green
-    #define SKYBLUE    (Color){ 102, 191, 255, 255 }        // Sky Blue
-    #define BLUE       (Color){ 0, 121, 241, 255 }          // Blue
-    #define DARKBLUE   (Color){ 0, 82, 172, 255 }           // Dark Blue
-    #define PURPLE     (Color){ 200, 122, 255, 255 }        // Purple
-    #define VIOLET     (Color){ 135, 60, 190, 255 }         // Violet
-    #define DARKPURPLE (Color){ 112, 31, 126, 255 }         // Dark Purple
-    #define BEIGE      (Color){ 211, 176, 131, 255 }        // Beige
-    #define BROWN      (Color){ 127, 106, 79, 255 }         // Brown
-    #define DARKBROWN  (Color){ 76, 63, 47, 255 }           // Dark Brown
-
-    #define WHITE      (Color){ 255, 255, 255, 255 }        // White
-    #define BLACK      (Color){ 0, 0, 0, 255 }              // Black
-    #define BLANK      (Color){ 0, 0, 0, 0 }                // Transparent
-    #define MAGENTA    (Color){ 255, 0, 255, 255 }          // Magenta
-    #define RAYWHITE   (Color){ 245, 245, 245, 255 }        // Ray White
-    

+ 0 - 128
docs/cheatsheet/raylib_core.c

@@ -1,128 +0,0 @@
-
-    // Window-related functions
-    void InitWindow(int width, int height, char* title);                    // Initialize Window and Graphics Context (OpenGL)
-    void CloseWindow(void);                                                 // Close window and unload OpenGL context
-    bool WindowShouldClose(void);                                           // Check if KEY_ESCAPE pressed or Close icon pressed
-    bool IsWindowMinimized(void);                                           // Check if window has been minimized (or lost focus)
-    void ToggleFullscreen(void);                                            // Toggle fullscreen mode (only PLATFORM_DESKTOP)
-    void SetWindowIcon(Image image);                                        // Set icon for window (only PLATFORM_DESKTOP)
-    void SetWindowPosition(int x, int y);                                   // Set window position on screen (only PLATFORM_DESKTOP)
-    void SetWindowMonitor(int monitor);                                     // Set monitor for the current window (fullscreen mode)
-    void SetWindowMinSize(int width, int height);                           // Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE)
-    int GetScreenWidth(void);                                               // Get current screen width
-    int GetScreenHeight(void);                                              // Get current screen height
-    
-    // Cursor-related functions
-    void ShowCursor(void);                                                  // Shows cursor
-    void HideCursor(void);                                                  // Hides cursor
-    bool IsCursorHidden(void);                                              // Check if cursor is not visible
-    void EnableCursor(void);                                                // Enables cursor (unlock cursor)
-    void DisableCursor(void);                                               // Disables cursor (lock cursor)
-
-    // Drawing-related functions
-    void ClearBackground(Color color);                                      // Set background color (framebuffer clear color)
-    void BeginDrawing(void);                                                // Setup canvas (framebuffer) to start drawing
-    void EndDrawing(void);                                                  // End canvas drawing and swap buffers (double buffering)
-    void Begin2dMode(Camera2D camera);                                      // Initialize 2D mode with custom camera (2D)
-    void End2dMode(void);                                                   // Ends 2D mode with custom camera
-    void Begin3dMode(Camera camera);                                        // Initializes 3D mode with custom camera (3D)
-    void End3dMode(void);                                                   // Ends 3D mode and returns to default 2D orthographic mode
-    void BeginTextureMode(RenderTexture2D target);                          // Initializes render texture for drawing
-    void EndTextureMode(void);                                              // Ends drawing to render texture
-
-    // Screen-space-related functions
-    Ray GetMouseRay(Vector2 mousePosition, Camera camera);                  // Returns a ray trace from mouse position
-    Vector2 GetWorldToScreen(Vector3 position, Camera camera);              // Returns the screen space position for a 3d world space position
-    Matrix GetCameraMatrix(Camera camera);                                  // Returns camera transform matrix (view matrix)
-
-    // Timming-related functions
-    void SetTargetFPS(int fps);                                             // Set target FPS (maximum)
-    int GetFPS(void);                                                       // Returns current FPS
-    float GetFrameTime(void);                                               // Returns time in seconds for last frame drawn
-
-    // Color-related functions
-    int GetHexValue(Color color);                                           // Returns hexadecimal value for a Color
-    Color GetColor(int hexValue);                                           // Returns a Color struct from hexadecimal value
-    Color Fade(Color color, float alpha);                                   // Color fade-in or fade-out, alpha goes from 0.0f to 1.0f
-    float *ColorToFloat(Color color);                                       // Converts Color to float array and normalizes
-    float *VectorToFloat(Vector3 vec);                                      // Converts Vector3 to float array
-    float *MatrixToFloat(Matrix mat);                                       // Converts Matrix to float array
-
-    // Misc. functions
-    void ShowLogo(void);                                                    // Activate raylib logo at startup (can be done with flags)
-    void SetConfigFlags(char flags);                                        // Setup window configuration flags (view FLAGS)
-    void TraceLog(int logType, const char *text, ...);                      // Show trace log messages (INFO, WARNING, ERROR, DEBUG)
-    void TakeScreenshot(const char *fileName);                              // Takes a screenshot of current screen (saved a .png)
-    int GetRandomValue(int min, int max);                                   // Returns a random value between min and max (both included)
-
-    // Files management functions
-    bool IsFileExtension(const char *fileName, const char *ext);            // Check file extension
-    const char *GetDirectoryPath(const char *fileName);                     // Get directory for a given fileName (with path)
-    const char *GetWorkingDirectory(void);                                  // Get current working directory
-    bool ChangeDirectory(const char *dir);                                  // Change working directory, returns true if success
-    bool IsFileDropped(void);                                               // Check if a file has been dropped into window
-    char **GetDroppedFiles(int *count);                                     // Get dropped files names
-    void ClearDroppedFiles(void);                                           // Clear dropped files paths buffer
-
-    // Persistent storage management
-    void StorageSaveValue(int position, int value);                         // Save integer value to storage file (to defined position)
-    int StorageLoadValue(int position);                                     // Load integer value from storage file (from defined position)
-    
-    // Input-related functions: keyboard
-    bool IsKeyPressed(int key);                                             // Detect if a key has been pressed once
-    bool IsKeyDown(int key);                                                // Detect if a key is being pressed
-    bool IsKeyReleased(int key);                                            // Detect if a key has been released once
-    bool IsKeyUp(int key);                                                  // Detect if a key is NOT being pressed
-    int GetKeyPressed(void);                                                // Get latest key pressed
-    void SetExitKey(int key);                                               // Set a custom key to exit program (default is ESC)
-
-    // Input-related functions: gamepads
-    bool IsGamepadAvailable(int gamepad);                                   // Detect if a gamepad is available
-    bool IsGamepadName(int gamepad, const char *name);                      // Check gamepad name (if available)
-    const char *GetGamepadName(int gamepad);                                // Return gamepad internal name id
-    bool IsGamepadButtonPressed(int gamepad, int button);                   // Detect if a gamepad button has been pressed once
-    bool IsGamepadButtonDown(int gamepad, int button);                      // Detect if a gamepad button is being pressed
-    bool IsGamepadButtonReleased(int gamepad, int button);                  // Detect if a gamepad button has been released once
-    bool IsGamepadButtonUp(int gamepad, int button);                        // Detect if a gamepad button is NOT being pressed
-    int GetGamepadButtonPressed(void);                                      // Get the last gamepad button pressed
-    int GetGamepadAxisCount(int gamepad);                                   // Return gamepad axis count for a gamepad
-    float GetGamepadAxisMovement(int gamepad, int axis);                    // Return axis movement value for a gamepad axis
-
-    // Input-related functions: mouse
-    bool IsMouseButtonPressed(int button);                                  // Detect if a mouse button has been pressed once
-    bool IsMouseButtonDown(int button);                                     // Detect if a mouse button is being pressed
-    bool IsMouseButtonReleased(int button);                                 // Detect if a mouse button has been released once
-    bool IsMouseButtonUp(int button);                                       // Detect if a mouse button is NOT being pressed
-    int GetMouseX(void);                                                    // Returns mouse position X
-    int GetMouseY(void);                                                    // Returns mouse position Y
-    Vector2 GetMousePosition(void);                                         // Returns mouse position XY
-    void SetMousePosition(Vector2 position);                                // Set mouse position XY
-    int GetMouseWheelMove(void);                                            // Returns mouse wheel movement Y
-
-    // Input-related functions: touch
-    int GetTouchX(void);                                                    // Get touch position X for touch point 0 (relative to screen size)
-    int GetTouchY(void);                                                    // Get touch position Y for touch point 0 (relative to screen size)
-    Vector2 GetTouchPosition(int index);                                    // Get touch position XY for a touch point index (relative to screen size)
-
-    // Gestures-related functions
-    void SetGesturesEnabled(unsigned int gestureFlags);                     // Enable a set of gestures using flags
-    bool IsGestureDetected(int gesture);                                    // Check if a gesture have been detected
-    int GetGestureDetected(void);                                           // Get latest detected gesture
-    int GetTouchPointsCount(void);                                          // Get touch points count
-    float GetGestureHoldDuration(void);                                     // Get gesture hold time in milliseconds
-    Vector2 GetGestureDragVector(void);                                     // Get gesture drag vector
-    float GetGestureDragAngle(void);                                        // Get gesture drag angle
-    Vector2 GetGesturePinchVector(void);                                    // Get gesture pinch delta
-    float GetGesturePinchAngle(void);                                       // Get gesture pinch angle
-    
-    // Camera-related functions
-    SetCameraMode(Camera camera, int mode);                                 // Set camera mode (multiple camera modes available)
-    void UpdateCamera(Camera *camera);                                      // Update camera position for selected mode
-    void SetCameraPanControl(int panKey);                                   // Set camera pan key to combine with mouse movement (free camera)
-    void SetCameraAltControl(int altKey);                                   // Set camera alt key to combine with mouse movement (free camera)
-    void SetCameraSmoothZoomControl(int szKey);                             // Set camera smooth zoom key to combine with mouse (free camera)
-    void SetCameraMoveControls(int frontKey, int backKey,
-                               int rightKey, int leftKey,
-                               int upKey, int downKey);                     // Set camera move controls (1st person and 3rd person cameras)
-
-                               

+ 0 - 82
docs/cheatsheet/raylib_defines.c

@@ -1,82 +0,0 @@
-
-
-    // Keyboard Function Keys
-    #define KEY_SPACE            32
-    #define KEY_ESCAPE          256
-    #define KEY_ENTER           257
-    #define KEY_BACKSPACE       259
-    #define KEY_RIGHT           262
-    #define KEY_LEFT            263
-    #define KEY_DOWN            264
-    #define KEY_UP              265
-    #define KEY_F1              290
-    #define KEY_F2              291
-    #define KEY_F3              292
-    #define KEY_F4              293
-    #define KEY_F5              294
-    #define KEY_F6              295
-    #define KEY_F7              296
-    #define KEY_F8              297
-    #define KEY_F9              298
-    #define KEY_F10             299
-    #define KEY_LEFT_SHIFT      340
-    #define KEY_LEFT_CONTROL    341
-    #define KEY_LEFT_ALT        342
-    #define KEY_RIGHT_SHIFT     344
-    #define KEY_RIGHT_CONTROL   345
-    #define KEY_RIGHT_ALT       346
-
-    // Mouse Buttons
-    #define MOUSE_LEFT_BUTTON     0
-    #define MOUSE_RIGHT_BUTTON    1
-    #define MOUSE_MIDDLE_BUTTON   2
-
-    // Gamepad Number
-    #define GAMEPAD_PLAYER1       0
-    #define GAMEPAD_PLAYER2       1
-    #define GAMEPAD_PLAYER3       2
-    #define GAMEPAD_PLAYER4       3
-
-    // Gamepad Buttons
-    // NOTE: Adjusted for a PS3 USB Controller
-    #define GAMEPAD_BUTTON_A      2
-    #define GAMEPAD_BUTTON_B      1
-    #define GAMEPAD_BUTTON_X      3
-    #define GAMEPAD_BUTTON_Y      4
-    #define GAMEPAD_BUTTON_R1     7
-    #define GAMEPAD_BUTTON_R2     5
-    #define GAMEPAD_BUTTON_L1     6
-    #define GAMEPAD_BUTTON_L2     8
-    #define GAMEPAD_BUTTON_SELECT 9
-    #define GAMEPAD_BUTTON_START 10
-
-
-    // Some Basic Colors
-    // NOTE: Custom raylib color palette for amazing visuals
-    #define LIGHTGRAY  (Color){ 200, 200, 200, 255 }   // Light Gray
-    #define GRAY       (Color){ 130, 130, 130, 255 }   // Gray
-    #define DARKGRAY   (Color){ 80, 80, 80, 255 }      // Dark Gray
-    #define YELLOW     (Color){ 253, 249, 0, 255 }     // Yellow
-    #define GOLD       (Color){ 255, 203, 0, 255 }     // Gold
-    #define ORANGE     (Color){ 255, 161, 0, 255 }     // Orange
-    #define PINK       (Color){ 255, 109, 194, 255 }   // Pink
-    #define RED        (Color){ 230, 41, 55, 255 }     // Red
-    #define MAROON     (Color){ 190, 33, 55, 255 }     // Maroon
-    #define GREEN      (Color){ 0, 228, 48, 255 }      // Green
-    #define LIME       (Color){ 0, 158, 47, 255 }      // Lime
-    #define DARKGREEN  (Color){ 0, 117, 44, 255 }      // Dark Green
-    #define SKYBLUE    (Color){ 102, 191, 255, 255 }   // Sky Blue
-    #define BLUE       (Color){ 0, 121, 241, 255 }     // Blue
-    #define DARKBLUE   (Color){ 0, 82, 172, 255 }      // Dark Blue
-    #define PURPLE     (Color){ 200, 122, 255, 255 }   // Purple
-    #define VIOLET     (Color){ 135, 60, 190, 255 }    // Violet
-    #define DARKPURPLE (Color){ 112, 31, 126, 255 }    // Dark Purple
-    #define BEIGE      (Color){ 211, 176, 131, 255 }   // Beige
-    #define BROWN      (Color){ 127, 106, 79, 255 }    // Brown
-    #define DARKBROWN  (Color){ 76, 63, 47, 255 }      // Dark Brown
-
-    #define WHITE      (Color){ 255, 255, 255, 255 }   // White
-    #define BLACK      (Color){ 0, 0, 0, 255 }         // Black
-    #define BLANK      (Color){ 0, 0, 0, 0 }           // Blank (Transparent)
-    #define MAGENTA    (Color){ 255, 0, 255, 255 }     // Magenta
-    #define RAYWHITE   (Color){ 245, 245, 245, 255 }   // Ray White (raylib logo)

+ 0 - 61
docs/cheatsheet/raylib_models.c

@@ -1,61 +0,0 @@
-
-    // Basic geometric 3D shapes drawing functions
-    void DrawLine3D(Vector3 startPos, Vector3 endPos, Color color);                                     // Draw a line in 3D world space
-    void DrawCircle3D(Vector3 center, float radius, Vector3 rotationAxis, 
-                      float rotationAngle, Color color);                                                // Draw a circle in 3D world space
-    void DrawCube(Vector3 position, float width, float height, float lenght, Color color);              // Draw cube
-    void DrawCubeV(Vector3 position, Vector3 size, Color color);                                        // Draw cube (Vector version)
-    void DrawCubeWires(Vector3 position, float width, float height, float lenght, Color color);         // Draw cube wires
-    void DrawCubeTexture(Texture2D texture, Vector3 position, float width, 
-                         float height, float lenght, Color color);                                      // Draw cube textured
-    void DrawSphere(Vector3 centerPos, float radius, Color color);                                      // Draw sphere
-    void DrawSphereEx(Vector3 centerPos, float radius, int rings, int slices, Color color);             // Draw sphere with extended parameters
-    void DrawSphereWires(Vector3 centerPos, float radius, int rings, int slices, Color color);          // Draw sphere wires
-    void DrawCylinder(Vector3 position, float radiusTop, float radiusBottom, 
-                      float height, int slices, Color color);                                           // Draw a cylinder/cone
-    void DrawCylinderWires(Vector3 position, float radiusTop, float radiusBottom, 
-                           float height, int slices, Color color);                                      // Draw a cylinder/cone wires
-    void DrawPlane(Vector3 centerPos, Vector2 size, Color color);                                       // Draw a plane XZ
-    void DrawRay(Ray ray, Color color);                                                                 // Draw a ray line
-    void DrawGrid(int slices, float spacing);                                                           // Draw a grid (centered at (0, 0, 0))
-    void DrawGizmo(Vector3 position);                                                                   // Draw simple gizmo
-
-    // Model loading/unloading functions
-    Mesh LoadMesh(const char *fileName);                                                                // Load mesh from file
-    Mesh LoadMeshEx(int numVertex, float *vData, float *vtData, float *vnData, Color *cData);           // Load mesh from vertex data
-    Model LoadModel(const char *fileName);                                                              // Load model from file
-    Model LoadModelFromMesh(Mesh data, bool dynamic);                                                   // Load model from mesh data
-    Model LoadHeightmap(Image heightmap, Vector3 size);                                                 // Load heightmap model from image data
-    Model LoadCubicmap(Image cubicmap);                                                                 // Load cubes-based map model from image data
-    void UnloadMesh(Mesh *mesh);                                                                        // Unload mesh from memory (RAM and/or VRAM)
-    void UnloadModel(Model model);                                                                      // Unload model from memory (RAM and/or VRAM)
-
-    // Material loading/unloading functions
-    Material LoadMaterial(const char *fileName);                                                        // Load material data (from file)
-    Material LoadDefaultMaterial(void);                                                                 // Load default material (uses default models shader)
-    void UnloadMaterial(Material material);                                                             // Unload material textures from VRAM
-
-    // Model drawing functions
-    void DrawModel(Model model, Vector3 position, float scale, Color tint);                             // Draw a model (with texture if set)
-    void DrawModelEx(Model model, Vector3 position, Vector3 rotationAxis, 
-                     float rotationAngle, Vector3 scale, Color tint);                                   // Draw a model with extended parameters
-    void DrawModelWires(Model model, Vector3 position, float scale, Color tint);                        // Draw a model wires (with texture if set)
-    void DrawModelWiresEx(Model model, Vector3 position, Vector3 rotationAxis, 
-                          float rotationAngle, Vector3 scale, Color tint);                              // Draw a model wires
-    void DrawBoundingBox(BoundingBox box, Color color);                                                 // Draw bounding box (wires)
-    void DrawBillboard(Camera camera, Texture2D texture, Vector3 center, float size, Color tint);       // Draw a billboard texture
-    void DrawBillboardRec(Camera camera, Texture2D texture, Rectangle sourceRec, 
-                          Vector3 center, float size, Color tint);                                      // Draw a billboard texture defined by sourceRec
-
-    // Collision detection functions
-    bool CheckCollisionSpheres(Vector3 centerA, float radiusA, Vector3 centerB, float radiusB);                     // Detect collision between two spheres
-    bool CheckCollisionBoxes(Vector3 minBBox1, Vector3 maxBBox1, Vector3 minBBox2, Vector3 maxBBox2);               // Detect collision between two boxes
-    bool CheckCollisionBoxSphere(Vector3 minBBox, Vector3 maxBBox, Vector3 centerSphere, float radiusSphere);       // Detect collision between box and sphere
-    bool CheckCollisionRaySphere(Ray ray, Vector3 spherePosition, float sphereRadius);                              // Detect collision between ray and sphere
-    bool CheckCollisionRaySphereEx(Ray ray, Vector3 spherePosition, float sphereRadius, Vector3 *collisionPoint);   // Detect collision between ray and sphere ex.
-    bool CheckCollisionRayBox(Ray ray, Vector3 minBBox, Vector3 maxBBox);                                           // Detect collision between ray and box
-    BoundingBox CalculateBoundingBox(Mesh mesh);                                                                    // Calculate mesh bounding box limits
-    RayHitInfo GetCollisionRayMesh(Ray ray, Mesh *mesh);                                                // Get collision info between ray and mesh
-    RayHitInfo GetCollisionRayTriangle(Ray ray, Vector3 p1, Vector3 p2, Vector3 p3);                    // Get collision info between ray and triangle
-    RayHitInfo GetCollisionRayGround(Ray ray, float groundHeight);                                      // Get collision info between ray and ground plane (Y-normal plane)
-    

+ 0 - 32
docs/cheatsheet/raylib_shaders.c

@@ -1,32 +0,0 @@
-
-    // Shader loading/unloading functions
-    char *LoadText(const char *fileName);                                                               // Load chars array from text file
-    Shader LoadShader(char *vsFileName, char *fsFileName);                                              // Load a custom shader and bind default locations
-    void UnloadShader(Shader shader);                                                                   // Unload a custom shader from memory
-    
-    Shader GetDefaultShader(void);                                                                      // Get default shader
-    Texture2D GetDefaultTexture(void);                                                                  // Get default texture
-
-    // Shader access functions
-    int GetShaderLocation(Shader shader, const char *uniformName);                                      // Get shader uniform location
-    void SetShaderValue(Shader shader, int uniformLoc, float *value, int size);                         // Set shader uniform value (float)
-    void SetShaderValuei(Shader shader, int uniformLoc, int *value, int size);                          // Set shader uniform value (int)
-    void SetShaderValueMatrix(Shader shader, int uniformLoc, Matrix mat);                               // Set shader uniform value (matrix 4x4)
-    void SetMatrixProjection(Matrix proj);                                                              // Set a custom projection matrix (replaces internal projection matrix)
-    void SetMatrixModelview(Matrix view);                                                               // Set a custom modelview matrix (replaces internal modelview matrix)
-
-    // Shading beegin/end functions
-    void BeginShaderMode(Shader shader);                                                                // Begin custom shader drawing
-    void EndShaderMode(void);                                                                           // End custom shader drawing (use default shader)
-    void BeginBlendMode(int mode);                                                                      // Begin blending mode (alpha, additive, multiplied)
-    void EndBlendMode(void);                                                                            // End blending mode (reset to default: alpha blending)
-        
-    // VR control functions
-    void InitVrSimulator(int vrDevice);                                                                 // Init VR simulator for selected device
-    void CloseVrSimulator(void);                                                                        // Close VR simulator for current device
-    bool IsVrSimulatorReady(void);                                                                      // Detect if VR simulator is ready
-    void UpdateVrTracking(Camera *camera);                                                              // Update VR tracking (position and orientation) and camera
-    void ToggleVrMode(void);                                                                            // Enable/Disable VR experience
-    void BeginVrDrawing(void);                                                                          // Begin VR simulator stereo rendering
-    void EndVrDrawing(void);                                                                            // End VR simulator stereo rendering
-    

+ 0 - 33
docs/cheatsheet/raylib_shapes.c

@@ -1,33 +0,0 @@
-
-    // Basic shapes drawing functions
-    void DrawPixel(int posX, int posY, Color color);                                                    // Draw a pixel
-    void DrawPixelV(Vector2 position, Color color);                                                     // Draw a pixel (Vector version)
-    void DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Color color);                 // Draw a line
-    void DrawLineV(Vector2 startPos, Vector2 endPos, Color color);                                      // Draw a line (Vector version)
-    void DrawLineEx(Vector2 startPos, Vector2 endPos, float thick, Color color);                        // Draw a line defining thickness
-    void DrawLineBezier(Vector2 startPos, Vector2 endPos, float thick, Color color);                    // Draw a line using cubic-bezier curves in-out
-    void DrawCircle(int centerX, int centerY, float radius, Color color);                               // Draw a color-filled circle
-    void DrawCircleGradient(int centerX, int centerY, float radius, Color color1, Color color2);        // Draw a gradient-filled circle
-    void DrawCircleV(Vector2 center, float radius, Color color);                                        // Draw a color-filled circle (Vector version)
-    void DrawCircleLines(int centerX, int centerY, float radius, Color color);                          // Draw circle outline
-    void DrawRectangle(int posX, int posY, int width, int height, Color color);                         // Draw a color-filled rectangle
-    void DrawRectangleRec(Rectangle rec, Color color);                                                  // Draw a color-filled rectangle
-    void DrawRectanglePro(Rectangle rec, Vector2 origin, float rotation, Color color);                  // Draw a color-filled rectangle with pro parameters
-    void DrawRectangleGradient(int posX, int posY, int width, int height, Color color1, Color color2);  // Draw a gradient-filled rectangle
-    void DrawRectangleV(Vector2 position, Vector2 size, Color color);                                   // Draw a color-filled rectangle (Vector version)
-    void DrawRectangleLines(int posX, int posY, int width, int height, Color color);                    // Draw rectangle outline
-    void DrawTriangle(Vector2 v1, Vector2 v2, Vector2 v3, Color color);                                 // Draw a color-filled triangle
-    void DrawTriangleLines(Vector2 v1, Vector2 v2, Vector2 v3, Color color);                            // Draw triangle outline
-    void DrawPoly(Vector2 center, int sides, float radius, float rotation, Color color);                // Draw a regular polygon (Vector version)
-    void DrawPolyEx(Vector2 *points, int numPoints, Color color);                                       // Draw a closed polygon defined by points
-    void DrawPolyExLines(Vector2 *points, int numPoints, Color color);                                  // Draw polygon lines
-
-    // Basic shapes collision detection functions
-    bool CheckCollisionRecs(Rectangle rec1, Rectangle rec2);                                            // Check collision between two rectangles
-    bool CheckCollisionCircles(Vector2 center1, float radius1, Vector2 center2, float radius2);         // Check collision between two circles
-    bool CheckCollisionCircleRec(Vector2 center, float radius, Rectangle rec);                          // Check collision between circle and rectangle
-    Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2);                                          // Get collision rectangle for two rectangles collision
-    bool CheckCollisionPointRec(Vector2 point, Rectangle rec);                                          // Check if point is inside rectangle
-    bool CheckCollisionPointCircle(Vector2 point, Vector2 center, float radius);                        // Check if point is inside circle
-    bool CheckCollisionPointTriangle(Vector2 point, Vector2 p1, Vector2 p2, Vector2 p3);                // Check if point is inside a triangle
-

+ 0 - 29
docs/cheatsheet/raylib_structs.c

@@ -1,29 +0,0 @@
-
-    struct Color;           // Color type, RGBA (32bit)
-    struct Rectangle;       // Rectangle type
-    struct Vector2;         // Vector2 type
-    struct Vector3;         // Vector3 type
-    struct Matrix;          // Matrix type (OpenGL style 4x4)
-    
-    struct Image;           // Image type (multiple data formats supported)
-                            // NOTE: Data stored in CPU memory (RAM)               
-    struct Texture2D;       // Texture2D type (multiple internal formats supported)
-                            // NOTE: Data stored in GPU memory (VRAM)
-    struct RenderTexture2D; // RenderTexture2D type, for texture rendering
-    struct SpriteFont;      // SpriteFont type, includes texture and chars data
-    
-    struct Camera;          // Camera type, defines 3d camera position/orientation
-    struct Camera2D;        // Camera2D type, defines a 2d camera
-    struct Mesh;            // Vertex data definning a mesh
-    struct Shader;          // Shader type (generic shader)
-    struct Material;        // Material type
-    struct Light;           // Light type, defines light properties
-    struct Model;           // Basic 3d Model type
-    struct Ray;             // Ray type (useful for raycast)
-    struct RayHitInfo;      // Raycast hit information
-    
-    struct Wave;            // Wave type, defines audio wave data
-    struct Sound;           // Basic Sound source and buffer
-    struct Music;           // Music type (file streaming from memory)
-    struct AudioStream;     // Raw audio stream type
-    

+ 0 - 19
docs/cheatsheet/raylib_text.c

@@ -1,19 +0,0 @@
-
-    // SpriteFont loading/unloading functions
-    SpriteFont GetDefaultFont(void);                                                                    // Get the default SpriteFont
-    SpriteFont LoadSpriteFont(const char *fileName);                                                    // Load a SpriteFont image into GPU memory
-    SpriteFont LoadSpriteFontEx(const char *fileName, int fontSize, int numChars, int *fontChars);     // Load a SpriteFont from TTF font with parameters
-    void UnloadSpriteFont(SpriteFont spriteFont);                                                       // Unload SpriteFont from GPU memory
-
-    // Text drawing functions
-    void DrawFPS(int posX, int posY);                                                                   // Shows current FPS on top-left corner
-    void DrawText(const char *text, int posX, int posY, int fontSize, Color color);                     // Draw text (using default font)
-    void DrawTextEx(SpriteFont spriteFont, const char* text, Vector2 position,                          // Draw text using SpriteFont and additional parameters
-                    int fontSize, int spacing, Color tint);
-    
-    // Text misc. functions
-    int MeasureText(const char *text, int fontSize);                                                    // Measure string width for default font
-    Vector2 MeasureTextEx(SpriteFont spriteFont, const char *text, int fontSize, int spacing);          // Measure string size for SpriteFont
-    const char *FormatText(const char *text, ...);                                                      // Formatting of text with variables to 'embed'
-    const char *SubText(const char *text, int position, int length);                                    // Get a piece of a text string
-

+ 0 - 52
docs/cheatsheet/raylib_textures.c

@@ -1,52 +0,0 @@
-
-    // Image/Texture2D data loading/unloading functions
-    Image LoadImage(const char *fileName);                                                              // Load an image into CPU memory (RAM)
-    Image LoadImageEx(Color *pixels, int width, int height);                                            // Load image data from Color array data (RGBA - 32bit)
-    Image LoadImagePro(void *data, int width, int height, int format);                                  // Load image from raw data with parameters
-    Image LoadImageRaw(const char *fileName, int width, int height, int format, int headerSize);        // Load image data from RAW file
-    Texture2D LoadTexture(const char *fileName);                                                        // Load an image as texture into GPU memory
-    Texture2D LoadTextureFromImage(Image image);                                                        // Load a texture from image data
-    RenderTexture2D LoadRenderTexture(int width, int height);                                           // Load a texture to be used for rendering
-    void UnloadImage(Image image);                                                                      // Unload image from CPU memory (RAM)
-    void UnloadTexture(Texture2D texture);                                                              // Unload texture from GPU memory
-    void UnloadRenderTexture(RenderTexture2D target);                                                   // Unload render texture from GPU memory
-    Color *GetImageData(Image image);                                                                   // Get pixel data from image as a Color struct array
-    Image GetTextureData(Texture2D texture);                                                            // Get pixel data from GPU texture and return an Image
-    void UpdateTexture(Texture2D texture, void *pixels);                                                // Update GPU texture with new data
-    
-    // Image manipulation functions
-    void ImageToPOT(Image *image, Color fillColor);                                                     // Convert image to POT (power-of-two)
-    void ImageFormat(Image *image, int newFormat);                                                      // Convert image data to desired format
-    void ImageAlphaMask(Image *image, Image alphaMask);                                                 // Apply alpha mask to image
-    void ImageDither(Image *image, int rBpp, int gBpp, int bBpp, int aBpp);                             // Dither image data to 16bpp or lower (Floyd-Steinberg dithering)
-    Image ImageCopy(Image image);                                                                       // Create an image duplicate (useful for transformations)
-    void ImageCrop(Image *image, Rectangle crop);                                                       // Crop an image to a defined rectangle
-    void ImageResize(Image *image, int newWidth, int newHeight);                                        // Resize and image (bilinear filtering)
-    void ImageResizeNN(Image *image,int newWidth,int newHeight);                                        // Resize and image (Nearest-Neighbor scaling algorithm)
-    Image ImageText(const char *text, int fontSize, Color color);                                       // Create an image from text (default font)
-    Image ImageTextEx(SpriteFont font, const char *text, int fontSize, int spacing, Color tint);        // Create an image from text (custom sprite font)
-    void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec);                          // Draw a source image within a destination image
-    void ImageDrawText(Image *dst, Vector2 position, const char *text, int fontSize, Color color);      // Draw text (default font) within an image (destination)
-    void ImageDrawTextEx(Image *dst, Vector2 position, SpriteFont font, const char *text, 
-                         int fontSize, int spacing, Color color);                                       // Draw text (custom sprite font) within image
-    void ImageFlipVertical(Image *image);                                                               // Flip image vertically
-    void ImageFlipHorizontal(Image *image);                                                             // Flip image horizontally
-    void ImageColorTint(Image *image, Color color);                                                     // Modify image color: tint
-    void ImageColorInvert(Image *image);                                                                // Modify image color: invert
-    void ImageColorGrayscale(Image *image);                                                             // Modify bimage color: grayscale
-    void ImageColorContrast(Image *image, float contrast);                                              // Modify image color: contrast (-100 to 100)
-    void ImageColorBrightness(Image *image, int brightness);                                            // Modify image color: brightness (-255 to 255)
-    
-    // Texture2D configuration functions
-    void GenTextureMipmaps(Texture2D *texture);                                                         // Generate GPU mipmaps for a texture
-    void SetTextureFilter(Texture2D texture, int filterMode);                                           // Set texture scaling filter mode
-    void SetTextureWrap(Texture2D texture, int wrapMode);                                               // Set texture wrapping mode
-
-    // Texture2D drawing functions
-    void DrawTexture(Texture2D texture, int posX, int posY, Color tint);                                // Draw a Texture2D
-    void DrawTextureV(Texture2D texture, Vector2 position, Color tint);                                 // Draw a Texture2D with position defined as Vector2
-    void DrawTextureEx(Texture2D texture, Vector2 position, float rotation, float scale, Color tint);   // Draw a Texture2D with extended parameters
-    void DrawTextureRec(Texture2D texture, Rectangle sourceRec, Vector2 position, Color tint);          // Draw a part of a texture defined by a rectangle
-    void DrawTexturePro(Texture2D texture, Rectangle sourceRec, Rectangle destRec, Vector2 origin,      // Draw a part of a texture defined by a rectangle with 'pro' parameters
-                        float rotation, Color tint);
-

+ 0 - 66
docs/common/css/examples.css

@@ -1,66 +0,0 @@
-#container .mix{ position: relative;  display: none; }
-#container .extext { top: 160px!important; width: 400px!important; }
-
-#filter_menu { width: 820px; height: 80px; margin-left: 18px; }
-
-.legendButton { padding:5px 15px; float:left; margin-left:10px; margin-right:10px; margin-bottom: 20px; }
-#core { cursor:pointer; background-color:#e1e1e1; color:#5c5a5a; border:3px solid #898888; }
-#shapes { cursor:pointer; background-color:#f0d6d6; color:#c55757; border:3px solid #e66666; }
-#textures { cursor:pointer; background-color:#c8eabf; color:#60815a; border:3px solid #75a06d; }
-#text { cursor:pointer; background-color:#bef0dd; color:#377764; border:3px solid #52b296; }
-#models { cursor:pointer; background-color:#bedce8; color:#417794; border:3px solid #5d9cbd; }
-#shaders { cursor:pointer; background-color:#e2c3f5; color:#a864d2; border:3px solid #a864d2; }
-#audio { cursor:pointer; background-color:#ebddae; color:#8c7539; border:3px solid #d3b157; }
-
-.core:hover { background-color:#e1e1e1; color:#5c5a5a; border:4px solid #898888; }
-.shapes:hover { background-color:#f0d6d6; color:#c55757; border:4px solid #e66666; }
-.textures:hover { background-color:#c8eabf; color:#60815a; border:4px solid #75a06d; }
-.text:hover { background-color:#bef0dd; color:#377764; border:4px solid #52b296; }
-.models:hover { background-color:#bedce8; color:#417794; border:4px solid #5d9cbd; }
-.audio:hover { background-color:#ebddae; color:#8c7539; border:4px solid #d3b157; }
-
-.fcore { border: 1px solid #898888; margin-left: 12px; }
-.fshapes { border: 1px solid #e66666; margin-left: 12px; }
-.ftextures { border: 1px solid #75a06d; margin-left: 12px; }
-.ftext { border: 1px solid #52b296; margin-left: 12px; }
-.fmodels { border: 1px solid #5d9cbd; margin-left: 12px; }
-.fshaders { border: 1px solid #a864d2; margin-left: 12px; }
-.faudio { border: 1px solid #d3b157; margin-left: 12px; }
-
-.fcore p { color:#5c5a5a!important; }
-.fshapes p { color:#c55757!important; }
-.ftextures p { color:#60815a!important; }
-.ftext p { color:#377764!important; }
-.fmodels p { color:#417794!important; }
-.fshaders p { color:#a864d2!important; }
-.faudio p { color:#8c7539!important; }
-
-#container .fcore a img, #container .fcore a { border: none; overflow: hidden; float: left; background-color: #e1e1e1; opacity: 1; }
-#container .fcore a:hover { border: 10px solid #898888; }
-#container .fcore a:hover img { margin: -10px; opacity: 0.4; }
-
-#container .fshapes a img, #container .fshapes a { border: none; overflow: hidden; float: left; background-color: #f0d6d6; opacity: 1; }
-#container .fshapes a:hover { border: 10px solid #e66666; }
-#container .fshapes a:hover img { margin: -10px; opacity: 0.3; }
-
-#container .ftextures a img, #container .ftextures a { border: none; overflow: hidden; float: left; background-color: #c8eabf; opacity: 1; }
-#container .ftextures a:hover { border: 10px solid #75a06d; }
-#container .ftextures a:hover img { margin: -10px; opacity: 0.3; }
-
-#container .ftext a img, #container .ftext a { border: none; overflow: hidden; float: left; background-color: #bef0dd; opacity: 1; }
-#container .ftext a:hover { border: 10px solid #52b296; }
-#container .ftext a:hover img { margin: -10px; opacity: 0.3; }
-
-#container .fmodels a img, #container .fmodels a { border: none; overflow: hidden; float: left; background-color: #bedce8; opacity: 1; }
-#container .fmodels a:hover { border: 10px solid #5d9cbd; }
-#container .fmodels a:hover img { margin: -10px; opacity: 0.3; }
-
-#container .fshaders a img, #container .fshaders a { border: none; overflow: hidden; float: left; background-color: #e0c6f1; opacity: 1; }
-#container .fshaders a:hover { border: 10px solid #a864d2; }
-#container .fshaders a:hover img { margin: -10px; opacity: 0.3; }
-
-#container .faudio a img, #container .faudio a { border: none; overflow: hidden; float: left; background-color: #ebddae; opacity: 1; }
-#container .faudio a:hover { border: 10px solid #d3b157; }
-#container .faudio a:hover img { margin: -10px; opacity: 0.3; }
-
-#container .extext { position:absolute; top:140px; width:320px; text-align: center; display: none; }

+ 0 - 35
docs/common/css/games.css

@@ -1,35 +0,0 @@
-#container .mix{ position: relative;  display: none; }
-#container .extext { top: 160px!important; width: 400px!important; }
-
-#filter_menu { width: 820px; height: 80px; margin-left: 18px; }
-
-.legendButton { padding:5px 15px; float:left; margin-left:10px; margin-right:10px; margin-bottom: 20px; }
-#sample { cursor:pointer; background-color:#e1e1e1; color:#5c5a5a; border:3px solid #898888; }
-#game { cursor:pointer; background-color:#f0d6d6; color:#c55757; border:3px solid #e66666; }
-#user { cursor:pointer; background-color:#bedce8; color:#417794; border:3px solid #5d9cbd; }
-
-.sample:hover { background-color:#e1e1e1; color:#5c5a5a; border:4px solid #898888; }
-.game:hover { background-color:#f0d6d6; color:#c55757; border:4px solid #e66666; }
-.user:hover { background-color:#bedce8; color:#417794; border:4px solid #5d9cbd; }
-
-.fsample { border: 1px solid #898888; margin-left: 12px; }
-.fgame { border: 1px solid #e66666; margin-left: 12px; }
-.fuser { border: 1px solid #5d9cbd; margin-left: 12px; }
-
-.fsample p { color:#5c5a5a!important; }
-.fgame p { color:#c55757!important; }
-.fuser p { color:#417794!important; }
-
-#container .fsample a img, #container .fsample a { border: none; overflow: hidden; float: left; background-color: #e1e1e1; opacity: 1; }
-#container .fsample a:hover { border: 10px solid #898888; }
-#container .fsample a:hover img { margin: -10px; opacity: 0.4; }
-
-#container .fgame a img, #container .fgame a { border: none; overflow: hidden; float: left; background-color: #f0d6d6; opacity: 1; }
-#container .fgame a:hover { border: 10px solid #e66666; }
-#container .fgame a:hover img { margin: -10px; opacity: 0.3; }
-
-#container .fuser a img, #container .fuser a { border: none; overflow: hidden; float: left; background-color: #bedce8; opacity: 1; }
-#container .fuser a:hover { border: 10px solid #5d9cbd; }
-#container .fuser a:hover img { margin: -10px; opacity: 0.3; }
-
-#container .extext { position:absolute; top:140px; width:320px; text-align: center; display: none; }

+ 0 - 111
docs/common/css/main.css

@@ -1,111 +0,0 @@
-@font-face {
-    font-family: 'grixel_acme_7_wide_xtnd';
-    src: url('../font/acme_7_wide_xtnd.eot');
-    src: url('../font/acme_7_wide_xtnd.eot?#iefix') format('embedded-opentype'),
-         url('../font/acme_7_wide_xtnd.woff') format('woff'),
-         url('../font/acme_7_wide_xtnd.ttf') format('truetype');
-    font-weight: normal;
-    font-style: normal;
-	font-size-adjust:0.49;
-}
-
-::-webkit-scrollbar { width: 10px; height: 10px; }
-::-webkit-scrollbar-button:start:decrement,
-::-webkit-scrollbar-button:end:increment { display: block; height: 10px; }
-::-webkit-scrollbar-button:vertical:increment { background-color: #fff; }
-::-webkit-scrollbar-track-piece { background-color: #bdbdbd; }
-::-webkit-scrollbar-thumb:vertical { height: 50px; background-color: #000000; }
-::-webkit-scrollbar-thumb:horizontal { width: 50px; background-color: #000000; }
-
-*{padding:0px; margin:0px; font-family: grixel_acme_7_wide_xtnd, Courier New, Verdana, Arial; -moz-font-smoothing: none;-webkit-font-smoothing: none; line-height:24px;}
-a{text-decoration: none; color:black;}
-body{background-color:#f5f5f5;}
-p a:hover{text-decoration: none; color:gray;}
-
-.page{width:840px; margin:0 auto;}
-
-.header{width:100%; float:left; position:relative; height:128px; font-size:10pt; margin-top:40px; margin-left:10px;}
-.content{font-size:8pt; width:840px; padding:10px; padding-top:30px; float:left; position:relative; padding-bottom:50px;}
-.footer{width:100%; float:left; position:relative; border-top:1px solid black; text-align: right;  height:40px; padding-top:10px;}
-.footer p a{color:#aaaaaa;}
-.footer p a:hover{color:#444;}
-.footer p { font-size:6pt; color:#aaaaaa; margin-top:-8px; }
-.simplelink { font-weight: bold; color: #ff6060; }
-
-/* font change for better reading... */
-.content p, .content a, .content p strong, .content strong, .content .downloadText{font-family: Courier New, Verdana, Arial!important; font-size: medium; line-height: 200%;  }
-.downloadButtonInstaller { font-size: x-small; }
-.list, .list strong {font-family: Courier New, Verdana, Arial!important; font-size: medium; line-height: 200%;  }
-
-#logo{width:128px; height:128px; float:left; position:relative; background-image:url(../img/raylib_logo.png);}
-.menu{width:680px; height:39px; text-align:right; right:0px; bottom:7px; position:relative; float:left; margin-left: 30px;}
-.menu a{padding:5px 20px; color:black; font-size:12pt; float:left; position:relative; border-bottom:1px solid black;}
-.menu a:hover{margin-top:-20px; padding:15px 15px; background: rgb(254,255,255); 
-	background: -moz-linear-gradient(top, rgba(245,245,245,1) 0%, rgba(224,224,224,1) 100%); 
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(245,245,245,1)), color-stop(100%,rgba(224,224,224,1))); 
-	background: -webkit-linear-gradient(top, rgba(245,245,245,1) 0%,rgba(224,224,224,1) 100%); 
-	background: -o-linear-gradient(top, rgba(245,245,245,1) 0%,rgba(224,224,224,1) 100%); 
-	background: -ms-linear-gradient(top, rgba(245,245,245,1) 0%,rgba(224,224,224,1) 100%); 
-	background: linear-gradient(to bottom,  rgba(245,245,245,1) 0%,rgba(224,224,224,1) 100%); 
-	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5f5f5', endColorstr='#e0e0e0',GradientType=0 ); }
-
-#active{
-	padding:5px 15px; color:#707070; font-size:12pt; float:left; position:relative; border-bottom:1px solid black;
-	margin-top:-20px; padding:15px 15px; background: rgb(254,255,255); 
-	background: -moz-linear-gradient(top, rgba(245,245,245,1) 0%, rgba(224,224,224,1) 100%); 
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(245,245,245,1)), color-stop(100%,rgba(224,224,224,1))); 
-	background: -webkit-linear-gradient(top, rgba(245,245,245,1) 0%,rgba(224,224,224,1) 100%); 
-	background: -o-linear-gradient(top, rgba(245,245,245,1) 0%,rgba(224,224,224,1) 100%); 
-	background: -ms-linear-gradient(top, rgba(245,245,245,1) 0%,rgba(224,224,224,1) 100%); 
-	background: linear-gradient(to bottom,  rgba(245,245,245,1) 0%,rgba(224,224,224,1) 100%); 
-	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5f5f5', endColorstr='#e0e0e0',GradientType=0 );
-}
-	
-#social{ width:372px; height:50px; position:relative; float:right; margin-right:8px; margin-top:20px; margin-bottom:20px; }
-#social a:hover{ background-position: 0 -36px;}
-#youtube{ width:36px; height:36px; float:left; position:relative; background-image: url(../img/icon_youtube.png); cursor: pointer; background-repeat:no-repeat; background-position: 0 0;}
-#handmade{ width:36px; height:36px; float:left; position:relative; background-image: url(../img/icon_handmade.png); cursor: pointer; background-repeat:no-repeat; background-position: 0 0;}
-#twitch{ width:36px; height:36px; float:left; position:relative; background-image: url(../img/icon_twitch.png); cursor: pointer; background-repeat:no-repeat; background-position: 0 0;}
-#patreon{ width:36px; height:36px; float:left; position:relative; background-image: url(../img/icon_patreon.png); cursor: pointer; background-repeat:no-repeat; background-position: 0 0;}
-#itchio{ width:36px; height:36px; float:left; position:relative; background-image: url(../img/icon_itchio.png); cursor: pointer; background-repeat:no-repeat; background-position: 0 0;}
-#reddit{ width:36px; height:36px; float:left; position:relative; background-image: url(../img/icon_reddit.png); cursor: pointer; background-repeat:no-repeat; background-position: 0 0;}
-#freenode{ width:36px; height:36px; float:left; position:relative; background-image: url(../img/icon_freenode_irc.png); cursor: pointer; background-repeat:no-repeat; background-position: 0 0;}
-#facebook{ width:36px; height:36px; float:left; position:relative; background-image: url(../img/icon_facebook.png); cursor: pointer; background-repeat:no-repeat; background-position: 0 0;}
-#twitter{ width:36px; height:36px; float:left; position:relative; background-image: url(../img/icon_twitter.png); cursor: pointer; background-repeat:no-repeat; background-position: 0 0;}
-#github{ width:36px; height:36px; float:left; position:relative; background-image: url(../img/icon_github.png); cursor: pointer; background-repeat:no-repeat; background-position: 0 0;}
-.list{margin-top:10px; margin-left:30px; display: inline-block}
-
-#licensebox { width:808px; height:400px; border:12px solid; border-color:#d0d0d0; background-color:#e4e4e4;}
-#licensebox p { font-size:12px; margin-top: 15px; margin-left: 10px;}
-.licensepoint { margin-left: 25px!important;}
-
-.downloadText{width:420px; height:40px; float:left; position:relative; margin-left:40px;}
-.downloadButton{width:220px; height:35px; float:left; position: relative; cursor:pointer; font-weight: bold; line-height:35px; text-align: center; border-width:5px!important;}
-.downloadButtonInstaller{width:460px; height:35px; position: relative; margin: auto auto; margin-top:20px!important; cursor:pointer; font-weight: bold; line-height:35px; text-align: center; border-width:5px!important;}
-#btngit{background-color:#e1e1e1; color:#5c5a5a; border:4px solid #898888;}
-#btngit:hover{background-color:#bedce8; color:#417794; border:4px solid #5d9cbd;}
-#btnlib{background-color:#e1e1e1; color:#5c5a5a; border:4px solid #898888; margin-top: 15px;}
-#btnlib:hover{background-color:#f0d6d6; color:#c55757; border:4px solid #e66666; margin-top: 15px;}
-#btnmac{font-weight: normal; cursor:default; background-color:#f0f0f0; color:#5c5a5a; border:4px solid #d3d3d3;}
-#newVersion{background-color:#f0d6d6; color:#e55757; border:1px solid #f66666; margin-top: 15px; margin-left: -5px; width:100%; height:30px; position: relative; margin: auto auto; line-height:30px; text-align: center;}
-#raylib13{position:relative; background-color:#222222; color:#f5f5f5; width:100vw; left:calc(-52vw + 50%); padding:30px; text-align:center; margin: 10px;}
-
-#basicgrid{width:580px; margin-left:60px; float:left; position:relative; text-align: center}
-#advgrid{width:560px; margin-left:70px; float:left; position:relative; text-align: center}
-.exampleBox{cursor:pointer; margin:15px 20px; width:54px; padding-right:2px; height:56px; border:4px solid black; display:inline-block; text-align: right; font-weight: bold; vertical-align: bottom;}
-.exampleBox .in{display: table-cell; vertical-align: bottom; width:52px; height:56px;}
-
-.specialBox{cursor:pointer; vertical-align: bottom; color:#818181; width:56px; height:58px; padding-right:2px; padding-top:4px; padding-left:4px; margin:15px 20px; display:inline-block; border:1px solid #b9b9b9; text-align:right;}
-.specialBox .in{display: table-cell; vertical-align: bottom; width:52px; height:52px; border:1px solid #b9b9b9; margin-top:-5px;}
-.specialBox:hover{ color: black; border:1px solid black; }
-.specialBox .in:hover{ color: black; border:1px solid black; }
-.boxintext{margin-bottom: 3px; margin-right: 2px; line-height:10px; font-size:6pt;}
-.boxintextex{margin-bottom: 3px; margin-right: -2px; line-height:10px; font-size:6pt; width:54px!important; height:53px!important; font-weight: normal!important;}
-.boxtodo{margin-bottom: 13px; margin-right: 7px;}
-
-.help{font-size:8px; margin-left: 25px;}
-#paypalbox{width:200px; height:50px; border:12px solid; border-color:#d0d0d0; background-color:#e4e4e4; margin:0 auto;}
-#paypalform input {margin-top: 12px; margin-left: 50px;}
-#forum{color: maroon;}
-
-#itchioframe{display:block;text-align:center;}

BIN
docs/common/font/acme_7_wide_xtnd.eot


BIN
docs/common/font/acme_7_wide_xtnd.ttf


BIN
docs/common/font/acme_7_wide_xtnd.woff


BIN
docs/common/img/fb_raylib_logo.png


BIN
docs/common/img/icon_facebook.png


BIN
docs/common/img/icon_freenode_irc.png


BIN
docs/common/img/icon_github.png


BIN
docs/common/img/icon_handmade.png


BIN
docs/common/img/icon_itchio.png


BIN
docs/common/img/icon_patreon.png


BIN
docs/common/img/icon_reddit.png


BIN
docs/common/img/icon_twitch.png


BIN
docs/common/img/icon_twitter.png


BIN
docs/common/img/icon_youtube.png


BIN
docs/common/img/ln_raylib_logo.png


BIN
docs/common/img/raylib_logo.png


BIN
docs/common/img/raylib_logo_64x64.png


+ 0 - 89
docs/common/js/examples.js

@@ -1,89 +0,0 @@
-$(document).ready(function() {
-    
-    // Init fancybox
-    $('.fancybox').fancybox();
-
-    var exampleName = [ 
-        'core_basic_window',
-        'core_input_keys',
-        'core_input_mouse',
-        'core_mouse_wheel',
-        'core_input_gamepad',
-        'core_random_values',
-        'core_color_select',
-        'core_drop_files',
-        'core_storage_values',
-        'core_gestures_detection',
-        'core_3d_mode',
-        'core_3d_picking',
-        'core_3d_camera_free',
-        'core_3d_camera_first_person',
-        'core_2d_camera',
-        'core_world_screen',
-        'core_vr_simulator',
-        'shapes_logo_raylib',
-        'shapes_basic_shapes',
-        'shapes_colors_palette',
-        'shapes_logo_raylib_anim',
-        'shapes_lines_bezier',
-        'textures_logo_raylib',
-        'textures_image_loading',
-        'textures_rectangle',
-        'textures_srcrec_dstrec',
-        'textures_to_image',
-        'textures_raw_data',
-        'textures_image_processing',
-        'textures_image_drawing',
-        'text_sprite_fonts',
-        'text_bmfont_ttf',
-        'text_raylib_fonts',
-        'text_format_text',
-        'text_writing_anim',
-        'text_ttf_loading',
-        'text_bmfont_unordered',
-        'text_input_box',
-        'models_geometric_shapes',
-        'models_box_collisions',
-        'models_billboard',
-        'models_obj_loading',
-        'models_heightmap',
-        'models_cubicmap',
-        'models_mesh_picking',
-        'shaders_model_shader',
-        'shaders_shapes_textures',
-        'shaders_custom_uniform',
-        'shaders_postprocessing',
-        'audio_sound_loading',
-        'audio_music_stream',
-        'audio_module_playing',
-        'audio_raw_stream'];
-
-    for (var i = 0; i < exampleName.length; i++)
-    {
-        var filterType = exampleName[i].substring(0, exampleName[i].indexOf("_"));
-        var exampleBase = exampleName[i].slice(exampleName[i].indexOf('_') + 1);
-        var exampleDesc = exampleBase.replace('_', ' ');
-
-        $('#container').append(
-            '<div class="mix f' + filterType + '">' +
-            '<a class="fancybox fancybox.iframe" href="examples/web/' + filterType + '/' + 'loader.html?name=' + exampleName[i] + '" title="' + exampleDesc + '">' +
-            '<img width="400" height="225" src="../examples/web/' + filterType + '/' + exampleName[i] + '.png"><div class="extext"><p>' + exampleDesc + '</p></div></a>' +
-            '</div>');
-
-        $('#container a .extext').hide();
-    }
-
-    // Instantiate MixItUp:
-	$('#container').mixItUp();
-
-    $("#container a").hover(
-        function(){ $(this).find(".extext").show(); },
-        function(){ $(this).find(".extext").hide(); });
-
-/*
-    $("#container a img").hover(
-        function() { $(this).stop().animate({ opacity:0.6 }, 200, "easeOutQuad" ); },
-        function() { $(this).stop().animate({ opacity:0 }, 200, "easeOutQuad" ); }
-    )
-*/
-});

+ 0 - 103
docs/common/js/games.js

@@ -1,103 +0,0 @@
-$(document).ready(function() {
-    
-    // Init fancybox
-    $('.fancybox').fancybox();
-
-    var exampleName = [ 
-        'sample_arkanoid',
-        'sample_missile_commander',
-        'sample_gorilas',
-        'sample_snake',
-        'sample_asteroids',
-        'sample_asteroids_survival',
-        'sample_pang',
-        'sample_space_invaders',
-        'sample_floppy',
-        'sample_tetris',
-        'game_drturtle',
-        'game_just_do',
-        'game_skully_escape',
-        'game_koala_seasons',
-        'game_light_my_ritual',
-        'game_wave_collector',
-        'user_raymario',    
-        'user_crazyball',
-        'user_tictactoe',
-        'user_super_red_rope',
-        'user_taptojamp',    
-        'user_funwithsat'];
-
-    var exampleDesc = [
-        'arkanoid',
-        'missile commander',
-        'gorilas',
-        'snake',
-        'asteroids',
-        'asteroids survival',
-        'pang',
-        'space invaders',
-        'floppy',
-        'tetris',
-        'Dr Turtle & Mr Gamera',
-        'JUST DO',
-        'Skully Escape',
-        'Koala Seasons',
-        'LIGHT MY RITUAL',
-        'Wave Collector',
-        'RayMario (Victor Fisac)',    
-        'CrazyBall (Victor Fisac)',
-        'Tic-Tac-Toe (LelixSuper)',
-        'Super Red Rope Puzzles (Kurnic)',
-        'TapToJAmp (MarcMDE)',    
-        'FunWithSATCollisions (MarcMDE)'];
-
-    for (var i = 0; i < exampleName.length; i++)
-    {
-        var filterType = exampleName[i].substring(0, exampleName[i].indexOf("_"));
-        
-        var linkTag;
-        
-        if (filterType == 'sample') linkTag = '<a class="fancybox fancybox.iframe" href="games/loader.html?name=' + exampleName[i] + '" title="' + exampleDesc[i] + '">';
-        else if (filterType == 'game') linkTag = '<a target="_blank" href="games/' + exampleName[i].substring(5) + '.html" title="' + exampleDesc[i] + '">';
-        else if (filterType == 'user')
-        {
-            switch (exampleName[i])
-            {
-                case 'user_raymario': linkTag = '<a target="_blank" href="https://github.com/victorfisac/RayMario" title="' + exampleDesc[i] + '">'; break;
-                case 'user_crazyball': linkTag = '<a target="_blank" href="https://github.com/victorfisac/CrazyBall" title="' + exampleDesc[i] + '">'; break;
-                case 'user_tictactoe': linkTag = '<a target="_blank" href="https://github.com/LelixSuper/TicTacToe" title="' + exampleDesc[i] + '">'; break;
-                case 'user_super_red_rope': linkTag = '<a target="_blank" href="https://kurnic.itch.io/super-red-rope-puzzles" title="' + exampleDesc[i] + '">'; break;
-                case 'user_taptojamp': linkTag = '<a target="_blank" href="http://marcmde.github.io/TapToJAmp_v2_0/" title="' + exampleDesc[i] + '">'; break;
-                case 'user_funwithsat': linkTag = '<a target="_blank" href="http://marcmde.github.io/FunWithSATCollisions_v_1_0_Browser/" title="' + exampleDesc[i] + '">'; break;
-                default: break;
-            }
-            /*
-            https://github.com/MarcMDE/TapToJump    //http://marcmde.github.io/TapToJump_v1_0_Browser/
-            https://github.com/MarcMDE/TapToJAmp    //http://marcmde.github.io/TapToJAmp_v2_0/
-            https://github.com/MarcMDE/FunWithSATCollisions //http://marcmde.github.io/FunWithSATCollisions_v_1_0_Browser/
-            https://kurnic.wordpress.com/portfolio/flappy-jetpack/
-            */
-        }
-        
-        $('#container').append(
-            '<div class="mix f' + filterType + '">' + linkTag +
-            '<img width="400" height="225" src="../games/img/' + exampleName[i] + '.png"><div class="extext"><p>' + exampleDesc[i] + '</p></div></a>' +
-            '</div>');
-
-        $('#container a .extext').hide();
-    }
-
-    // Instantiate MixItUp:
-	$('#container').mixItUp();
-
-    $("#container a").hover(
-        function(){ $(this).find(".extext").show(); },
-        function(){ $(this).find(".extext").hide(); });
-
-/*
-    $("#container a img").hover(
-        function() { $(this).stop().animate({ opacity:0.6 }, 200, "easeOutQuad" ); },
-        function() { $(this).stop().animate({ opacity:0 }, 200, "easeOutQuad" ); }
-    )
-*/
-});

BIN
docs/common/libs/fancybox/blank.gif


BIN
docs/common/libs/fancybox/fancybox_loading.gif


BIN
docs/common/libs/fancybox/[email protected]


BIN
docs/common/libs/fancybox/fancybox_overlay.png


BIN
docs/common/libs/fancybox/fancybox_sprite.png


BIN
docs/common/libs/fancybox/[email protected]


BIN
docs/common/libs/fancybox/helpers/fancybox_buttons.png


+ 0 - 97
docs/common/libs/fancybox/helpers/jquery.fancybox-buttons.css

@@ -1,97 +0,0 @@
-#fancybox-buttons {
-	position: fixed;
-	left: 0;
-	width: 100%;
-	z-index: 8050;
-}
-
-#fancybox-buttons.top {
-	top: 10px;
-}
-
-#fancybox-buttons.bottom {
-	bottom: 10px;
-}
-
-#fancybox-buttons ul {
-	display: block;
-	width: 166px;
-	height: 30px;
-	margin: 0 auto;
-	padding: 0;
-	list-style: none;
-	border: 1px solid #111;
-	border-radius: 3px;
-	-webkit-box-shadow: inset 0 0 0 1px rgba(255,255,255,.05);
-	   -moz-box-shadow: inset 0 0 0 1px rgba(255,255,255,.05);
-	        box-shadow: inset 0 0 0 1px rgba(255,255,255,.05);
-	background: rgb(50,50,50);
-	background: -moz-linear-gradient(top, rgb(68,68,68) 0%, rgb(52,52,52) 50%, rgb(41,41,41) 50%, rgb(51,51,51) 100%);
-	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgb(68,68,68)), color-stop(50%,rgb(52,52,52)), color-stop(50%,rgb(41,41,41)), color-stop(100%,rgb(51,51,51)));
-	background: -webkit-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%);
-	background: -o-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%);
-	background: -ms-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%);
-	background: linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%);
-	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#444444', endColorstr='#222222',GradientType=0 );
-}
-
-#fancybox-buttons ul li {
-	float: left;
-	margin: 0;
-	padding: 0;
-}
-
-#fancybox-buttons a {
-	display: block;
-	width: 30px;
-	height: 30px;
-	text-indent: -9999px;
-	background-color: transparent;
-	background-image: url('fancybox_buttons.png');
-	background-repeat: no-repeat;
-	outline: none;
-	opacity: 0.8;
-}
-
-#fancybox-buttons a:hover {
-	opacity: 1;
-}
-
-#fancybox-buttons a.btnPrev {
-	background-position: 5px 0;
-}
-
-#fancybox-buttons a.btnNext {
-	background-position: -33px 0;
-	border-right: 1px solid #3e3e3e;
-}
-
-#fancybox-buttons a.btnPlay {
-	background-position: 0 -30px;
-}
-
-#fancybox-buttons a.btnPlayOn {
-	background-position: -30px -30px;
-}
-
-#fancybox-buttons a.btnToggle {
-	background-position: 3px -60px;
-	border-left: 1px solid #111;
-	border-right: 1px solid #3e3e3e;
-	width: 35px
-}
-
-#fancybox-buttons a.btnToggleOn {
-	background-position: -27px -60px;
-}
-
-#fancybox-buttons a.btnClose {
-	border-left: 1px solid #111;
-	width: 35px;
-	background-position: -56px 0px;
-}
-
-#fancybox-buttons a.btnDisabled {
-	opacity : 0.4;
-	cursor: default;
-}

+ 0 - 122
docs/common/libs/fancybox/helpers/jquery.fancybox-buttons.js

@@ -1,122 +0,0 @@
- /*!
- * Buttons helper for fancyBox
- * version: 1.0.5 (Mon, 15 Oct 2012)
- * @requires fancyBox v2.0 or later
- *
- * Usage:
- *     $(".fancybox").fancybox({
- *         helpers : {
- *             buttons: {
- *                 position : 'top'
- *             }
- *         }
- *     });
- *
- */
-(function ($) {
-	//Shortcut for fancyBox object
-	var F = $.fancybox;
-
-	//Add helper object
-	F.helpers.buttons = {
-		defaults : {
-			skipSingle : false, // disables if gallery contains single image
-			position   : 'top', // 'top' or 'bottom'
-			tpl        : '<div id="fancybox-buttons"><ul><li><a class="btnPrev" title="Previous" href="javascript:;"></a></li><li><a class="btnPlay" title="Start slideshow" href="javascript:;"></a></li><li><a class="btnNext" title="Next" href="javascript:;"></a></li><li><a class="btnToggle" title="Toggle size" href="javascript:;"></a></li><li><a class="btnClose" title="Close" href="javascript:;"></a></li></ul></div>'
-		},
-
-		list : null,
-		buttons: null,
-
-		beforeLoad: function (opts, obj) {
-			//Remove self if gallery do not have at least two items
-
-			if (opts.skipSingle && obj.group.length < 2) {
-				obj.helpers.buttons = false;
-				obj.closeBtn = true;
-
-				return;
-			}
-
-			//Increase top margin to give space for buttons
-			obj.margin[ opts.position === 'bottom' ? 2 : 0 ] += 30;
-		},
-
-		onPlayStart: function () {
-			if (this.buttons) {
-				this.buttons.play.attr('title', 'Pause slideshow').addClass('btnPlayOn');
-			}
-		},
-
-		onPlayEnd: function () {
-			if (this.buttons) {
-				this.buttons.play.attr('title', 'Start slideshow').removeClass('btnPlayOn');
-			}
-		},
-
-		afterShow: function (opts, obj) {
-			var buttons = this.buttons;
-
-			if (!buttons) {
-				this.list = $(opts.tpl).addClass(opts.position).appendTo('body');
-
-				buttons = {
-					prev   : this.list.find('.btnPrev').click( F.prev ),
-					next   : this.list.find('.btnNext').click( F.next ),
-					play   : this.list.find('.btnPlay').click( F.play ),
-					toggle : this.list.find('.btnToggle').click( F.toggle ),
-					close  : this.list.find('.btnClose').click( F.close )
-				}
-			}
-
-			//Prev
-			if (obj.index > 0 || obj.loop) {
-				buttons.prev.removeClass('btnDisabled');
-			} else {
-				buttons.prev.addClass('btnDisabled');
-			}
-
-			//Next / Play
-			if (obj.loop || obj.index < obj.group.length - 1) {
-				buttons.next.removeClass('btnDisabled');
-				buttons.play.removeClass('btnDisabled');
-
-			} else {
-				buttons.next.addClass('btnDisabled');
-				buttons.play.addClass('btnDisabled');
-			}
-
-			this.buttons = buttons;
-
-			this.onUpdate(opts, obj);
-		},
-
-		onUpdate: function (opts, obj) {
-			var toggle;
-
-			if (!this.buttons) {
-				return;
-			}
-
-			toggle = this.buttons.toggle.removeClass('btnDisabled btnToggleOn');
-
-			//Size toggle button
-			if (obj.canShrink) {
-				toggle.addClass('btnToggleOn');
-
-			} else if (!obj.canExpand) {
-				toggle.addClass('btnDisabled');
-			}
-		},
-
-		beforeClose: function () {
-			if (this.list) {
-				this.list.remove();
-			}
-
-			this.list    = null;
-			this.buttons = null;
-		}
-	};
-
-}(jQuery));

+ 0 - 199
docs/common/libs/fancybox/helpers/jquery.fancybox-media.js

@@ -1,199 +0,0 @@
-/*!
- * Media helper for fancyBox
- * version: 1.0.6 (Fri, 14 Jun 2013)
- * @requires fancyBox v2.0 or later
- *
- * Usage:
- *     $(".fancybox").fancybox({
- *         helpers : {
- *             media: true
- *         }
- *     });
- *
- * Set custom URL parameters:
- *     $(".fancybox").fancybox({
- *         helpers : {
- *             media: {
- *                 youtube : {
- *                     params : {
- *                         autoplay : 0
- *                     }
- *                 }
- *             }
- *         }
- *     });
- *
- * Or:
- *     $(".fancybox").fancybox({,
- *         helpers : {
- *             media: true
- *         },
- *         youtube : {
- *             autoplay: 0
- *         }
- *     });
- *
- *  Supports:
- *
- *      Youtube
- *          http://www.youtube.com/watch?v=opj24KnzrWo
- *          http://www.youtube.com/embed/opj24KnzrWo
- *          http://youtu.be/opj24KnzrWo
- *			http://www.youtube-nocookie.com/embed/opj24KnzrWo
- *      Vimeo
- *          http://vimeo.com/40648169
- *          http://vimeo.com/channels/staffpicks/38843628
- *          http://vimeo.com/groups/surrealism/videos/36516384
- *          http://player.vimeo.com/video/45074303
- *      Metacafe
- *          http://www.metacafe.com/watch/7635964/dr_seuss_the_lorax_movie_trailer/
- *          http://www.metacafe.com/watch/7635964/
- *      Dailymotion
- *          http://www.dailymotion.com/video/xoytqh_dr-seuss-the-lorax-premiere_people
- *      Twitvid
- *          http://twitvid.com/QY7MD
- *      Twitpic
- *          http://twitpic.com/7p93st
- *      Instagram
- *          http://instagr.am/p/IejkuUGxQn/
- *          http://instagram.com/p/IejkuUGxQn/
- *      Google maps
- *          http://maps.google.com/maps?q=Eiffel+Tower,+Avenue+Gustave+Eiffel,+Paris,+France&t=h&z=17
- *          http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16
- *          http://maps.google.com/?ll=48.859463,2.292626&spn=0.000965,0.002642&t=m&z=19&layer=c&cbll=48.859524,2.292532&panoid=YJ0lq28OOy3VT2IqIuVY0g&cbp=12,151.58,,0,-15.56
- */
-(function ($) {
-	"use strict";
-
-	//Shortcut for fancyBox object
-	var F = $.fancybox,
-		format = function( url, rez, params ) {
-			params = params || '';
-
-			if ( $.type( params ) === "object" ) {
-				params = $.param(params, true);
-			}
-
-			$.each(rez, function(key, value) {
-				url = url.replace( '$' + key, value || '' );
-			});
-
-			if (params.length) {
-				url += ( url.indexOf('?') > 0 ? '&' : '?' ) + params;
-			}
-
-			return url;
-		};
-
-	//Add helper object
-	F.helpers.media = {
-		defaults : {
-			youtube : {
-				matcher : /(youtube\.com|youtu\.be|youtube-nocookie\.com)\/(watch\?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*)).*/i,
-				params  : {
-					autoplay    : 1,
-					autohide    : 1,
-					fs          : 1,
-					rel         : 0,
-					hd          : 1,
-					wmode       : 'opaque',
-					enablejsapi : 1
-				},
-				type : 'iframe',
-				url  : '//www.youtube.com/embed/$3'
-			},
-			vimeo : {
-				matcher : /(?:vimeo(?:pro)?.com)\/(?:[^\d]+)?(\d+)(?:.*)/,
-				params  : {
-					autoplay      : 1,
-					hd            : 1,
-					show_title    : 1,
-					show_byline   : 1,
-					show_portrait : 0,
-					fullscreen    : 1
-				},
-				type : 'iframe',
-				url  : '//player.vimeo.com/video/$1'
-			},
-			metacafe : {
-				matcher : /metacafe.com\/(?:watch|fplayer)\/([\w\-]{1,10})/,
-				params  : {
-					autoPlay : 'yes'
-				},
-				type : 'swf',
-				url  : function( rez, params, obj ) {
-					obj.swf.flashVars = 'playerVars=' + $.param( params, true );
-
-					return '//www.metacafe.com/fplayer/' + rez[1] + '/.swf';
-				}
-			},
-			dailymotion : {
-				matcher : /dailymotion.com\/video\/(.*)\/?(.*)/,
-				params  : {
-					additionalInfos : 0,
-					autoStart : 1
-				},
-				type : 'swf',
-				url  : '//www.dailymotion.com/swf/video/$1'
-			},
-			twitvid : {
-				matcher : /twitvid\.com\/([a-zA-Z0-9_\-\?\=]+)/i,
-				params  : {
-					autoplay : 0
-				},
-				type : 'iframe',
-				url  : '//www.twitvid.com/embed.php?guid=$1'
-			},
-			twitpic : {
-				matcher : /twitpic\.com\/(?!(?:place|photos|events)\/)([a-zA-Z0-9\?\=\-]+)/i,
-				type : 'image',
-				url  : '//twitpic.com/show/full/$1/'
-			},
-			instagram : {
-				matcher : /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,
-				type : 'image',
-				url  : '//$1/p/$2/media/?size=l'
-			},
-			google_maps : {
-				matcher : /maps\.google\.([a-z]{2,3}(\.[a-z]{2})?)\/(\?ll=|maps\?)(.*)/i,
-				type : 'iframe',
-				url  : function( rez ) {
-					return '//maps.google.' + rez[1] + '/' + rez[3] + '' + rez[4] + '&output=' + (rez[4].indexOf('layer=c') > 0 ? 'svembed' : 'embed');
-				}
-			}
-		},
-
-		beforeLoad : function(opts, obj) {
-			var url   = obj.href || '',
-				type  = false,
-				what,
-				item,
-				rez,
-				params;
-
-			for (what in opts) {
-				if (opts.hasOwnProperty(what)) {
-					item = opts[ what ];
-					rez  = url.match( item.matcher );
-
-					if (rez) {
-						type   = item.type;
-						params = $.extend(true, {}, item.params, obj[ what ] || ($.isPlainObject(opts[ what ]) ? opts[ what ].params : null));
-
-						url = $.type( item.url ) === "function" ? item.url.call( this, rez, params, obj ) : format( item.url, rez, params );
-
-						break;
-					}
-				}
-			}
-
-			if (type) {
-				obj.href = url;
-				obj.type = type;
-
-				obj.autoHeight = false;
-			}
-		}
-	};
-
-}(jQuery));

+ 0 - 55
docs/common/libs/fancybox/helpers/jquery.fancybox-thumbs.css

@@ -1,55 +0,0 @@
-#fancybox-thumbs {
-	position: fixed;
-	left: 0;
-	width: 100%;
-	overflow: hidden;
-	z-index: 8050;
-}
-
-#fancybox-thumbs.bottom {
-	bottom: 2px;
-}
-
-#fancybox-thumbs.top {
-	top: 2px;
-}
-
-#fancybox-thumbs ul {
-	position: relative;
-	list-style: none;
-	margin: 0;
-	padding: 0;
-}
-
-#fancybox-thumbs ul li {
-	float: left;
-	padding: 1px;
-	opacity: 0.5;
-}
-
-#fancybox-thumbs ul li.active {
-	opacity: 0.75;
-	padding: 0;
-	border: 1px solid #fff;
-}
-
-#fancybox-thumbs ul li:hover {
-	opacity: 1;
-}
-
-#fancybox-thumbs ul li a {
-	display: block;
-	position: relative;
-	overflow: hidden;
-	border: 1px solid #222;
-	background: #111;
-	outline: none;
-}
-
-#fancybox-thumbs ul li img {
-	display: block;
-	position: relative;
-	border: 0;
-	padding: 0;
-	max-width: none;
-}

+ 0 - 162
docs/common/libs/fancybox/helpers/jquery.fancybox-thumbs.js

@@ -1,162 +0,0 @@
- /*!
- * Thumbnail helper for fancyBox
- * version: 1.0.7 (Mon, 01 Oct 2012)
- * @requires fancyBox v2.0 or later
- *
- * Usage:
- *     $(".fancybox").fancybox({
- *         helpers : {
- *             thumbs: {
- *                 width  : 50,
- *                 height : 50
- *             }
- *         }
- *     });
- *
- */
-(function ($) {
-	//Shortcut for fancyBox object
-	var F = $.fancybox;
-
-	//Add helper object
-	F.helpers.thumbs = {
-		defaults : {
-			width    : 50,       // thumbnail width
-			height   : 50,       // thumbnail height
-			position : 'bottom', // 'top' or 'bottom'
-			source   : function ( item ) {  // function to obtain the URL of the thumbnail image
-				var href;
-
-				if (item.element) {
-					href = $(item.element).find('img').attr('src');
-				}
-
-				if (!href && item.type === 'image' && item.href) {
-					href = item.href;
-				}
-
-				return href;
-			}
-		},
-
-		wrap  : null,
-		list  : null,
-		width : 0,
-
-		init: function (opts, obj) {
-			var that = this,
-				list,
-				thumbWidth  = opts.width,
-				thumbHeight = opts.height,
-				thumbSource = opts.source;
-
-			//Build list structure
-			list = '';
-
-			for (var n = 0; n < obj.group.length; n++) {
-				list += '<li><a style="width:' + thumbWidth + 'px;height:' + thumbHeight + 'px;" href="javascript:jQuery.fancybox.jumpto(' + n + ');"></a></li>';
-			}
-
-			this.wrap = $('<div id="fancybox-thumbs"></div>').addClass(opts.position).appendTo('body');
-			this.list = $('<ul>' + list + '</ul>').appendTo(this.wrap);
-
-			//Load each thumbnail
-			$.each(obj.group, function (i) {
-				var href = thumbSource( obj.group[ i ] );
-
-				if (!href) {
-					return;
-				}
-
-				$("<img />").load(function () {
-					var width  = this.width,
-						height = this.height,
-						widthRatio, heightRatio, parent;
-
-					if (!that.list || !width || !height) {
-						return;
-					}
-
-					//Calculate thumbnail width/height and center it
-					widthRatio  = width / thumbWidth;
-					heightRatio = height / thumbHeight;
-
-					parent = that.list.children().eq(i).find('a');
-
-					if (widthRatio >= 1 && heightRatio >= 1) {
-						if (widthRatio > heightRatio) {
-							width  = Math.floor(width / heightRatio);
-							height = thumbHeight;
-
-						} else {
-							width  = thumbWidth;
-							height = Math.floor(height / widthRatio);
-						}
-					}
-
-					$(this).css({
-						width  : width,
-						height : height,
-						top    : Math.floor(thumbHeight / 2 - height / 2),
-						left   : Math.floor(thumbWidth / 2 - width / 2)
-					});
-
-					parent.width(thumbWidth).height(thumbHeight);
-
-					$(this).hide().appendTo(parent).fadeIn(300);
-
-				}).attr('src', href);
-			});
-
-			//Set initial width
-			this.width = this.list.children().eq(0).outerWidth(true);
-
-			this.list.width(this.width * (obj.group.length + 1)).css('left', Math.floor($(window).width() * 0.5 - (obj.index * this.width + this.width * 0.5)));
-		},
-
-		beforeLoad: function (opts, obj) {
-			//Remove self if gallery do not have at least two items
-			if (obj.group.length < 2) {
-				obj.helpers.thumbs = false;
-
-				return;
-			}
-
-			//Increase bottom margin to give space for thumbs
-			obj.margin[ opts.position === 'top' ? 0 : 2 ] += ((opts.height) + 15);
-		},
-
-		afterShow: function (opts, obj) {
-			//Check if exists and create or update list
-			if (this.list) {
-				this.onUpdate(opts, obj);
-
-			} else {
-				this.init(opts, obj);
-			}
-
-			//Set active element
-			this.list.children().removeClass('active').eq(obj.index).addClass('active');
-		},
-
-		//Center list
-		onUpdate: function (opts, obj) {
-			if (this.list) {
-				this.list.stop(true).animate({
-					'left': Math.floor($(window).width() * 0.5 - (obj.index * this.width + this.width * 0.5))
-				}, 150);
-			}
-		},
-
-		beforeClose: function () {
-			if (this.wrap) {
-				this.wrap.remove();
-			}
-
-			this.wrap  = null;
-			this.list  = null;
-			this.width = 0;
-		}
-	}
-
-}(jQuery));

+ 0 - 284
docs/common/libs/fancybox/jquery.fancybox.css

@@ -1,284 +0,0 @@
-/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */
-.fancybox-wrap,
-.fancybox-skin,
-.fancybox-outer,
-.fancybox-inner,
-.fancybox-image,
-.fancybox-wrap iframe,
-.fancybox-wrap object,
-.fancybox-nav,
-.fancybox-nav span,
-.fancybox-tmp
-{
-	padding: 0;
-	margin: 0;
-	border: 0;
-	outline: none;
-	vertical-align: top;
-}
-
-/* Ray: modified for raylib examples */
-.fancybox-inner
-{
-    overflow: hidden!important;
-    min-height: 520px!important;
-}
-
-/* Ray: modified for raylib examples */
-.fancybox-wrap {
-    width: 860px!important;
-}
-
-.fancybox-wrap {
-	position: absolute;
-	top: 0;
-	left: 0;
-	z-index: 8020;
-	border: 4px solid;
-}
-
-.fancybox-skin {
-	position: relative;
-	background: #f9f9f9;
-	color: #444;
-	text-shadow: none;
-}
-
-.fancybox-opened {
-	z-index: 8030;
-}
-
-.fancybox-opened .fancybox-skin {
-	-webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
-	   -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
-	        box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
-}
-
-.fancybox-outer, .fancybox-inner {
-	position: relative;
-}
-
-/* Ray: modified for raylib examples */
-.fancybox-inner {
-	overflow: hidden;
-    width: 850px!important;     
-}
-
-.fancybox-type-iframe .fancybox-inner {
-	-webkit-overflow-scrolling: touch;
-}
-
-.fancybox-error {
-	color: #444;
-	font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
-	margin: 0;
-	padding: 15px;
-	white-space: nowrap;
-}
-
-/* Ray: modified for raylib examples */
-.fancybox-image, .fancybox-iframe {
-	display: block;
-	width: 830px;      
-	height: 100%;
-}
-
-.fancybox-image {
-	max-width: 100%;
-	max-height: 100%;
-}
-
-#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
-	background-image: url('fancybox_sprite.png');
-}
-
-#fancybox-loading {
-	position: fixed;
-	top: 50%;
-	left: 50%;
-	margin-top: -22px;
-	margin-left: -22px;
-	background-position: 0 -108px;
-	opacity: 0.8;
-	cursor: pointer;
-	z-index: 8060;
-}
-
-#fancybox-loading div {
-	width: 44px;
-	height: 44px;
-	background: url('fancybox_loading.gif') center center no-repeat;
-}
-
-.fancybox-close {
-	position: absolute;
-	top: -18px;
-	right: -18px;
-	width: 36px;
-	height: 36px;
-	cursor: pointer;
-	z-index: 8040;
-}
-
-.fancybox-nav {
-	position: absolute;
-	top: 0;
-	width: 40%;
-	height: 100%;
-	cursor: pointer;
-	text-decoration: none;
-	background: transparent url('blank.gif'); /* helps IE */
-	-webkit-tap-highlight-color: rgba(0,0,0,0);
-	z-index: 8040;
-}
-
-.fancybox-prev {
-	left: 0;
-}
-
-.fancybox-next {
-	right: 0;
-}
-
-.fancybox-nav span {
-	position: absolute;
-	top: 50%;
-	width: 36px;
-	height: 34px;
-	margin-top: -18px;
-	cursor: pointer;
-	z-index: 8040;
-	visibility: hidden;
-}
-
-.fancybox-prev span {
-	left: 10px;
-	background-position: 0 -36px;
-}
-
-.fancybox-next span {
-	right: 10px;
-	background-position: 0 -72px;
-}
-
-.fancybox-nav:hover span {
-	visibility: visible;
-}
-
-.fancybox-tmp {
-	position: absolute;
-	top: -99999px;
-	left: -99999px;
-	visibility: hidden;
-	max-width: 99999px;
-	max-height: 99999px;
-	overflow: visible !important;
-}
-
-/* Overlay helper */
-
-.fancybox-lock {
-    overflow: hidden !important;
-    width: auto;
-}
-
-.fancybox-lock body {
-    overflow: hidden !important;
-}
-
-.fancybox-lock-test {
-    overflow-y: hidden !important;
-}
-
-.fancybox-overlay {
-	position: absolute;
-	top: 0;
-	left: 0;
-	overflow: hidden;
-	display: none;
-	z-index: 8010;
-	background: url('fancybox_overlay.png');
-}
-
-.fancybox-overlay-fixed {
-	position: fixed;
-	bottom: 0;
-	right: 0;
-}
-
-.fancybox-lock .fancybox-overlay {
-	overflow: auto;
-	overflow-y: scroll;
-}
-
-/* Title helper */
-
-.fancybox-title {
-	visibility: hidden;
-	font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
-	position: relative;
-	text-shadow: none;
-	z-index: 8050;
-}
-
-.fancybox-opened .fancybox-title {
-	visibility: visible;
-}
-
-.fancybox-title-float-wrap {
-	position: absolute;
-	bottom: 0;
-	right: 50%;
-	margin-bottom: -35px;
-	z-index: 8050;
-	text-align: center;
-}
-
-.fancybox-title-float-wrap .child {
-	display: inline-block;
-	margin-right: -100%;
-	padding: 2px 20px;
-	background: transparent; /* Fallback for web browsers that doesn't support RGBa */
-	background: rgba(0, 0, 0, 0.8);
-	text-shadow: 0 1px 2px #222;
-	color: #FFF;
-	font-size: 10px;
-	line-height: 24px;
-	white-space: nowrap;
-}
-
-.fancybox-title-outside-wrap {
-	position: relative;
-	margin-top: 10px;
-	color: #fff;
-}
-
-.fancybox-title-inside-wrap {
-	padding-top: 10px;
-}
-
-.fancybox-title-over-wrap {
-	position: absolute;
-	bottom: 0;
-	left: 0;
-	color: #fff;
-	padding: 10px;
-	background: #000;
-	background: rgba(0, 0, 0, .8);
-}
-
-/*Retina graphics!*/
-@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
-	   only screen and (min--moz-device-pixel-ratio: 1.5),
-	   only screen and (min-device-pixel-ratio: 1.5){
-
-	#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
-		background-image: url('[email protected]');
-		background-size: 44px 152px; /*The size of the normal image, half the size of the hi-res image*/
-	}
-
-	#fancybox-loading div {
-		background-image: url('[email protected]');
-		background-size: 24px 24px; /*The size of the normal image, half the size of the hi-res image*/
-	}
-}

+ 0 - 2020
docs/common/libs/fancybox/jquery.fancybox.js

@@ -1,2020 +0,0 @@
-/*!
- * fancyBox - jQuery Plugin
- * version: 2.1.5 (Fri, 14 Jun 2013)
- * @requires jQuery v1.6 or later
- *
- * Examples at http://fancyapps.com/fancybox/
- * License: www.fancyapps.com/fancybox/#license
- *
- * Copyright 2012 Janis Skarnelis - [email protected]
- *
- */
-
-(function (window, document, $, undefined) {
-	"use strict";
-
-	var H = $("html"),
-		W = $(window),
-		D = $(document),
-		F = $.fancybox = function () {
-			F.open.apply( this, arguments );
-		},
-		IE =  navigator.userAgent.match(/msie/i),
-		didUpdate	= null,
-		isTouch		= document.createTouch !== undefined,
-
-		isQuery	= function(obj) {
-			return obj && obj.hasOwnProperty && obj instanceof $;
-		},
-		isString = function(str) {
-			return str && $.type(str) === "string";
-		},
-		isPercentage = function(str) {
-			return isString(str) && str.indexOf('%') > 0;
-		},
-		isScrollable = function(el) {
-			return (el && !(el.style.overflow && el.style.overflow === 'hidden') && ((el.clientWidth && el.scrollWidth > el.clientWidth) || (el.clientHeight && el.scrollHeight > el.clientHeight)));
-		},
-		getScalar = function(orig, dim) {
-			var value = parseInt(orig, 10) || 0;
-
-			if (dim && isPercentage(orig)) {
-				value = F.getViewport()[ dim ] / 100 * value;
-			}
-
-			return Math.ceil(value);
-		},
-		getValue = function(value, dim) {
-			return getScalar(value, dim) + 'px';
-		};
-
-	$.extend(F, {
-		// The current version of fancyBox
-		version: '2.1.5',
-
-		defaults: {
-			padding : 15,
-			margin  : 20,
-
-			width     : 800,
-			height    : 600,
-			minWidth  : 100,
-			minHeight : 100,
-			maxWidth  : 9999,
-			maxHeight : 9999,
-			pixelRatio: 1, // Set to 2 for retina display support
-
-			autoSize   : true,
-			autoHeight : false,
-			autoWidth  : false,
-
-			autoResize  : true,
-			autoCenter  : !isTouch,
-			fitToView   : true,
-			aspectRatio : false,
-			topRatio    : 0.5,
-			leftRatio   : 0.5,
-
-			scrolling : 'auto', // 'auto', 'yes' or 'no'
-			wrapCSS   : '',
-
-			arrows     : true,
-			closeBtn   : true,
-			closeClick : false,
-			nextClick  : false,
-			mouseWheel : true,
-			autoPlay   : false,
-			playSpeed  : 3000,
-			preload    : 3,
-			modal      : false,
-			loop       : true,
-
-			ajax  : {
-				dataType : 'html',
-				headers  : { 'X-fancyBox': true }
-			},
-			iframe : {
-				scrolling : 'auto',
-				preload   : true
-			},
-			swf : {
-				wmode: 'transparent',
-				allowfullscreen   : 'true',
-				allowscriptaccess : 'always'
-			},
-
-			keys  : {
-				next : {
-					13 : 'left', // enter
-					34 : 'up',   // page down
-					39 : 'left', // right arrow
-					40 : 'up'    // down arrow
-				},
-				prev : {
-					8  : 'right',  // backspace
-					33 : 'down',   // page up
-					37 : 'right',  // left arrow
-					38 : 'down'    // up arrow
-				},
-				close  : [27], // escape key
-				play   : [32], // space - start/stop slideshow
-				toggle : [70]  // letter "f" - toggle fullscreen
-			},
-
-			direction : {
-				next : 'left',
-				prev : 'right'
-			},
-
-			scrollOutside  : true,
-
-			// Override some properties
-			index   : 0,
-			type    : null,
-			href    : null,
-			content : null,
-			title   : null,
-
-			// HTML templates
-			tpl: {
-				wrap     : '<div class="fancybox-wrap" tabIndex="-1"><div class="fancybox-skin"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div></div>',
-				image    : '<img class="fancybox-image" src="{href}" alt="" />',
-				iframe   : '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen' + (IE ? ' allowtransparency="true"' : '') + '></iframe>',
-				error    : '<p class="fancybox-error">The requested content cannot be loaded.<br/>Please try again later.</p>',
-				closeBtn : '<a title="Close" class="fancybox-item fancybox-close" href="javascript:;"></a>',
-				next     : '<a title="Next" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',
-				prev     : '<a title="Previous" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>'
-			},
-
-			// Properties for each animation type
-			// Opening fancyBox
-			openEffect  : 'fade', // 'elastic', 'fade' or 'none'
-			openSpeed   : 250,
-			openEasing  : 'swing',
-			openOpacity : true,
-			openMethod  : 'zoomIn',
-
-			// Closing fancyBox
-			closeEffect  : 'fade', // 'elastic', 'fade' or 'none'
-			closeSpeed   : 250,
-			closeEasing  : 'swing',
-			closeOpacity : true,
-			closeMethod  : 'zoomOut',
-
-			// Changing next gallery item
-			nextEffect : 'elastic', // 'elastic', 'fade' or 'none'
-			nextSpeed  : 250,
-			nextEasing : 'swing',
-			nextMethod : 'changeIn',
-
-			// Changing previous gallery item
-			prevEffect : 'elastic', // 'elastic', 'fade' or 'none'
-			prevSpeed  : 250,
-			prevEasing : 'swing',
-			prevMethod : 'changeOut',
-
-			// Enable default helpers
-			helpers : {
-				overlay : true,
-				title   : true
-			},
-
-			// Callbacks
-			onCancel     : $.noop, // If canceling
-			beforeLoad   : $.noop, // Before loading
-			afterLoad    : $.noop, // After loading
-			beforeShow   : $.noop, // Before changing in current item
-			afterShow    : $.noop, // After opening
-			beforeChange : $.noop, // Before changing gallery item
-			beforeClose  : $.noop, // Before closing
-			afterClose   : $.noop  // After closing
-		},
-
-		//Current state
-		group    : {}, // Selected group
-		opts     : {}, // Group options
-		previous : null,  // Previous element
-		coming   : null,  // Element being loaded
-		current  : null,  // Currently loaded element
-		isActive : false, // Is activated
-		isOpen   : false, // Is currently open
-		isOpened : false, // Have been fully opened at least once
-
-		wrap  : null,
-		skin  : null,
-		outer : null,
-		inner : null,
-
-		player : {
-			timer    : null,
-			isActive : false
-		},
-
-		// Loaders
-		ajaxLoad   : null,
-		imgPreload : null,
-
-		// Some collections
-		transitions : {},
-		helpers     : {},
-
-		/*
-		 *	Static methods
-		 */
-
-		open: function (group, opts) {
-			if (!group) {
-				return;
-			}
-
-			if (!$.isPlainObject(opts)) {
-				opts = {};
-			}
-
-			// Close if already active
-			if (false === F.close(true)) {
-				return;
-			}
-
-			// Normalize group
-			if (!$.isArray(group)) {
-				group = isQuery(group) ? $(group).get() : [group];
-			}
-
-			// Recheck if the type of each element is `object` and set content type (image, ajax, etc)
-			$.each(group, function(i, element) {
-				var obj = {},
-					href,
-					title,
-					content,
-					type,
-					rez,
-					hrefParts,
-					selector;
-
-				if ($.type(element) === "object") {
-					// Check if is DOM element
-					if (element.nodeType) {
-						element = $(element);
-					}
-
-					if (isQuery(element)) {
-						obj = {
-							href    : element.data('fancybox-href') || element.attr('href'),
-							title   : element.data('fancybox-title') || element.attr('title'),
-							isDom   : true,
-							element : element
-						};
-
-						if ($.metadata) {
-							$.extend(true, obj, element.metadata());
-						}
-
-					} else {
-						obj = element;
-					}
-				}
-
-				href  = opts.href  || obj.href || (isString(element) ? element : null);
-				title = opts.title !== undefined ? opts.title : obj.title || '';
-
-				content = opts.content || obj.content;
-				type    = content ? 'html' : (opts.type  || obj.type);
-
-				if (!type && obj.isDom) {
-					type = element.data('fancybox-type');
-
-					if (!type) {
-						rez  = element.prop('class').match(/fancybox\.(\w+)/);
-						type = rez ? rez[1] : null;
-					}
-				}
-
-				if (isString(href)) {
-					// Try to guess the content type
-					if (!type) {
-						if (F.isImage(href)) {
-							type = 'image';
-
-						} else if (F.isSWF(href)) {
-							type = 'swf';
-
-						} else if (href.charAt(0) === '#') {
-							type = 'inline';
-
-						} else if (isString(element)) {
-							type    = 'html';
-							content = element;
-						}
-					}
-
-					// Split url into two pieces with source url and content selector, e.g,
-					// "/mypage.html #my_id" will load "/mypage.html" and display element having id "my_id"
-					if (type === 'ajax') {
-						hrefParts = href.split(/\s+/, 2);
-						href      = hrefParts.shift();
-						selector  = hrefParts.shift();
-					}
-				}
-
-				if (!content) {
-					if (type === 'inline') {
-						if (href) {
-							content = $( isString(href) ? href.replace(/.*(?=#[^\s]+$)/, '') : href ); //strip for ie7
-
-						} else if (obj.isDom) {
-							content = element;
-						}
-
-					} else if (type === 'html') {
-						content = href;
-
-					} else if (!type && !href && obj.isDom) {
-						type    = 'inline';
-						content = element;
-					}
-				}
-
-				$.extend(obj, {
-					href     : href,
-					type     : type,
-					content  : content,
-					title    : title,
-					selector : selector
-				});
-
-				group[ i ] = obj;
-			});
-
-			// Extend the defaults
-			F.opts = $.extend(true, {}, F.defaults, opts);
-
-			// All options are merged recursive except keys
-			if (opts.keys !== undefined) {
-				F.opts.keys = opts.keys ? $.extend({}, F.defaults.keys, opts.keys) : false;
-			}
-
-			F.group = group;
-
-			return F._start(F.opts.index);
-		},
-
-		// Cancel image loading or abort ajax request
-		cancel: function () {
-			var coming = F.coming;
-
-			if (!coming || false === F.trigger('onCancel')) {
-				return;
-			}
-
-			F.hideLoading();
-
-			if (F.ajaxLoad) {
-				F.ajaxLoad.abort();
-			}
-
-			F.ajaxLoad = null;
-
-			if (F.imgPreload) {
-				F.imgPreload.onload = F.imgPreload.onerror = null;
-			}
-
-			if (coming.wrap) {
-				coming.wrap.stop(true, true).trigger('onReset').remove();
-			}
-
-			F.coming = null;
-
-			// If the first item has been canceled, then clear everything
-			if (!F.current) {
-				F._afterZoomOut( coming );
-			}
-		},
-
-		// Start closing animation if is open; remove immediately if opening/closing
-		close: function (event) {
-			F.cancel();
-
-			if (false === F.trigger('beforeClose')) {
-				return;
-			}
-
-			F.unbindEvents();
-
-			if (!F.isActive) {
-				return;
-			}
-
-			if (!F.isOpen || event === true) {
-				$('.fancybox-wrap').stop(true).trigger('onReset').remove();
-
-				F._afterZoomOut();
-
-			} else {
-				F.isOpen = F.isOpened = false;
-				F.isClosing = true;
-
-				$('.fancybox-item, .fancybox-nav').remove();
-
-				F.wrap.stop(true, true).removeClass('fancybox-opened');
-
-				F.transitions[ F.current.closeMethod ]();
-			}
-		},
-
-		// Manage slideshow:
-		//   $.fancybox.play(); - toggle slideshow
-		//   $.fancybox.play( true ); - start
-		//   $.fancybox.play( false ); - stop
-		play: function ( action ) {
-			var clear = function () {
-					clearTimeout(F.player.timer);
-				},
-				set = function () {
-					clear();
-
-					if (F.current && F.player.isActive) {
-						F.player.timer = setTimeout(F.next, F.current.playSpeed);
-					}
-				},
-				stop = function () {
-					clear();
-
-					D.unbind('.player');
-
-					F.player.isActive = false;
-
-					F.trigger('onPlayEnd');
-				},
-				start = function () {
-					if (F.current && (F.current.loop || F.current.index < F.group.length - 1)) {
-						F.player.isActive = true;
-
-						D.bind({
-							'onCancel.player beforeClose.player' : stop,
-							'onUpdate.player'   : set,
-							'beforeLoad.player' : clear
-						});
-
-						set();
-
-						F.trigger('onPlayStart');
-					}
-				};
-
-			if (action === true || (!F.player.isActive && action !== false)) {
-				start();
-			} else {
-				stop();
-			}
-		},
-
-		// Navigate to next gallery item
-		next: function ( direction ) {
-			var current = F.current;
-
-			if (current) {
-				if (!isString(direction)) {
-					direction = current.direction.next;
-				}
-
-				F.jumpto(current.index + 1, direction, 'next');
-			}
-		},
-
-		// Navigate to previous gallery item
-		prev: function ( direction ) {
-			var current = F.current;
-
-			if (current) {
-				if (!isString(direction)) {
-					direction = current.direction.prev;
-				}
-
-				F.jumpto(current.index - 1, direction, 'prev');
-			}
-		},
-
-		// Navigate to gallery item by index
-		jumpto: function ( index, direction, router ) {
-			var current = F.current;
-
-			if (!current) {
-				return;
-			}
-
-			index = getScalar(index);
-
-			F.direction = direction || current.direction[ (index >= current.index ? 'next' : 'prev') ];
-			F.router    = router || 'jumpto';
-
-			if (current.loop) {
-				if (index < 0) {
-					index = current.group.length + (index % current.group.length);
-				}
-
-				index = index % current.group.length;
-			}
-
-			if (current.group[ index ] !== undefined) {
-				F.cancel();
-
-				F._start(index);
-			}
-		},
-
-		// Center inside viewport and toggle position type to fixed or absolute if needed
-		reposition: function (e, onlyAbsolute) {
-			var current = F.current,
-				wrap    = current ? current.wrap : null,
-				pos;
-
-			if (wrap) {
-				pos = F._getPosition(onlyAbsolute);
-
-				if (e && e.type === 'scroll') {
-					delete pos.position;
-
-					wrap.stop(true, true).animate(pos, 200);
-
-				} else {
-					wrap.css(pos);
-
-					current.pos = $.extend({}, current.dim, pos);
-				}
-			}
-		},
-
-		update: function (e) {
-			var type = (e && e.type),
-				anyway = !type || type === 'orientationchange';
-
-			if (anyway) {
-				clearTimeout(didUpdate);
-
-				didUpdate = null;
-			}
-
-			if (!F.isOpen || didUpdate) {
-				return;
-			}
-
-			didUpdate = setTimeout(function() {
-				var current = F.current;
-
-				if (!current || F.isClosing) {
-					return;
-				}
-
-				F.wrap.removeClass('fancybox-tmp');
-
-				if (anyway || type === 'load' || (type === 'resize' && current.autoResize)) {
-					F._setDimension();
-				}
-
-				if (!(type === 'scroll' && current.canShrink)) {
-					F.reposition(e);
-				}
-
-				F.trigger('onUpdate');
-
-				didUpdate = null;
-
-			}, (anyway && !isTouch ? 0 : 300));
-		},
-
-		// Shrink content to fit inside viewport or restore if resized
-		toggle: function ( action ) {
-			if (F.isOpen) {
-				F.current.fitToView = $.type(action) === "boolean" ? action : !F.current.fitToView;
-
-				// Help browser to restore document dimensions
-				if (isTouch) {
-					F.wrap.removeAttr('style').addClass('fancybox-tmp');
-
-					F.trigger('onUpdate');
-				}
-
-				F.update();
-			}
-		},
-
-		hideLoading: function () {
-			D.unbind('.loading');
-
-			$('#fancybox-loading').remove();
-		},
-
-		showLoading: function () {
-			var el, viewport;
-
-			F.hideLoading();
-
-			el = $('<div id="fancybox-loading"><div></div></div>').click(F.cancel).appendTo('body');
-
-			// If user will press the escape-button, the request will be canceled
-			D.bind('keydown.loading', function(e) {
-				if ((e.which || e.keyCode) === 27) {
-					e.preventDefault();
-
-					F.cancel();
-				}
-			});
-
-			if (!F.defaults.fixed) {
-				viewport = F.getViewport();
-
-				el.css({
-					position : 'absolute',
-					top  : (viewport.h * 0.5) + viewport.y,
-					left : (viewport.w * 0.5) + viewport.x
-				});
-			}
-		},
-
-		getViewport: function () {
-			var locked = (F.current && F.current.locked) || false,
-				rez    = {
-					x: W.scrollLeft(),
-					y: W.scrollTop()
-				};
-
-			if (locked) {
-				rez.w = locked[0].clientWidth;
-				rez.h = locked[0].clientHeight;
-
-			} else {
-				// See http://bugs.jquery.com/ticket/6724
-				rez.w = isTouch && window.innerWidth  ? window.innerWidth  : W.width();
-				rez.h = isTouch && window.innerHeight ? window.innerHeight : W.height();
-			}
-
-			return rez;
-		},
-
-		// Unbind the keyboard / clicking actions
-		unbindEvents: function () {
-			if (F.wrap && isQuery(F.wrap)) {
-				F.wrap.unbind('.fb');
-			}
-
-			D.unbind('.fb');
-			W.unbind('.fb');
-		},
-
-		bindEvents: function () {
-			var current = F.current,
-				keys;
-
-			if (!current) {
-				return;
-			}
-
-			// Changing document height on iOS devices triggers a 'resize' event,
-			// that can change document height... repeating infinitely
-			W.bind('orientationchange.fb' + (isTouch ? '' : ' resize.fb') + (current.autoCenter && !current.locked ? ' scroll.fb' : ''), F.update);
-
-			keys = current.keys;
-
-			if (keys) {
-				D.bind('keydown.fb', function (e) {
-					var code   = e.which || e.keyCode,
-						target = e.target || e.srcElement;
-
-					// Skip esc key if loading, because showLoading will cancel preloading
-					if (code === 27 && F.coming) {
-						return false;
-					}
-
-					// Ignore key combinations and key events within form elements
-					if (!e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey && !(target && (target.type || $(target).is('[contenteditable]')))) {
-						$.each(keys, function(i, val) {
-							if (current.group.length > 1 && val[ code ] !== undefined) {
-								F[ i ]( val[ code ] );
-
-								e.preventDefault();
-								return false;
-							}
-
-							if ($.inArray(code, val) > -1) {
-								F[ i ] ();
-
-								e.preventDefault();
-								return false;
-							}
-						});
-					}
-				});
-			}
-
-			if ($.fn.mousewheel && current.mouseWheel) {
-				F.wrap.bind('mousewheel.fb', function (e, delta, deltaX, deltaY) {
-					var target = e.target || null,
-						parent = $(target),
-						canScroll = false;
-
-					while (parent.length) {
-						if (canScroll || parent.is('.fancybox-skin') || parent.is('.fancybox-wrap')) {
-							break;
-						}
-
-						canScroll = isScrollable( parent[0] );
-						parent    = $(parent).parent();
-					}
-
-					if (delta !== 0 && !canScroll) {
-						if (F.group.length > 1 && !current.canShrink) {
-							if (deltaY > 0 || deltaX > 0) {
-								F.prev( deltaY > 0 ? 'down' : 'left' );
-
-							} else if (deltaY < 0 || deltaX < 0) {
-								F.next( deltaY < 0 ? 'up' : 'right' );
-							}
-
-							e.preventDefault();
-						}
-					}
-				});
-			}
-		},
-
-		trigger: function (event, o) {
-			var ret, obj = o || F.coming || F.current;
-
-			if (!obj) {
-				return;
-			}
-
-			if ($.isFunction( obj[event] )) {
-				ret = obj[event].apply(obj, Array.prototype.slice.call(arguments, 1));
-			}
-
-			if (ret === false) {
-				return false;
-			}
-
-			if (obj.helpers) {
-				$.each(obj.helpers, function (helper, opts) {
-					if (opts && F.helpers[helper] && $.isFunction(F.helpers[helper][event])) {
-						F.helpers[helper][event]($.extend(true, {}, F.helpers[helper].defaults, opts), obj);
-					}
-				});
-			}
-
-			D.trigger(event);
-		},
-
-		isImage: function (str) {
-			return isString(str) && str.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i);
-		},
-
-		isSWF: function (str) {
-			return isString(str) && str.match(/\.(swf)((\?|#).*)?$/i);
-		},
-
-		_start: function (index) {
-			var coming = {},
-				obj,
-				href,
-				type,
-				margin,
-				padding;
-
-			index = getScalar( index );
-			obj   = F.group[ index ] || null;
-
-			if (!obj) {
-				return false;
-			}
-
-			coming = $.extend(true, {}, F.opts, obj);
-
-			// Convert margin and padding properties to array - top, right, bottom, left
-			margin  = coming.margin;
-			padding = coming.padding;
-
-			if ($.type(margin) === 'number') {
-				coming.margin = [margin, margin, margin, margin];
-			}
-
-			if ($.type(padding) === 'number') {
-				coming.padding = [padding, padding, padding, padding];
-			}
-
-			// 'modal' propery is just a shortcut
-			if (coming.modal) {
-				$.extend(true, coming, {
-					closeBtn   : false,
-					closeClick : false,
-					nextClick  : false,
-					arrows     : false,
-					mouseWheel : false,
-					keys       : null,
-					helpers: {
-						overlay : {
-							closeClick : false
-						}
-					}
-				});
-			}
-
-			// 'autoSize' property is a shortcut, too
-			if (coming.autoSize) {
-				coming.autoWidth = coming.autoHeight = true;
-			}
-
-			if (coming.width === 'auto') {
-				coming.autoWidth = true;
-			}
-
-			if (coming.height === 'auto') {
-				coming.autoHeight = true;
-			}
-
-			/*
-			 * Add reference to the group, so it`s possible to access from callbacks, example:
-			 * afterLoad : function() {
-			 *     this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : '');
-			 * }
-			 */
-
-			coming.group  = F.group;
-			coming.index  = index;
-
-			// Give a chance for callback or helpers to update coming item (type, title, etc)
-			F.coming = coming;
-
-			if (false === F.trigger('beforeLoad')) {
-				F.coming = null;
-
-				return;
-			}
-
-			type = coming.type;
-			href = coming.href;
-
-			if (!type) {
-				F.coming = null;
-
-				//If we can not determine content type then drop silently or display next/prev item if looping through gallery
-				if (F.current && F.router && F.router !== 'jumpto') {
-					F.current.index = index;
-
-					return F[ F.router ]( F.direction );
-				}
-
-				return false;
-			}
-
-			F.isActive = true;
-
-			if (type === 'image' || type === 'swf') {
-				coming.autoHeight = coming.autoWidth = false;
-				coming.scrolling  = 'visible';
-			}
-
-			if (type === 'image') {
-				coming.aspectRatio = true;
-			}
-
-			if (type === 'iframe' && isTouch) {
-				coming.scrolling = 'scroll';
-			}
-
-			// Build the neccessary markup
-			coming.wrap = $(coming.tpl.wrap).addClass('fancybox-' + (isTouch ? 'mobile' : 'desktop') + ' fancybox-type-' + type + ' fancybox-tmp ' + coming.wrapCSS).appendTo( coming.parent || 'body' );
-
-			$.extend(coming, {
-				skin  : $('.fancybox-skin',  coming.wrap),
-				outer : $('.fancybox-outer', coming.wrap),
-				inner : $('.fancybox-inner', coming.wrap)
-			});
-
-			$.each(["Top", "Right", "Bottom", "Left"], function(i, v) {
-				coming.skin.css('padding' + v, getValue(coming.padding[ i ]));
-			});
-
-			F.trigger('onReady');
-
-			// Check before try to load; 'inline' and 'html' types need content, others - href
-			if (type === 'inline' || type === 'html') {
-				if (!coming.content || !coming.content.length) {
-					return F._error( 'content' );
-				}
-
-			} else if (!href) {
-				return F._error( 'href' );
-			}
-
-			if (type === 'image') {
-				F._loadImage();
-
-			} else if (type === 'ajax') {
-				F._loadAjax();
-
-			} else if (type === 'iframe') {
-				F._loadIframe();
-
-			} else {
-				F._afterLoad();
-			}
-		},
-
-		_error: function ( type ) {
-			$.extend(F.coming, {
-				type       : 'html',
-				autoWidth  : true,
-				autoHeight : true,
-				minWidth   : 0,
-				minHeight  : 0,
-				scrolling  : 'no',
-				hasError   : type,
-				content    : F.coming.tpl.error
-			});
-
-			F._afterLoad();
-		},
-
-		_loadImage: function () {
-			// Reset preload image so it is later possible to check "complete" property
-			var img = F.imgPreload = new Image();
-
-			img.onload = function () {
-				this.onload = this.onerror = null;
-
-				F.coming.width  = this.width / F.opts.pixelRatio;
-				F.coming.height = this.height / F.opts.pixelRatio;
-
-				F._afterLoad();
-			};
-
-			img.onerror = function () {
-				this.onload = this.onerror = null;
-
-				F._error( 'image' );
-			};
-
-			img.src = F.coming.href;
-
-			if (img.complete !== true) {
-				F.showLoading();
-			}
-		},
-
-		_loadAjax: function () {
-			var coming = F.coming;
-
-			F.showLoading();
-
-			F.ajaxLoad = $.ajax($.extend({}, coming.ajax, {
-				url: coming.href,
-				error: function (jqXHR, textStatus) {
-					if (F.coming && textStatus !== 'abort') {
-						F._error( 'ajax', jqXHR );
-
-					} else {
-						F.hideLoading();
-					}
-				},
-				success: function (data, textStatus) {
-					if (textStatus === 'success') {
-						coming.content = data;
-
-						F._afterLoad();
-					}
-				}
-			}));
-		},
-
-		_loadIframe: function() {
-			var coming = F.coming,
-				iframe = $(coming.tpl.iframe.replace(/\{rnd\}/g, new Date().getTime()))
-					.attr('scrolling', isTouch ? 'auto' : coming.iframe.scrolling)
-					.attr('src', coming.href);
-
-			// This helps IE
-			$(coming.wrap).bind('onReset', function () {
-				try {
-					$(this).find('iframe').hide().attr('src', '//about:blank').end().empty();
-				} catch (e) {}
-			});
-
-			if (coming.iframe.preload) {
-				F.showLoading();
-
-				iframe.one('load', function() {
-					$(this).data('ready', 1);
-
-					// iOS will lose scrolling if we resize
-					if (!isTouch) {
-						$(this).bind('load.fb', F.update);
-					}
-
-					// Without this trick:
-					//   - iframe won't scroll on iOS devices
-					//   - IE7 sometimes displays empty iframe
-					$(this).parents('.fancybox-wrap').width('100%').removeClass('fancybox-tmp').show();
-
-					F._afterLoad();
-				});
-			}
-
-			coming.content = iframe.appendTo( coming.inner );
-
-			if (!coming.iframe.preload) {
-				F._afterLoad();
-			}
-		},
-
-		_preloadImages: function() {
-			var group   = F.group,
-				current = F.current,
-				len     = group.length,
-				cnt     = current.preload ? Math.min(current.preload, len - 1) : 0,
-				item,
-				i;
-
-			for (i = 1; i <= cnt; i += 1) {
-				item = group[ (current.index + i ) % len ];
-
-				if (item.type === 'image' && item.href) {
-					new Image().src = item.href;
-				}
-			}
-		},
-
-		_afterLoad: function () {
-			var coming   = F.coming,
-				previous = F.current,
-				placeholder = 'fancybox-placeholder',
-				current,
-				content,
-				type,
-				scrolling,
-				href,
-				embed;
-
-			F.hideLoading();
-
-			if (!coming || F.isActive === false) {
-				return;
-			}
-
-			if (false === F.trigger('afterLoad', coming, previous)) {
-				coming.wrap.stop(true).trigger('onReset').remove();
-
-				F.coming = null;
-
-				return;
-			}
-
-			if (previous) {
-				F.trigger('beforeChange', previous);
-
-				previous.wrap.stop(true).removeClass('fancybox-opened')
-					.find('.fancybox-item, .fancybox-nav')
-					.remove();
-			}
-
-			F.unbindEvents();
-
-			current   = coming;
-			content   = coming.content;
-			type      = coming.type;
-			scrolling = coming.scrolling;
-
-			$.extend(F, {
-				wrap  : current.wrap,
-				skin  : current.skin,
-				outer : current.outer,
-				inner : current.inner,
-				current  : current,
-				previous : previous
-			});
-
-			href = current.href;
-
-			switch (type) {
-				case 'inline':
-				case 'ajax':
-				case 'html':
-					if (current.selector) {
-						content = $('<div>').html(content).find(current.selector);
-
-					} else if (isQuery(content)) {
-						if (!content.data(placeholder)) {
-							content.data(placeholder, $('<div class="' + placeholder + '"></div>').insertAfter( content ).hide() );
-						}
-
-						content = content.show().detach();
-
-						current.wrap.bind('onReset', function () {
-							if ($(this).find(content).length) {
-								content.hide().replaceAll( content.data(placeholder) ).data(placeholder, false);
-							}
-						});
-					}
-				break;
-
-				case 'image':
-					content = current.tpl.image.replace('{href}', href);
-				break;
-
-				case 'swf':
-					content = '<object id="fancybox-swf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="movie" value="' + href + '"></param>';
-					embed   = '';
-
-					$.each(current.swf, function(name, val) {
-						content += '<param name="' + name + '" value="' + val + '"></param>';
-						embed   += ' ' + name + '="' + val + '"';
-					});
-
-					content += '<embed src="' + href + '" type="application/x-shockwave-flash" width="100%" height="100%"' + embed + '></embed></object>';
-				break;
-			}
-
-			if (!(isQuery(content) && content.parent().is(current.inner))) {
-				current.inner.append( content );
-			}
-
-			// Give a chance for helpers or callbacks to update elements
-			F.trigger('beforeShow');
-
-			// Set scrolling before calculating dimensions
-			current.inner.css('overflow', scrolling === 'yes' ? 'scroll' : (scrolling === 'no' ? 'hidden' : scrolling));
-
-			// Set initial dimensions and start position
-			F._setDimension();
-
-			F.reposition();
-
-			F.isOpen = false;
-			F.coming = null;
-
-			F.bindEvents();
-
-			if (!F.isOpened) {
-				$('.fancybox-wrap').not( current.wrap ).stop(true).trigger('onReset').remove();
-
-			} else if (previous.prevMethod) {
-				F.transitions[ previous.prevMethod ]();
-			}
-
-			F.transitions[ F.isOpened ? current.nextMethod : current.openMethod ]();
-
-			F._preloadImages();
-		},
-
-		_setDimension: function () {
-			var viewport   = F.getViewport(),
-				steps      = 0,
-				canShrink  = false,
-				canExpand  = false,
-				wrap       = F.wrap,
-				skin       = F.skin,
-				inner      = F.inner,
-				current    = F.current,
-				width      = current.width,
-				height     = current.height,
-				minWidth   = current.minWidth,
-				minHeight  = current.minHeight,
-				maxWidth   = current.maxWidth,
-				maxHeight  = current.maxHeight,
-				scrolling  = current.scrolling,
-				scrollOut  = current.scrollOutside ? current.scrollbarWidth : 0,
-				margin     = current.margin,
-				wMargin    = getScalar(margin[1] + margin[3]),
-				hMargin    = getScalar(margin[0] + margin[2]),
-				wPadding,
-				hPadding,
-				wSpace,
-				hSpace,
-				origWidth,
-				origHeight,
-				origMaxWidth,
-				origMaxHeight,
-				ratio,
-				width_,
-				height_,
-				maxWidth_,
-				maxHeight_,
-				iframe,
-				body;
-
-			// Reset dimensions so we could re-check actual size
-			wrap.add(skin).add(inner).width('auto').height('auto').removeClass('fancybox-tmp');
-
-			wPadding = getScalar(skin.outerWidth(true)  - skin.width());
-			hPadding = getScalar(skin.outerHeight(true) - skin.height());
-
-			// Any space between content and viewport (margin, padding, border, title)
-			wSpace = wMargin + wPadding;
-			hSpace = hMargin + hPadding;
-
-			origWidth  = isPercentage(width)  ? (viewport.w - wSpace) * getScalar(width)  / 100 : width;
-			origHeight = isPercentage(height) ? (viewport.h - hSpace) * getScalar(height) / 100 : height;
-
-			if (current.type === 'iframe') {
-				iframe = current.content;
-
-				if (current.autoHeight && iframe.data('ready') === 1) {
-					try {
-						if (iframe[0].contentWindow.document.location) {
-							inner.width( origWidth ).height(9999);
-
-							body = iframe.contents().find('body');
-
-							if (scrollOut) {
-								body.css('overflow-x', 'hidden');
-							}
-
-							origHeight = body.outerHeight(true);
-						}
-
-					} catch (e) {}
-				}
-
-			} else if (current.autoWidth || current.autoHeight) {
-				inner.addClass( 'fancybox-tmp' );
-
-				// Set width or height in case we need to calculate only one dimension
-				if (!current.autoWidth) {
-					inner.width( origWidth );
-				}
-
-				if (!current.autoHeight) {
-					inner.height( origHeight );
-				}
-
-				if (current.autoWidth) {
-					origWidth = inner.width();
-				}
-
-				if (current.autoHeight) {
-					origHeight = inner.height();
-				}
-
-				inner.removeClass( 'fancybox-tmp' );
-			}
-
-			width  = getScalar( origWidth );
-			height = getScalar( origHeight );
-
-			ratio  = origWidth / origHeight;
-
-			// Calculations for the content
-			minWidth  = getScalar(isPercentage(minWidth) ? getScalar(minWidth, 'w') - wSpace : minWidth);
-			maxWidth  = getScalar(isPercentage(maxWidth) ? getScalar(maxWidth, 'w') - wSpace : maxWidth);
-
-			minHeight = getScalar(isPercentage(minHeight) ? getScalar(minHeight, 'h') - hSpace : minHeight);
-			maxHeight = getScalar(isPercentage(maxHeight) ? getScalar(maxHeight, 'h') - hSpace : maxHeight);
-
-			// These will be used to determine if wrap can fit in the viewport
-			origMaxWidth  = maxWidth;
-			origMaxHeight = maxHeight;
-
-			if (current.fitToView) {
-				maxWidth  = Math.min(viewport.w - wSpace, maxWidth);
-				maxHeight = Math.min(viewport.h - hSpace, maxHeight);
-			}
-
-			maxWidth_  = viewport.w - wMargin;
-			maxHeight_ = viewport.h - hMargin;
-
-			if (current.aspectRatio) {
-				if (width > maxWidth) {
-					width  = maxWidth;
-					height = getScalar(width / ratio);
-				}
-
-				if (height > maxHeight) {
-					height = maxHeight;
-					width  = getScalar(height * ratio);
-				}
-
-				if (width < minWidth) {
-					width  = minWidth;
-					height = getScalar(width / ratio);
-				}
-
-				if (height < minHeight) {
-					height = minHeight;
-					width  = getScalar(height * ratio);
-				}
-
-			} else {
-				width = Math.max(minWidth, Math.min(width, maxWidth));
-
-				if (current.autoHeight && current.type !== 'iframe') {
-					inner.width( width );
-
-					height = inner.height();
-				}
-
-				height = Math.max(minHeight, Math.min(height, maxHeight));
-			}
-
-			// Try to fit inside viewport (including the title)
-			if (current.fitToView) {
-				inner.width( width ).height( height );
-
-				wrap.width( width + wPadding );
-
-				// Real wrap dimensions
-				width_  = wrap.width();
-				height_ = wrap.height();
-
-				if (current.aspectRatio) {
-					while ((width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight) {
-						if (steps++ > 19) {
-							break;
-						}
-
-						height = Math.max(minHeight, Math.min(maxHeight, height - 10));
-						width  = getScalar(height * ratio);
-
-						if (width < minWidth) {
-							width  = minWidth;
-							height = getScalar(width / ratio);
-						}
-
-						if (width > maxWidth) {
-							width  = maxWidth;
-							height = getScalar(width / ratio);
-						}
-
-						inner.width( width ).height( height );
-
-						wrap.width( width + wPadding );
-
-						width_  = wrap.width();
-						height_ = wrap.height();
-					}
-
-				} else {
-					width  = Math.max(minWidth,  Math.min(width,  width  - (width_  - maxWidth_)));
-					height = Math.max(minHeight, Math.min(height, height - (height_ - maxHeight_)));
-				}
-			}
-
-			if (scrollOut && scrolling === 'auto' && height < origHeight && (width + wPadding + scrollOut) < maxWidth_) {
-				width += scrollOut;
-			}
-
-			inner.width( width ).height( height );
-
-			wrap.width( width + wPadding );
-
-			width_  = wrap.width();
-			height_ = wrap.height();
-
-			canShrink = (width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight;
-			canExpand = current.aspectRatio ? (width < origMaxWidth && height < origMaxHeight && width < origWidth && height < origHeight) : ((width < origMaxWidth || height < origMaxHeight) && (width < origWidth || height < origHeight));
-
-			$.extend(current, {
-				dim : {
-					width	: getValue( width_ ),
-					height	: getValue( height_ )
-				},
-				origWidth  : origWidth,
-				origHeight : origHeight,
-				canShrink  : canShrink,
-				canExpand  : canExpand,
-				wPadding   : wPadding,
-				hPadding   : hPadding,
-				wrapSpace  : height_ - skin.outerHeight(true),
-				skinSpace  : skin.height() - height
-			});
-
-			if (!iframe && current.autoHeight && height > minHeight && height < maxHeight && !canExpand) {
-				inner.height('auto');
-			}
-		},
-
-		_getPosition: function (onlyAbsolute) {
-			var current  = F.current,
-				viewport = F.getViewport(),
-				margin   = current.margin,
-				width    = F.wrap.width()  + margin[1] + margin[3],
-				height   = F.wrap.height() + margin[0] + margin[2],
-				rez      = {
-					position: 'absolute',
-					top  : margin[0],
-					left : margin[3]
-				};
-
-			if (current.autoCenter && current.fixed && !onlyAbsolute && height <= viewport.h && width <= viewport.w) {
-				rez.position = 'fixed';
-
-			} else if (!current.locked) {
-				rez.top  += viewport.y;
-				rez.left += viewport.x;
-			}
-
-			rez.top  = getValue(Math.max(rez.top,  rez.top  + ((viewport.h - height) * current.topRatio)));
-			rez.left = getValue(Math.max(rez.left, rez.left + ((viewport.w - width)  * current.leftRatio)));
-
-			return rez;
-		},
-
-		_afterZoomIn: function () {
-			var current = F.current;
-
-			if (!current) {
-				return;
-			}
-
-			F.isOpen = F.isOpened = true;
-
-			F.wrap.css('overflow', 'visible').addClass('fancybox-opened');
-
-			F.update();
-
-			// Assign a click event
-			if ( current.closeClick || (current.nextClick && F.group.length > 1) ) {
-				F.inner.css('cursor', 'pointer').bind('click.fb', function(e) {
-					if (!$(e.target).is('a') && !$(e.target).parent().is('a')) {
-						e.preventDefault();
-
-						F[ current.closeClick ? 'close' : 'next' ]();
-					}
-				});
-			}
-
-			// Create a close button
-			if (current.closeBtn) {
-				$(current.tpl.closeBtn).appendTo(F.skin).bind('click.fb', function(e) {
-					e.preventDefault();
-
-					F.close();
-				});
-			}
-
-			// Create navigation arrows
-			if (current.arrows && F.group.length > 1) {
-				if (current.loop || current.index > 0) {
-					$(current.tpl.prev).appendTo(F.outer).bind('click.fb', F.prev);
-				}
-
-				if (current.loop || current.index < F.group.length - 1) {
-					$(current.tpl.next).appendTo(F.outer).bind('click.fb', F.next);
-				}
-			}
-
-			F.trigger('afterShow');
-
-			// Stop the slideshow if this is the last item
-			if (!current.loop && current.index === current.group.length - 1) {
-				F.play( false );
-
-			} else if (F.opts.autoPlay && !F.player.isActive) {
-				F.opts.autoPlay = false;
-
-				F.play();
-			}
-		},
-
-		_afterZoomOut: function ( obj ) {
-			obj = obj || F.current;
-
-			$('.fancybox-wrap').trigger('onReset').remove();
-
-			$.extend(F, {
-				group  : {},
-				opts   : {},
-				router : false,
-				current   : null,
-				isActive  : false,
-				isOpened  : false,
-				isOpen    : false,
-				isClosing : false,
-				wrap   : null,
-				skin   : null,
-				outer  : null,
-				inner  : null
-			});
-
-			F.trigger('afterClose', obj);
-		}
-	});
-
-	/*
-	 *	Default transitions
-	 */
-
-	F.transitions = {
-		getOrigPosition: function () {
-			var current  = F.current,
-				element  = current.element,
-				orig     = current.orig,
-				pos      = {},
-				width    = 50,
-				height   = 50,
-				hPadding = current.hPadding,
-				wPadding = current.wPadding,
-				viewport = F.getViewport();
-
-			if (!orig && current.isDom && element.is(':visible')) {
-				orig = element.find('img:first');
-
-				if (!orig.length) {
-					orig = element;
-				}
-			}
-
-			if (isQuery(orig)) {
-				pos = orig.offset();
-
-				if (orig.is('img')) {
-					width  = orig.outerWidth();
-					height = orig.outerHeight();
-				}
-
-			} else {
-				pos.top  = viewport.y + (viewport.h - height) * current.topRatio;
-				pos.left = viewport.x + (viewport.w - width)  * current.leftRatio;
-			}
-
-			if (F.wrap.css('position') === 'fixed' || current.locked) {
-				pos.top  -= viewport.y;
-				pos.left -= viewport.x;
-			}
-
-			pos = {
-				top     : getValue(pos.top  - hPadding * current.topRatio),
-				left    : getValue(pos.left - wPadding * current.leftRatio),
-				width   : getValue(width  + wPadding),
-				height  : getValue(height + hPadding)
-			};
-
-			return pos;
-		},
-
-		step: function (now, fx) {
-			var ratio,
-				padding,
-				value,
-				prop       = fx.prop,
-				current    = F.current,
-				wrapSpace  = current.wrapSpace,
-				skinSpace  = current.skinSpace;
-
-			if (prop === 'width' || prop === 'height') {
-				ratio = fx.end === fx.start ? 1 : (now - fx.start) / (fx.end - fx.start);
-
-				if (F.isClosing) {
-					ratio = 1 - ratio;
-				}
-
-				padding = prop === 'width' ? current.wPadding : current.hPadding;
-				value   = now - padding;
-
-				F.skin[ prop ](  getScalar( prop === 'width' ?  value : value - (wrapSpace * ratio) ) );
-				F.inner[ prop ]( getScalar( prop === 'width' ?  value : value - (wrapSpace * ratio) - (skinSpace * ratio) ) );
-			}
-		},
-
-		zoomIn: function () {
-			var current  = F.current,
-				startPos = current.pos,
-				effect   = current.openEffect,
-				elastic  = effect === 'elastic',
-				endPos   = $.extend({opacity : 1}, startPos);
-
-			// Remove "position" property that breaks older IE
-			delete endPos.position;
-
-			if (elastic) {
-				startPos = this.getOrigPosition();
-
-				if (current.openOpacity) {
-					startPos.opacity = 0.1;
-				}
-
-			} else if (effect === 'fade') {
-				startPos.opacity = 0.1;
-			}
-
-			F.wrap.css(startPos).animate(endPos, {
-				duration : effect === 'none' ? 0 : current.openSpeed,
-				easing   : current.openEasing,
-				step     : elastic ? this.step : null,
-				complete : F._afterZoomIn
-			});
-		},
-
-		zoomOut: function () {
-			var current  = F.current,
-				effect   = current.closeEffect,
-				elastic  = effect === 'elastic',
-				endPos   = {opacity : 0.1};
-
-			if (elastic) {
-				endPos = this.getOrigPosition();
-
-				if (current.closeOpacity) {
-					endPos.opacity = 0.1;
-				}
-			}
-
-			F.wrap.animate(endPos, {
-				duration : effect === 'none' ? 0 : current.closeSpeed,
-				easing   : current.closeEasing,
-				step     : elastic ? this.step : null,
-				complete : F._afterZoomOut
-			});
-		},
-
-		changeIn: function () {
-			var current   = F.current,
-				effect    = current.nextEffect,
-				startPos  = current.pos,
-				endPos    = { opacity : 1 },
-				direction = F.direction,
-				distance  = 200,
-				field;
-
-			startPos.opacity = 0.1;
-
-			if (effect === 'elastic') {
-				field = direction === 'down' || direction === 'up' ? 'top' : 'left';
-
-				if (direction === 'down' || direction === 'right') {
-					startPos[ field ] = getValue(getScalar(startPos[ field ]) - distance);
-					endPos[ field ]   = '+=' + distance + 'px';
-
-				} else {
-					startPos[ field ] = getValue(getScalar(startPos[ field ]) + distance);
-					endPos[ field ]   = '-=' + distance + 'px';
-				}
-			}
-
-			// Workaround for http://bugs.jquery.com/ticket/12273
-			if (effect === 'none') {
-				F._afterZoomIn();
-
-			} else {
-				F.wrap.css(startPos).animate(endPos, {
-					duration : current.nextSpeed,
-					easing   : current.nextEasing,
-					complete : F._afterZoomIn
-				});
-			}
-		},
-
-		changeOut: function () {
-			var previous  = F.previous,
-				effect    = previous.prevEffect,
-				endPos    = { opacity : 0.1 },
-				direction = F.direction,
-				distance  = 200;
-
-			if (effect === 'elastic') {
-				endPos[ direction === 'down' || direction === 'up' ? 'top' : 'left' ] = ( direction === 'up' || direction === 'left' ? '-' : '+' ) + '=' + distance + 'px';
-			}
-
-			previous.wrap.animate(endPos, {
-				duration : effect === 'none' ? 0 : previous.prevSpeed,
-				easing   : previous.prevEasing,
-				complete : function () {
-					$(this).trigger('onReset').remove();
-				}
-			});
-		}
-	};
-
-	/*
-	 *	Overlay helper
-	 */
-
-	F.helpers.overlay = {
-		defaults : {
-			closeClick : true,      // if true, fancyBox will be closed when user clicks on the overlay
-			speedOut   : 200,       // duration of fadeOut animation
-			showEarly  : true,      // indicates if should be opened immediately or wait until the content is ready
-			css        : {},        // custom CSS properties
-			locked     : !isTouch,  // if true, the content will be locked into overlay
-			fixed      : true       // if false, the overlay CSS position property will not be set to "fixed"
-		},
-
-		overlay : null,      // current handle
-		fixed   : false,     // indicates if the overlay has position "fixed"
-		el      : $('html'), // element that contains "the lock"
-
-		// Public methods
-		create : function(opts) {
-			opts = $.extend({}, this.defaults, opts);
-
-			if (this.overlay) {
-				this.close();
-			}
-
-			this.overlay = $('<div class="fancybox-overlay"></div>').appendTo( F.coming ? F.coming.parent : opts.parent );
-			this.fixed   = false;
-
-			if (opts.fixed && F.defaults.fixed) {
-				this.overlay.addClass('fancybox-overlay-fixed');
-
-				this.fixed = true;
-			}
-		},
-
-		open : function(opts) {
-			var that = this;
-
-			opts = $.extend({}, this.defaults, opts);
-
-			if (this.overlay) {
-				this.overlay.unbind('.overlay').width('auto').height('auto');
-
-			} else {
-				this.create(opts);
-			}
-
-			if (!this.fixed) {
-				W.bind('resize.overlay', $.proxy( this.update, this) );
-
-				this.update();
-			}
-
-			if (opts.closeClick) {
-				this.overlay.bind('click.overlay', function(e) {
-					if ($(e.target).hasClass('fancybox-overlay')) {
-						if (F.isActive) {
-							F.close();
-						} else {
-							that.close();
-						}
-
-						return false;
-					}
-				});
-			}
-
-			this.overlay.css( opts.css ).show();
-		},
-
-		close : function() {
-			var scrollV, scrollH;
-
-			W.unbind('resize.overlay');
-
-			if (this.el.hasClass('fancybox-lock')) {
-				$('.fancybox-margin').removeClass('fancybox-margin');
-
-				scrollV = W.scrollTop();
-				scrollH = W.scrollLeft();
-
-				this.el.removeClass('fancybox-lock');
-
-				W.scrollTop( scrollV ).scrollLeft( scrollH );
-			}
-
-			$('.fancybox-overlay').remove().hide();
-
-			$.extend(this, {
-				overlay : null,
-				fixed   : false
-			});
-		},
-
-		// Private, callbacks
-
-		update : function () {
-			var width = '100%', offsetWidth;
-
-			// Reset width/height so it will not mess
-			this.overlay.width(width).height('100%');
-
-			// jQuery does not return reliable result for IE
-			if (IE) {
-				offsetWidth = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth);
-
-				if (D.width() > offsetWidth) {
-					width = D.width();
-				}
-
-			} else if (D.width() > W.width()) {
-				width = D.width();
-			}
-
-			this.overlay.width(width).height(D.height());
-		},
-
-		// This is where we can manipulate DOM, because later it would cause iframes to reload
-		onReady : function (opts, obj) {
-			var overlay = this.overlay;
-
-			$('.fancybox-overlay').stop(true, true);
-
-			if (!overlay) {
-				this.create(opts);
-			}
-
-			if (opts.locked && this.fixed && obj.fixed) {
-				if (!overlay) {
-					this.margin = D.height() > W.height() ? $('html').css('margin-right').replace("px", "") : false;
-				}
-
-				obj.locked = this.overlay.append( obj.wrap );
-				obj.fixed  = false;
-			}
-
-			if (opts.showEarly === true) {
-				this.beforeShow.apply(this, arguments);
-			}
-		},
-
-		beforeShow : function(opts, obj) {
-			var scrollV, scrollH;
-
-			if (obj.locked) {
-				if (this.margin !== false) {
-					$('*').filter(function(){
-						return ($(this).css('position') === 'fixed' && !$(this).hasClass("fancybox-overlay") && !$(this).hasClass("fancybox-wrap") );
-					}).addClass('fancybox-margin');
-
-					this.el.addClass('fancybox-margin');
-				}
-
-				scrollV = W.scrollTop();
-				scrollH = W.scrollLeft();
-
-				this.el.addClass('fancybox-lock');
-
-				W.scrollTop( scrollV ).scrollLeft( scrollH );
-			}
-
-			this.open(opts);
-		},
-
-		onUpdate : function() {
-			if (!this.fixed) {
-				this.update();
-			}
-		},
-
-		afterClose: function (opts) {
-			// Remove overlay if exists and fancyBox is not opening
-			// (e.g., it is not being open using afterClose callback)
-			//if (this.overlay && !F.isActive) {
-			if (this.overlay && !F.coming) {
-				this.overlay.fadeOut(opts.speedOut, $.proxy( this.close, this ));
-			}
-		}
-	};
-
-	/*
-	 *	Title helper
-	 */
-
-	F.helpers.title = {
-		defaults : {
-			type     : 'float', // 'float', 'inside', 'outside' or 'over',
-			position : 'bottom' // 'top' or 'bottom'
-		},
-
-		beforeShow: function (opts) {
-			var current = F.current,
-				text    = current.title,
-				type    = opts.type,
-				title,
-				target;
-
-			if ($.isFunction(text)) {
-				text = text.call(current.element, current);
-			}
-
-			if (!isString(text) || $.trim(text) === '') {
-				return;
-			}
-
-			title = $('<div class="fancybox-title fancybox-title-' + type + '-wrap">' + text + '</div>');
-
-			switch (type) {
-				case 'inside':
-					target = F.skin;
-				break;
-
-				case 'outside':
-					target = F.wrap;
-				break;
-
-				case 'over':
-					target = F.inner;
-				break;
-
-				default: // 'float'
-					target = F.skin;
-
-					title.appendTo('body');
-
-					if (IE) {
-						title.width( title.width() );
-					}
-
-					title.wrapInner('<span class="child"></span>');
-
-					//Increase bottom margin so this title will also fit into viewport
-					F.current.margin[2] += Math.abs( getScalar(title.css('margin-bottom')) );
-				break;
-			}
-
-			title[ (opts.position === 'top' ? 'prependTo'  : 'appendTo') ](target);
-		}
-	};
-
-	// jQuery plugin initialization
-	$.fn.fancybox = function (options) {
-		var index,
-			that     = $(this),
-			selector = this.selector || '',
-			run      = function(e) {
-				var what = $(this).blur(), idx = index, relType, relVal;
-
-				if (!(e.ctrlKey || e.altKey || e.shiftKey || e.metaKey) && !what.is('.fancybox-wrap')) {
-					relType = options.groupAttr || 'data-fancybox-group';
-					relVal  = what.attr(relType);
-
-					if (!relVal) {
-						relType = 'rel';
-						relVal  = what.get(0)[ relType ];
-					}
-
-					if (relVal && relVal !== '' && relVal !== 'nofollow') {
-						what = selector.length ? $(selector) : that;
-						what = what.filter('[' + relType + '="' + relVal + '"]');
-						idx  = what.index(this);
-					}
-
-					options.index = idx;
-
-					// Stop an event from bubbling if everything is fine
-					if (F.open(what, options) !== false) {
-						e.preventDefault();
-					}
-				}
-			};
-
-		options = options || {};
-		index   = options.index || 0;
-
-		if (!selector || options.live === false) {
-			that.unbind('click.fb-start').bind('click.fb-start', run);
-
-		} else {
-			D.undelegate(selector, 'click.fb-start').delegate(selector + ":not('.fancybox-item, .fancybox-nav')", 'click.fb-start', run);
-		}
-
-		this.filter('[data-fancybox-start=1]').trigger('click');
-
-		return this;
-	};
-
-	// Tests that need a body at doc ready
-	D.ready(function() {
-		var w1, w2;
-
-		if ( $.scrollbarWidth === undefined ) {
-			// http://benalman.com/projects/jquery-misc-plugins/#scrollbarwidth
-			$.scrollbarWidth = function() {
-				var parent = $('<div style="width:50px;height:50px;overflow:auto"><div/></div>').appendTo('body'),
-					child  = parent.children(),
-					width  = child.innerWidth() - child.height( 99 ).innerWidth();
-
-				parent.remove();
-
-				return width;
-			};
-		}
-
-		if ( $.support.fixedPosition === undefined ) {
-			$.support.fixedPosition = (function() {
-				var elem  = $('<div style="position:fixed;top:20px;"></div>').appendTo('body'),
-					fixed = ( elem[0].offsetTop === 20 || elem[0].offsetTop === 15 );
-
-				elem.remove();
-
-				return fixed;
-			}());
-		}
-
-		$.extend(F.defaults, {
-			scrollbarWidth : $.scrollbarWidth(),
-			fixed  : $.support.fixedPosition,
-			parent : $('body')
-		});
-
-		//Get real width of page scroll-bar
-		w1 = $(window).width();
-
-		H.addClass('fancybox-lock-test');
-
-		w2 = $(window).width();
-
-		H.removeClass('fancybox-lock-test');
-
-		$("<style type='text/css'>.fancybox-margin{margin-right:" + (w2 - w1) + "px;}</style>").appendTo("head");
-	});
-
-}(window, document, jQuery));

+ 0 - 46
docs/common/libs/fancybox/jquery.fancybox.pack.js

@@ -1,46 +0,0 @@
-/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */
-(function(r,G,f,v){var J=f("html"),n=f(r),p=f(G),b=f.fancybox=function(){b.open.apply(this,arguments)},I=navigator.userAgent.match(/msie/i),B=null,s=G.createTouch!==v,t=function(a){return a&&a.hasOwnProperty&&a instanceof f},q=function(a){return a&&"string"===f.type(a)},E=function(a){return q(a)&&0<a.indexOf("%")},l=function(a,d){var e=parseInt(a,10)||0;d&&E(a)&&(e*=b.getViewport()[d]/100);return Math.ceil(e)},w=function(a,b){return l(a,b)+"px"};f.extend(b,{version:"2.1.5",defaults:{padding:15,margin:20,
-width:800,height:600,minWidth:100,minHeight:100,maxWidth:9999,maxHeight:9999,pixelRatio:1,autoSize:!0,autoHeight:!1,autoWidth:!1,autoResize:!0,autoCenter:!s,fitToView:!0,aspectRatio:!1,topRatio:0.5,leftRatio:0.5,scrolling:"auto",wrapCSS:"",arrows:!0,closeBtn:!0,closeClick:!1,nextClick:!1,mouseWheel:!0,autoPlay:!1,playSpeed:3E3,preload:3,modal:!1,loop:!0,ajax:{dataType:"html",headers:{"X-fancyBox":!0}},iframe:{scrolling:"auto",preload:!0},swf:{wmode:"transparent",allowfullscreen:"true",allowscriptaccess:"always"},
-keys:{next:{13:"left",34:"up",39:"left",40:"up"},prev:{8:"right",33:"down",37:"right",38:"down"},close:[27],play:[32],toggle:[70]},direction:{next:"left",prev:"right"},scrollOutside:!0,index:0,type:null,href:null,content:null,title:null,tpl:{wrap:'<div class="fancybox-wrap" tabIndex="-1"><div class="fancybox-skin"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div></div>',image:'<img class="fancybox-image" src="{href}" alt="" />',iframe:'<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen'+
-(I?' allowtransparency="true"':"")+"></iframe>",error:'<p class="fancybox-error">The requested content cannot be loaded.<br/>Please try again later.</p>',closeBtn:'<a title="Close" class="fancybox-item fancybox-close" href="javascript:;"></a>',next:'<a title="Next" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',prev:'<a title="Previous" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>'},openEffect:"fade",openSpeed:250,openEasing:"swing",openOpacity:!0,
-openMethod:"zoomIn",closeEffect:"fade",closeSpeed:250,closeEasing:"swing",closeOpacity:!0,closeMethod:"zoomOut",nextEffect:"elastic",nextSpeed:250,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic",prevSpeed:250,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:!0,title:!0},onCancel:f.noop,beforeLoad:f.noop,afterLoad:f.noop,beforeShow:f.noop,afterShow:f.noop,beforeChange:f.noop,beforeClose:f.noop,afterClose:f.noop},group:{},opts:{},previous:null,coming:null,current:null,isActive:!1,
-isOpen:!1,isOpened:!1,wrap:null,skin:null,outer:null,inner:null,player:{timer:null,isActive:!1},ajaxLoad:null,imgPreload:null,transitions:{},helpers:{},open:function(a,d){if(a&&(f.isPlainObject(d)||(d={}),!1!==b.close(!0)))return f.isArray(a)||(a=t(a)?f(a).get():[a]),f.each(a,function(e,c){var k={},g,h,j,m,l;"object"===f.type(c)&&(c.nodeType&&(c=f(c)),t(c)?(k={href:c.data("fancybox-href")||c.attr("href"),title:c.data("fancybox-title")||c.attr("title"),isDom:!0,element:c},f.metadata&&f.extend(!0,k,
-c.metadata())):k=c);g=d.href||k.href||(q(c)?c:null);h=d.title!==v?d.title:k.title||"";m=(j=d.content||k.content)?"html":d.type||k.type;!m&&k.isDom&&(m=c.data("fancybox-type"),m||(m=(m=c.prop("class").match(/fancybox\.(\w+)/))?m[1]:null));q(g)&&(m||(b.isImage(g)?m="image":b.isSWF(g)?m="swf":"#"===g.charAt(0)?m="inline":q(c)&&(m="html",j=c)),"ajax"===m&&(l=g.split(/\s+/,2),g=l.shift(),l=l.shift()));j||("inline"===m?g?j=f(q(g)?g.replace(/.*(?=#[^\s]+$)/,""):g):k.isDom&&(j=c):"html"===m?j=g:!m&&(!g&&
-k.isDom)&&(m="inline",j=c));f.extend(k,{href:g,type:m,content:j,title:h,selector:l});a[e]=k}),b.opts=f.extend(!0,{},b.defaults,d),d.keys!==v&&(b.opts.keys=d.keys?f.extend({},b.defaults.keys,d.keys):!1),b.group=a,b._start(b.opts.index)},cancel:function(){var a=b.coming;a&&!1!==b.trigger("onCancel")&&(b.hideLoading(),b.ajaxLoad&&b.ajaxLoad.abort(),b.ajaxLoad=null,b.imgPreload&&(b.imgPreload.onload=b.imgPreload.onerror=null),a.wrap&&a.wrap.stop(!0,!0).trigger("onReset").remove(),b.coming=null,b.current||
-b._afterZoomOut(a))},close:function(a){b.cancel();!1!==b.trigger("beforeClose")&&(b.unbindEvents(),b.isActive&&(!b.isOpen||!0===a?(f(".fancybox-wrap").stop(!0).trigger("onReset").remove(),b._afterZoomOut()):(b.isOpen=b.isOpened=!1,b.isClosing=!0,f(".fancybox-item, .fancybox-nav").remove(),b.wrap.stop(!0,!0).removeClass("fancybox-opened"),b.transitions[b.current.closeMethod]())))},play:function(a){var d=function(){clearTimeout(b.player.timer)},e=function(){d();b.current&&b.player.isActive&&(b.player.timer=
-setTimeout(b.next,b.current.playSpeed))},c=function(){d();p.unbind(".player");b.player.isActive=!1;b.trigger("onPlayEnd")};if(!0===a||!b.player.isActive&&!1!==a){if(b.current&&(b.current.loop||b.current.index<b.group.length-1))b.player.isActive=!0,p.bind({"onCancel.player beforeClose.player":c,"onUpdate.player":e,"beforeLoad.player":d}),e(),b.trigger("onPlayStart")}else c()},next:function(a){var d=b.current;d&&(q(a)||(a=d.direction.next),b.jumpto(d.index+1,a,"next"))},prev:function(a){var d=b.current;
-d&&(q(a)||(a=d.direction.prev),b.jumpto(d.index-1,a,"prev"))},jumpto:function(a,d,e){var c=b.current;c&&(a=l(a),b.direction=d||c.direction[a>=c.index?"next":"prev"],b.router=e||"jumpto",c.loop&&(0>a&&(a=c.group.length+a%c.group.length),a%=c.group.length),c.group[a]!==v&&(b.cancel(),b._start(a)))},reposition:function(a,d){var e=b.current,c=e?e.wrap:null,k;c&&(k=b._getPosition(d),a&&"scroll"===a.type?(delete k.position,c.stop(!0,!0).animate(k,200)):(c.css(k),e.pos=f.extend({},e.dim,k)))},update:function(a){var d=
-a&&a.type,e=!d||"orientationchange"===d;e&&(clearTimeout(B),B=null);b.isOpen&&!B&&(B=setTimeout(function(){var c=b.current;c&&!b.isClosing&&(b.wrap.removeClass("fancybox-tmp"),(e||"load"===d||"resize"===d&&c.autoResize)&&b._setDimension(),"scroll"===d&&c.canShrink||b.reposition(a),b.trigger("onUpdate"),B=null)},e&&!s?0:300))},toggle:function(a){b.isOpen&&(b.current.fitToView="boolean"===f.type(a)?a:!b.current.fitToView,s&&(b.wrap.removeAttr("style").addClass("fancybox-tmp"),b.trigger("onUpdate")),
-b.update())},hideLoading:function(){p.unbind(".loading");f("#fancybox-loading").remove()},showLoading:function(){var a,d;b.hideLoading();a=f('<div id="fancybox-loading"><div></div></div>').click(b.cancel).appendTo("body");p.bind("keydown.loading",function(a){if(27===(a.which||a.keyCode))a.preventDefault(),b.cancel()});b.defaults.fixed||(d=b.getViewport(),a.css({position:"absolute",top:0.5*d.h+d.y,left:0.5*d.w+d.x}))},getViewport:function(){var a=b.current&&b.current.locked||!1,d={x:n.scrollLeft(),
-y:n.scrollTop()};a?(d.w=a[0].clientWidth,d.h=a[0].clientHeight):(d.w=s&&r.innerWidth?r.innerWidth:n.width(),d.h=s&&r.innerHeight?r.innerHeight:n.height());return d},unbindEvents:function(){b.wrap&&t(b.wrap)&&b.wrap.unbind(".fb");p.unbind(".fb");n.unbind(".fb")},bindEvents:function(){var a=b.current,d;a&&(n.bind("orientationchange.fb"+(s?"":" resize.fb")+(a.autoCenter&&!a.locked?" scroll.fb":""),b.update),(d=a.keys)&&p.bind("keydown.fb",function(e){var c=e.which||e.keyCode,k=e.target||e.srcElement;
-if(27===c&&b.coming)return!1;!e.ctrlKey&&(!e.altKey&&!e.shiftKey&&!e.metaKey&&(!k||!k.type&&!f(k).is("[contenteditable]")))&&f.each(d,function(d,k){if(1<a.group.length&&k[c]!==v)return b[d](k[c]),e.preventDefault(),!1;if(-1<f.inArray(c,k))return b[d](),e.preventDefault(),!1})}),f.fn.mousewheel&&a.mouseWheel&&b.wrap.bind("mousewheel.fb",function(d,c,k,g){for(var h=f(d.target||null),j=!1;h.length&&!j&&!h.is(".fancybox-skin")&&!h.is(".fancybox-wrap");)j=h[0]&&!(h[0].style.overflow&&"hidden"===h[0].style.overflow)&&
-(h[0].clientWidth&&h[0].scrollWidth>h[0].clientWidth||h[0].clientHeight&&h[0].scrollHeight>h[0].clientHeight),h=f(h).parent();if(0!==c&&!j&&1<b.group.length&&!a.canShrink){if(0<g||0<k)b.prev(0<g?"down":"left");else if(0>g||0>k)b.next(0>g?"up":"right");d.preventDefault()}}))},trigger:function(a,d){var e,c=d||b.coming||b.current;if(c){f.isFunction(c[a])&&(e=c[a].apply(c,Array.prototype.slice.call(arguments,1)));if(!1===e)return!1;c.helpers&&f.each(c.helpers,function(d,e){if(e&&b.helpers[d]&&f.isFunction(b.helpers[d][a]))b.helpers[d][a](f.extend(!0,
-{},b.helpers[d].defaults,e),c)});p.trigger(a)}},isImage:function(a){return q(a)&&a.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i)},isSWF:function(a){return q(a)&&a.match(/\.(swf)((\?|#).*)?$/i)},_start:function(a){var d={},e,c;a=l(a);e=b.group[a]||null;if(!e)return!1;d=f.extend(!0,{},b.opts,e);e=d.margin;c=d.padding;"number"===f.type(e)&&(d.margin=[e,e,e,e]);"number"===f.type(c)&&(d.padding=[c,c,c,c]);d.modal&&f.extend(!0,d,{closeBtn:!1,closeClick:!1,nextClick:!1,arrows:!1,
-mouseWheel:!1,keys:null,helpers:{overlay:{closeClick:!1}}});d.autoSize&&(d.autoWidth=d.autoHeight=!0);"auto"===d.width&&(d.autoWidth=!0);"auto"===d.height&&(d.autoHeight=!0);d.group=b.group;d.index=a;b.coming=d;if(!1===b.trigger("beforeLoad"))b.coming=null;else{c=d.type;e=d.href;if(!c)return b.coming=null,b.current&&b.router&&"jumpto"!==b.router?(b.current.index=a,b[b.router](b.direction)):!1;b.isActive=!0;if("image"===c||"swf"===c)d.autoHeight=d.autoWidth=!1,d.scrolling="visible";"image"===c&&(d.aspectRatio=
-!0);"iframe"===c&&s&&(d.scrolling="scroll");d.wrap=f(d.tpl.wrap).addClass("fancybox-"+(s?"mobile":"desktop")+" fancybox-type-"+c+" fancybox-tmp "+d.wrapCSS).appendTo(d.parent||"body");f.extend(d,{skin:f(".fancybox-skin",d.wrap),outer:f(".fancybox-outer",d.wrap),inner:f(".fancybox-inner",d.wrap)});f.each(["Top","Right","Bottom","Left"],function(a,b){d.skin.css("padding"+b,w(d.padding[a]))});b.trigger("onReady");if("inline"===c||"html"===c){if(!d.content||!d.content.length)return b._error("content")}else if(!e)return b._error("href");
-"image"===c?b._loadImage():"ajax"===c?b._loadAjax():"iframe"===c?b._loadIframe():b._afterLoad()}},_error:function(a){f.extend(b.coming,{type:"html",autoWidth:!0,autoHeight:!0,minWidth:0,minHeight:0,scrolling:"no",hasError:a,content:b.coming.tpl.error});b._afterLoad()},_loadImage:function(){var a=b.imgPreload=new Image;a.onload=function(){this.onload=this.onerror=null;b.coming.width=this.width/b.opts.pixelRatio;b.coming.height=this.height/b.opts.pixelRatio;b._afterLoad()};a.onerror=function(){this.onload=
-this.onerror=null;b._error("image")};a.src=b.coming.href;!0!==a.complete&&b.showLoading()},_loadAjax:function(){var a=b.coming;b.showLoading();b.ajaxLoad=f.ajax(f.extend({},a.ajax,{url:a.href,error:function(a,e){b.coming&&"abort"!==e?b._error("ajax",a):b.hideLoading()},success:function(d,e){"success"===e&&(a.content=d,b._afterLoad())}}))},_loadIframe:function(){var a=b.coming,d=f(a.tpl.iframe.replace(/\{rnd\}/g,(new Date).getTime())).attr("scrolling",s?"auto":a.iframe.scrolling).attr("src",a.href);
-f(a.wrap).bind("onReset",function(){try{f(this).find("iframe").hide().attr("src","//about:blank").end().empty()}catch(a){}});a.iframe.preload&&(b.showLoading(),d.one("load",function(){f(this).data("ready",1);s||f(this).bind("load.fb",b.update);f(this).parents(".fancybox-wrap").width("100%").removeClass("fancybox-tmp").show();b._afterLoad()}));a.content=d.appendTo(a.inner);a.iframe.preload||b._afterLoad()},_preloadImages:function(){var a=b.group,d=b.current,e=a.length,c=d.preload?Math.min(d.preload,
-e-1):0,f,g;for(g=1;g<=c;g+=1)f=a[(d.index+g)%e],"image"===f.type&&f.href&&((new Image).src=f.href)},_afterLoad:function(){var a=b.coming,d=b.current,e,c,k,g,h;b.hideLoading();if(a&&!1!==b.isActive)if(!1===b.trigger("afterLoad",a,d))a.wrap.stop(!0).trigger("onReset").remove(),b.coming=null;else{d&&(b.trigger("beforeChange",d),d.wrap.stop(!0).removeClass("fancybox-opened").find(".fancybox-item, .fancybox-nav").remove());b.unbindEvents();e=a.content;c=a.type;k=a.scrolling;f.extend(b,{wrap:a.wrap,skin:a.skin,
-outer:a.outer,inner:a.inner,current:a,previous:d});g=a.href;switch(c){case "inline":case "ajax":case "html":a.selector?e=f("<div>").html(e).find(a.selector):t(e)&&(e.data("fancybox-placeholder")||e.data("fancybox-placeholder",f('<div class="fancybox-placeholder"></div>').insertAfter(e).hide()),e=e.show().detach(),a.wrap.bind("onReset",function(){f(this).find(e).length&&e.hide().replaceAll(e.data("fancybox-placeholder")).data("fancybox-placeholder",!1)}));break;case "image":e=a.tpl.image.replace("{href}",
-g);break;case "swf":e='<object id="fancybox-swf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="movie" value="'+g+'"></param>',h="",f.each(a.swf,function(a,b){e+='<param name="'+a+'" value="'+b+'"></param>';h+=" "+a+'="'+b+'"'}),e+='<embed src="'+g+'" type="application/x-shockwave-flash" width="100%" height="100%"'+h+"></embed></object>"}(!t(e)||!e.parent().is(a.inner))&&a.inner.append(e);b.trigger("beforeShow");a.inner.css("overflow","yes"===k?"scroll":
-"no"===k?"hidden":k);b._setDimension();b.reposition();b.isOpen=!1;b.coming=null;b.bindEvents();if(b.isOpened){if(d.prevMethod)b.transitions[d.prevMethod]()}else f(".fancybox-wrap").not(a.wrap).stop(!0).trigger("onReset").remove();b.transitions[b.isOpened?a.nextMethod:a.openMethod]();b._preloadImages()}},_setDimension:function(){var a=b.getViewport(),d=0,e=!1,c=!1,e=b.wrap,k=b.skin,g=b.inner,h=b.current,c=h.width,j=h.height,m=h.minWidth,u=h.minHeight,n=h.maxWidth,p=h.maxHeight,s=h.scrolling,q=h.scrollOutside?
-h.scrollbarWidth:0,x=h.margin,y=l(x[1]+x[3]),r=l(x[0]+x[2]),v,z,t,C,A,F,B,D,H;e.add(k).add(g).width("auto").height("auto").removeClass("fancybox-tmp");x=l(k.outerWidth(!0)-k.width());v=l(k.outerHeight(!0)-k.height());z=y+x;t=r+v;C=E(c)?(a.w-z)*l(c)/100:c;A=E(j)?(a.h-t)*l(j)/100:j;if("iframe"===h.type){if(H=h.content,h.autoHeight&&1===H.data("ready"))try{H[0].contentWindow.document.location&&(g.width(C).height(9999),F=H.contents().find("body"),q&&F.css("overflow-x","hidden"),A=F.outerHeight(!0))}catch(G){}}else if(h.autoWidth||
-h.autoHeight)g.addClass("fancybox-tmp"),h.autoWidth||g.width(C),h.autoHeight||g.height(A),h.autoWidth&&(C=g.width()),h.autoHeight&&(A=g.height()),g.removeClass("fancybox-tmp");c=l(C);j=l(A);D=C/A;m=l(E(m)?l(m,"w")-z:m);n=l(E(n)?l(n,"w")-z:n);u=l(E(u)?l(u,"h")-t:u);p=l(E(p)?l(p,"h")-t:p);F=n;B=p;h.fitToView&&(n=Math.min(a.w-z,n),p=Math.min(a.h-t,p));z=a.w-y;r=a.h-r;h.aspectRatio?(c>n&&(c=n,j=l(c/D)),j>p&&(j=p,c=l(j*D)),c<m&&(c=m,j=l(c/D)),j<u&&(j=u,c=l(j*D))):(c=Math.max(m,Math.min(c,n)),h.autoHeight&&
-"iframe"!==h.type&&(g.width(c),j=g.height()),j=Math.max(u,Math.min(j,p)));if(h.fitToView)if(g.width(c).height(j),e.width(c+x),a=e.width(),y=e.height(),h.aspectRatio)for(;(a>z||y>r)&&(c>m&&j>u)&&!(19<d++);)j=Math.max(u,Math.min(p,j-10)),c=l(j*D),c<m&&(c=m,j=l(c/D)),c>n&&(c=n,j=l(c/D)),g.width(c).height(j),e.width(c+x),a=e.width(),y=e.height();else c=Math.max(m,Math.min(c,c-(a-z))),j=Math.max(u,Math.min(j,j-(y-r)));q&&("auto"===s&&j<A&&c+x+q<z)&&(c+=q);g.width(c).height(j);e.width(c+x);a=e.width();
-y=e.height();e=(a>z||y>r)&&c>m&&j>u;c=h.aspectRatio?c<F&&j<B&&c<C&&j<A:(c<F||j<B)&&(c<C||j<A);f.extend(h,{dim:{width:w(a),height:w(y)},origWidth:C,origHeight:A,canShrink:e,canExpand:c,wPadding:x,hPadding:v,wrapSpace:y-k.outerHeight(!0),skinSpace:k.height()-j});!H&&(h.autoHeight&&j>u&&j<p&&!c)&&g.height("auto")},_getPosition:function(a){var d=b.current,e=b.getViewport(),c=d.margin,f=b.wrap.width()+c[1]+c[3],g=b.wrap.height()+c[0]+c[2],c={position:"absolute",top:c[0],left:c[3]};d.autoCenter&&d.fixed&&
-!a&&g<=e.h&&f<=e.w?c.position="fixed":d.locked||(c.top+=e.y,c.left+=e.x);c.top=w(Math.max(c.top,c.top+(e.h-g)*d.topRatio));c.left=w(Math.max(c.left,c.left+(e.w-f)*d.leftRatio));return c},_afterZoomIn:function(){var a=b.current;a&&(b.isOpen=b.isOpened=!0,b.wrap.css("overflow","visible").addClass("fancybox-opened"),b.update(),(a.closeClick||a.nextClick&&1<b.group.length)&&b.inner.css("cursor","pointer").bind("click.fb",function(d){!f(d.target).is("a")&&!f(d.target).parent().is("a")&&(d.preventDefault(),
-b[a.closeClick?"close":"next"]())}),a.closeBtn&&f(a.tpl.closeBtn).appendTo(b.skin).bind("click.fb",function(a){a.preventDefault();b.close()}),a.arrows&&1<b.group.length&&((a.loop||0<a.index)&&f(a.tpl.prev).appendTo(b.outer).bind("click.fb",b.prev),(a.loop||a.index<b.group.length-1)&&f(a.tpl.next).appendTo(b.outer).bind("click.fb",b.next)),b.trigger("afterShow"),!a.loop&&a.index===a.group.length-1?b.play(!1):b.opts.autoPlay&&!b.player.isActive&&(b.opts.autoPlay=!1,b.play()))},_afterZoomOut:function(a){a=
-a||b.current;f(".fancybox-wrap").trigger("onReset").remove();f.extend(b,{group:{},opts:{},router:!1,current:null,isActive:!1,isOpened:!1,isOpen:!1,isClosing:!1,wrap:null,skin:null,outer:null,inner:null});b.trigger("afterClose",a)}});b.transitions={getOrigPosition:function(){var a=b.current,d=a.element,e=a.orig,c={},f=50,g=50,h=a.hPadding,j=a.wPadding,m=b.getViewport();!e&&(a.isDom&&d.is(":visible"))&&(e=d.find("img:first"),e.length||(e=d));t(e)?(c=e.offset(),e.is("img")&&(f=e.outerWidth(),g=e.outerHeight())):
-(c.top=m.y+(m.h-g)*a.topRatio,c.left=m.x+(m.w-f)*a.leftRatio);if("fixed"===b.wrap.css("position")||a.locked)c.top-=m.y,c.left-=m.x;return c={top:w(c.top-h*a.topRatio),left:w(c.left-j*a.leftRatio),width:w(f+j),height:w(g+h)}},step:function(a,d){var e,c,f=d.prop;c=b.current;var g=c.wrapSpace,h=c.skinSpace;if("width"===f||"height"===f)e=d.end===d.start?1:(a-d.start)/(d.end-d.start),b.isClosing&&(e=1-e),c="width"===f?c.wPadding:c.hPadding,c=a-c,b.skin[f](l("width"===f?c:c-g*e)),b.inner[f](l("width"===
-f?c:c-g*e-h*e))},zoomIn:function(){var a=b.current,d=a.pos,e=a.openEffect,c="elastic"===e,k=f.extend({opacity:1},d);delete k.position;c?(d=this.getOrigPosition(),a.openOpacity&&(d.opacity=0.1)):"fade"===e&&(d.opacity=0.1);b.wrap.css(d).animate(k,{duration:"none"===e?0:a.openSpeed,easing:a.openEasing,step:c?this.step:null,complete:b._afterZoomIn})},zoomOut:function(){var a=b.current,d=a.closeEffect,e="elastic"===d,c={opacity:0.1};e&&(c=this.getOrigPosition(),a.closeOpacity&&(c.opacity=0.1));b.wrap.animate(c,
-{duration:"none"===d?0:a.closeSpeed,easing:a.closeEasing,step:e?this.step:null,complete:b._afterZoomOut})},changeIn:function(){var a=b.current,d=a.nextEffect,e=a.pos,c={opacity:1},f=b.direction,g;e.opacity=0.1;"elastic"===d&&(g="down"===f||"up"===f?"top":"left","down"===f||"right"===f?(e[g]=w(l(e[g])-200),c[g]="+=200px"):(e[g]=w(l(e[g])+200),c[g]="-=200px"));"none"===d?b._afterZoomIn():b.wrap.css(e).animate(c,{duration:a.nextSpeed,easing:a.nextEasing,complete:b._afterZoomIn})},changeOut:function(){var a=
-b.previous,d=a.prevEffect,e={opacity:0.1},c=b.direction;"elastic"===d&&(e["down"===c||"up"===c?"top":"left"]=("up"===c||"left"===c?"-":"+")+"=200px");a.wrap.animate(e,{duration:"none"===d?0:a.prevSpeed,easing:a.prevEasing,complete:function(){f(this).trigger("onReset").remove()}})}};b.helpers.overlay={defaults:{closeClick:!0,speedOut:200,showEarly:!0,css:{},locked:!s,fixed:!0},overlay:null,fixed:!1,el:f("html"),create:function(a){a=f.extend({},this.defaults,a);this.overlay&&this.close();this.overlay=
-f('<div class="fancybox-overlay"></div>').appendTo(b.coming?b.coming.parent:a.parent);this.fixed=!1;a.fixed&&b.defaults.fixed&&(this.overlay.addClass("fancybox-overlay-fixed"),this.fixed=!0)},open:function(a){var d=this;a=f.extend({},this.defaults,a);this.overlay?this.overlay.unbind(".overlay").width("auto").height("auto"):this.create(a);this.fixed||(n.bind("resize.overlay",f.proxy(this.update,this)),this.update());a.closeClick&&this.overlay.bind("click.overlay",function(a){if(f(a.target).hasClass("fancybox-overlay"))return b.isActive?
-b.close():d.close(),!1});this.overlay.css(a.css).show()},close:function(){var a,b;n.unbind("resize.overlay");this.el.hasClass("fancybox-lock")&&(f(".fancybox-margin").removeClass("fancybox-margin"),a=n.scrollTop(),b=n.scrollLeft(),this.el.removeClass("fancybox-lock"),n.scrollTop(a).scrollLeft(b));f(".fancybox-overlay").remove().hide();f.extend(this,{overlay:null,fixed:!1})},update:function(){var a="100%",b;this.overlay.width(a).height("100%");I?(b=Math.max(G.documentElement.offsetWidth,G.body.offsetWidth),
-p.width()>b&&(a=p.width())):p.width()>n.width()&&(a=p.width());this.overlay.width(a).height(p.height())},onReady:function(a,b){var e=this.overlay;f(".fancybox-overlay").stop(!0,!0);e||this.create(a);a.locked&&(this.fixed&&b.fixed)&&(e||(this.margin=p.height()>n.height()?f("html").css("margin-right").replace("px",""):!1),b.locked=this.overlay.append(b.wrap),b.fixed=!1);!0===a.showEarly&&this.beforeShow.apply(this,arguments)},beforeShow:function(a,b){var e,c;b.locked&&(!1!==this.margin&&(f("*").filter(function(){return"fixed"===
-f(this).css("position")&&!f(this).hasClass("fancybox-overlay")&&!f(this).hasClass("fancybox-wrap")}).addClass("fancybox-margin"),this.el.addClass("fancybox-margin")),e=n.scrollTop(),c=n.scrollLeft(),this.el.addClass("fancybox-lock"),n.scrollTop(e).scrollLeft(c));this.open(a)},onUpdate:function(){this.fixed||this.update()},afterClose:function(a){this.overlay&&!b.coming&&this.overlay.fadeOut(a.speedOut,f.proxy(this.close,this))}};b.helpers.title={defaults:{type:"float",position:"bottom"},beforeShow:function(a){var d=
-b.current,e=d.title,c=a.type;f.isFunction(e)&&(e=e.call(d.element,d));if(q(e)&&""!==f.trim(e)){d=f('<div class="fancybox-title fancybox-title-'+c+'-wrap">'+e+"</div>");switch(c){case "inside":c=b.skin;break;case "outside":c=b.wrap;break;case "over":c=b.inner;break;default:c=b.skin,d.appendTo("body"),I&&d.width(d.width()),d.wrapInner('<span class="child"></span>'),b.current.margin[2]+=Math.abs(l(d.css("margin-bottom")))}d["top"===a.position?"prependTo":"appendTo"](c)}}};f.fn.fancybox=function(a){var d,
-e=f(this),c=this.selector||"",k=function(g){var h=f(this).blur(),j=d,k,l;!g.ctrlKey&&(!g.altKey&&!g.shiftKey&&!g.metaKey)&&!h.is(".fancybox-wrap")&&(k=a.groupAttr||"data-fancybox-group",l=h.attr(k),l||(k="rel",l=h.get(0)[k]),l&&(""!==l&&"nofollow"!==l)&&(h=c.length?f(c):e,h=h.filter("["+k+'="'+l+'"]'),j=h.index(this)),a.index=j,!1!==b.open(h,a)&&g.preventDefault())};a=a||{};d=a.index||0;!c||!1===a.live?e.unbind("click.fb-start").bind("click.fb-start",k):p.undelegate(c,"click.fb-start").delegate(c+
-":not('.fancybox-item, .fancybox-nav')","click.fb-start",k);this.filter("[data-fancybox-start=1]").trigger("click");return this};p.ready(function(){var a,d;f.scrollbarWidth===v&&(f.scrollbarWidth=function(){var a=f('<div style="width:50px;height:50px;overflow:auto"><div/></div>').appendTo("body"),b=a.children(),b=b.innerWidth()-b.height(99).innerWidth();a.remove();return b});if(f.support.fixedPosition===v){a=f.support;d=f('<div style="position:fixed;top:20px;"></div>').appendTo("body");var e=20===
-d[0].offsetTop||15===d[0].offsetTop;d.remove();a.fixedPosition=e}f.extend(b.defaults,{scrollbarWidth:f.scrollbarWidth(),fixed:f.support.fixedPosition,parent:f("body")});a=f(r).width();J.addClass("fancybox-lock-test");d=f(r).width();J.removeClass("fancybox-lock-test");f("<style type='text/css'>.fancybox-margin{margin-right:"+(d-a)+"px;}</style>").appendTo("head")})})(window,document,jQuery);

+ 0 - 205
docs/common/libs/jquery.easing.1.3.js

@@ -1,205 +0,0 @@
-/*
- * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
- *
- * Uses the built in easing capabilities added In jQuery 1.1
- * to offer multiple easing options
- *
- * TERMS OF USE - jQuery Easing
- * 
- * Open source under the BSD License. 
- * 
- * Copyright © 2008 George McGinley Smith
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without modification, 
- * are permitted provided that the following conditions are met:
- * 
- * Redistributions of source code must retain the above copyright notice, this list of 
- * conditions and the following disclaimer.
- * 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.
- * 
- * Neither the name of the author nor the names of 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 OWNER 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. 
- *
-*/
-
-// t: current time, b: begInnIng value, c: change In value, d: duration
-jQuery.easing['jswing'] = jQuery.easing['swing'];
-
-jQuery.extend( jQuery.easing,
-{
-	def: 'easeOutQuad',
-	swing: function (x, t, b, c, d) {
-		//alert(jQuery.easing.default);
-		return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
-	},
-	easeInQuad: function (x, t, b, c, d) {
-		return c*(t/=d)*t + b;
-	},
-	easeOutQuad: function (x, t, b, c, d) {
-		return -c *(t/=d)*(t-2) + b;
-	},
-	easeInOutQuad: function (x, t, b, c, d) {
-		if ((t/=d/2) < 1) return c/2*t*t + b;
-		return -c/2 * ((--t)*(t-2) - 1) + b;
-	},
-	easeInCubic: function (x, t, b, c, d) {
-		return c*(t/=d)*t*t + b;
-	},
-	easeOutCubic: function (x, t, b, c, d) {
-		return c*((t=t/d-1)*t*t + 1) + b;
-	},
-	easeInOutCubic: function (x, t, b, c, d) {
-		if ((t/=d/2) < 1) return c/2*t*t*t + b;
-		return c/2*((t-=2)*t*t + 2) + b;
-	},
-	easeInQuart: function (x, t, b, c, d) {
-		return c*(t/=d)*t*t*t + b;
-	},
-	easeOutQuart: function (x, t, b, c, d) {
-		return -c * ((t=t/d-1)*t*t*t - 1) + b;
-	},
-	easeInOutQuart: function (x, t, b, c, d) {
-		if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
-		return -c/2 * ((t-=2)*t*t*t - 2) + b;
-	},
-	easeInQuint: function (x, t, b, c, d) {
-		return c*(t/=d)*t*t*t*t + b;
-	},
-	easeOutQuint: function (x, t, b, c, d) {
-		return c*((t=t/d-1)*t*t*t*t + 1) + b;
-	},
-	easeInOutQuint: function (x, t, b, c, d) {
-		if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
-		return c/2*((t-=2)*t*t*t*t + 2) + b;
-	},
-	easeInSine: function (x, t, b, c, d) {
-		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
-	},
-	easeOutSine: function (x, t, b, c, d) {
-		return c * Math.sin(t/d * (Math.PI/2)) + b;
-	},
-	easeInOutSine: function (x, t, b, c, d) {
-		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
-	},
-	easeInExpo: function (x, t, b, c, d) {
-		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
-	},
-	easeOutExpo: function (x, t, b, c, d) {
-		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
-	},
-	easeInOutExpo: function (x, t, b, c, d) {
-		if (t==0) return b;
-		if (t==d) return b+c;
-		if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
-		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
-	},
-	easeInCirc: function (x, t, b, c, d) {
-		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
-	},
-	easeOutCirc: function (x, t, b, c, d) {
-		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
-	},
-	easeInOutCirc: function (x, t, b, c, d) {
-		if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
-		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
-	},
-	easeInElastic: function (x, t, b, c, d) {
-		var s=1.70158;var p=0;var a=c;
-		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
-		if (a < Math.abs(c)) { a=c; var s=p/4; }
-		else var s = p/(2*Math.PI) * Math.asin (c/a);
-		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
-	},
-	easeOutElastic: function (x, t, b, c, d) {
-		var s=1.70158;var p=0;var a=c;
-		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
-		if (a < Math.abs(c)) { a=c; var s=p/4; }
-		else var s = p/(2*Math.PI) * Math.asin (c/a);
-		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
-	},
-	easeInOutElastic: function (x, t, b, c, d) {
-		var s=1.70158;var p=0;var a=c;
-		if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);
-		if (a < Math.abs(c)) { a=c; var s=p/4; }
-		else var s = p/(2*Math.PI) * Math.asin (c/a);
-		if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
-		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
-	},
-	easeInBack: function (x, t, b, c, d, s) {
-		if (s == undefined) s = 1.70158;
-		return c*(t/=d)*t*((s+1)*t - s) + b;
-	},
-	easeOutBack: function (x, t, b, c, d, s) {
-		if (s == undefined) s = 1.70158;
-		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
-	},
-	easeInOutBack: function (x, t, b, c, d, s) {
-		if (s == undefined) s = 1.70158; 
-		if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
-		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
-	},
-	easeInBounce: function (x, t, b, c, d) {
-		return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
-	},
-	easeOutBounce: function (x, t, b, c, d) {
-		if ((t/=d) < (1/2.75)) {
-			return c*(7.5625*t*t) + b;
-		} else if (t < (2/2.75)) {
-			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
-		} else if (t < (2.5/2.75)) {
-			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
-		} else {
-			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
-		}
-	},
-	easeInOutBounce: function (x, t, b, c, d) {
-		if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
-		return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
-	}
-});
-
-/*
- *
- * TERMS OF USE - EASING EQUATIONS
- * 
- * Open source under the BSD License. 
- * 
- * Copyright © 2001 Robert Penner
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without modification, 
- * are permitted provided that the following conditions are met:
- * 
- * Redistributions of source code must retain the above copyright notice, this list of 
- * conditions and the following disclaimer.
- * 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.
- * 
- * Neither the name of the author nor the names of 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 OWNER 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. 
- *
- */

File diff suppressed because it is too large
+ 0 - 7
docs/common/libs/jquery.mousewheel.min.js


+ 0 - 137
docs/examples.html

@@ -1,137 +0,0 @@
-<!DOCTYPE html>
-<html>
-    <head>
-        <meta charset="utf-8">
-        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-        
-        <title>raylib - examples</title>
-        
-        <meta name="title" content="raylib - examples">
-        <meta name="description" content="raylib is a simple and easy-to-use library to learn videogames programming. Check the full set of raylib examples">
-        <meta name="keywords" content="raylib, videogames, programming, C, C++, library, learn, study, simple, easy, free, open source, raysan">
-        <meta name="viewport" content="width=device-width">
-        
-        <!-- Facebook metatags for sharing -->
-        <meta property="og:title" content="raylib - examples"/>
-        <meta property="og:image" content="http://www.raylib.com/common/img/fb_raylib_logo.png"/>
-        <meta property="og:url" content="http://www.raylib.com" />
-        <meta property="og:site_name" content="raylib"/>
-        <meta property="og:description" content="check the full set of raylib examples... they are amazing!"/>
-
-        <link rel="stylesheet" type="text/css" href="common/css/main.css">
-        <link rel="icon" href="favicon.ico" />
-
-        <link rel="stylesheet" type="text/css" href="common/css/examples.css">
-
-        <!-- NOTE: JavaScript code added at the end of body! -->
-        
-        <!-- Enabling HTML5 tags for older IE browsers -->
-        <!--[if lt IE 9]>
-          <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
-        <![endif]-->
-    </head>
-    
-    <body>
-        <div class="page">
-            <!--[if lt IE 7]>
-                <p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
-            <![endif]-->
-
-            <div class="header">
-                <a id="logo" href="index.html"></a>
-                <div id="social">
-                    <a id="itchio" href="https://raysan5.itch.io" target="_blank"></a>
-                    <a id="handmade" href="https://raylib.handmade.network/" target="_blank"></a>
-                    <a id="patreon" href="https://www.patreon.com/raysan5" target="_blank"></a>
-                    <a id="twitch" href="http://www.twitch.tv/raysan5" target="_blank"></a>
-                    <a id="reddit" href="https://www.reddit.com/r/raylib/" target="_blank"></a>
-                    <a id="freenode" href="http://webchat.freenode.net/?channels=#raylib" target="_blank"></a>
-                    <a id="facebook" href="http://www.facebook.com/raylibgames" target="_blank"></a>
-                    <a id="twitter" href="http://www.twitter.com/raysan5" target="_blank"></a>
-                    <a id="github" href="http://github.com/raysan5/raylib" target="_blank"></a>
-                    <a id="youtube" href="https://www.youtube.com/channel/UC8WIBkhYb5sBNqXO1mZ7WSQ" target="_blank"></a>
-                </div>
-                <div class="menu">
-                    <a href="index.html">about</a>
-                    <div id="active">examples</div>
-                    <a href="games.html">games</a>
-                    <a href="helpme.html">helpme!</a>
-                    <a id="forum" href="http://forum.raylib.com">forum</a>
-                </div>
-            </div>
-
-            <div class="content">
-                <p>Examples are organized by colors depending on the raylib module features
-                they are teaching. Currently, raylib main modules are 7.</p>
-                <br>
-                <p>Wanna see all functions available in raylib? <a class="simplelink" href="cheatsheet/cheatsheet.html">Check cheatsheet</a></p>
-                <br>
-                <p>Click to filter by module:</p>
-                <br>
-
-<!-- Filtering controls
-<div class="filter" data-filter="all">Show All</div>
-<div class="filter" data-filter=".category-1">Category 1</div>
-<div class="filter" data-filter=".category-2">Category 2</div>
- -->
-<!-- Sorting controls
-<div class="sort" data-sort="default">Default</div>
-<div class="sort" data-sort="myorder:asc">Ascending</div>
-<div class="sort" data-sort="myorder:desc">Descending</div>
-<div class="sort" data-sort="random">Random</div>
- -->
-                <!--<div class="filter legendButton" data-filter="all">ALL</div> -->
-                <div id="filter_menu">
-                    <div class="filter legendButton" id="core" data-filter=".fcore">core</div> 
-                    <div class="filter legendButton" id="shapes" data-filter=".fshapes">shapes</div>
-                    <div class="filter legendButton" id="textures" data-filter=".ftextures">textures</div>
-                    <div class="filter legendButton" id="text" data-filter=".ftext">text</div>
-                    <div class="filter legendButton" id="models" data-filter=".fmodels">models</div>
-                    <div class="filter legendButton" id="shaders" data-filter=".fshaders">shaders</div>
-                    <div class="filter legendButton" id="audio" data-filter=".faudio">audio</div>
-                </div>
-
-                <!-- Items container, filled when loading -->
-                <div id="container"></div>
-
-            </div>
-
-            <div class="footer">
-                <p>Web developed by <a href="http://www.raysanweb.com" target="_blank">RaySan</a> and <a href="http://www.elendow.com" target="_blank">Elendow</a></p>
-            </div>
-
-        </div>
-
-        <!-- Add jQuery library -->
-        <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
-
-        <!-- Add jQuery easing plugin -->
-        <script src="common/libs/jquery.easing.1.3.js"></script>
-
-        <!-- Add fancyBox main JS and CSS files -->
-        <script src="common/libs/fancybox/jquery.fancybox.js"></script>
-        <link rel="stylesheet" type="text/css" href="common/libs/fancybox/jquery.fancybox.css" media="screen" />
-
-        <!-- Add Button helper -->
-        <link rel="stylesheet" type="text/css" href="common/libs/fancybox/helpers/jquery.fancybox-buttons.css" />
-        <script src="common/libs/fancybox/helpers/jquery.fancybox-buttons.js"></script>
-
-        <!-- Add jQuery Mix-It Up plugin -->
-        <script src="http://cdn.jsdelivr.net/jquery.mixitup/latest/jquery.mixitup.min.js"></script>
-
-        <!-- Add own script code -->
-        <script src="common/js/examples.js"></script>
-
-        <!-- Google Analytics tracking code -->
-        <script>
-            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-            })(window,document,'script','http://www.google-analytics.com/analytics.js','ga');
-
-            ga('create', 'UA-45733555-1', 'raylib.com');
-            ga('require', 'linkid', 'linkid.js');
-            ga('send', 'pageview');
-        </script>
-    </body>
-</html>

+ 0 - 141
docs/examples/src/audio/audio_module_playing.c

@@ -1,141 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [audio] example - Module playing (streaming)
-*
-*   NOTE: This example requires OpenAL Soft library installed
-*
-*   This example has been created using raylib 1.5 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2016 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-#define MAX_CIRCLES  64
-
-typedef struct {
-    Vector2 position;
-    float radius;
-    float alpha;
-    float speed;
-    Color color;
-} CircleWave;
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    SetConfigFlags(FLAG_MSAA_4X_HINT);      // NOTE: Try to enable MSAA 4X
-    
-    InitWindow(screenWidth, screenHeight, "raylib [audio] example - module playing (streaming)");
-
-    InitAudioDevice();              // Initialize audio device
-    
-    Color colors[14] = { ORANGE, RED, GOLD, LIME, BLUE, VIOLET, BROWN, LIGHTGRAY, PINK,
-                         YELLOW, GREEN, SKYBLUE, PURPLE, BEIGE };
-    
-    // Creates ome circles for visual effect
-    CircleWave circles[MAX_CIRCLES];
-    
-    for (int i = MAX_CIRCLES - 1; i >= 0; i--)
-    {
-        circles[i].alpha = 0.0f;
-        circles[i].radius = GetRandomValue(10, 40);
-        circles[i].position.x = GetRandomValue(circles[i].radius, screenWidth - circles[i].radius);
-        circles[i].position.y = GetRandomValue(circles[i].radius, screenHeight - circles[i].radius);
-        circles[i].speed = (float)GetRandomValue(1, 100)/20000.0f;
-        circles[i].color = colors[GetRandomValue(0, 13)];
-    }
-
-    Music xm = LoadMusicStream("resources/mini1111.xm");
-    
-    PlayMusicStream(xm);
-
-    float timePlayed = 0.0f;
-    bool pause = false;
-
-    SetTargetFPS(60);               // Set our game to run at 60 frames-per-second
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        UpdateMusicStream(xm);        // Update music buffer with new stream data
-        
-        // Restart music playing (stop and play)
-        if (IsKeyPressed(KEY_SPACE)) 
-        {
-            StopMusicStream(xm);
-            PlayMusicStream(xm);
-        }
-        
-        // Pause/Resume music playing 
-        if (IsKeyPressed(KEY_P))
-        {
-            pause = !pause;
-            
-            if (pause) PauseMusicStream(xm);
-            else ResumeMusicStream(xm);
-        }
-        
-        // Get timePlayed scaled to bar dimensions
-        timePlayed = GetMusicTimePlayed(xm)/GetMusicTimeLength(xm)*(screenWidth - 40);
-        
-        // Color circles animation
-        for (int i = MAX_CIRCLES - 1; (i >= 0) && !pause; i--)
-        {
-            circles[i].alpha += circles[i].speed;
-            circles[i].radius += circles[i].speed*10.0f;
-            
-            if (circles[i].alpha > 1.0f) circles[i].speed *= -1;
-            
-            if (circles[i].alpha <= 0.0f)
-            {
-                circles[i].alpha = 0.0f;
-                circles[i].radius = GetRandomValue(10, 40);
-                circles[i].position.x = GetRandomValue(circles[i].radius, screenWidth - circles[i].radius);
-                circles[i].position.y = GetRandomValue(circles[i].radius, screenHeight - circles[i].radius);
-                circles[i].color = colors[GetRandomValue(0, 13)];
-                circles[i].speed = (float)GetRandomValue(1, 100)/20000.0f;
-            }
-        }
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-            
-            for (int i = MAX_CIRCLES - 1; i >= 0; i--)
-            {
-                DrawCircleV(circles[i].position, circles[i].radius, Fade(circles[i].color, circles[i].alpha));
-            }
-            
-            // Draw time bar
-            DrawRectangle(20, screenHeight - 20 - 12, screenWidth - 40, 12, LIGHTGRAY);
-            DrawRectangle(20, screenHeight - 20 - 12, (int)timePlayed, 12, MAROON);
-            DrawRectangleLines(20, screenHeight - 20 - 12, screenWidth - 40, 12, GRAY);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    UnloadMusicStream(xm);          // Unload music stream buffers from RAM
-    
-    CloseAudioDevice();     // Close audio device (music streaming is automatically stopped)
-
-    CloseWindow();          // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 93
docs/examples/src/audio/audio_music_stream.c

@@ -1,93 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [audio] example - Music playing (streaming)
-*
-*   NOTE: This example requires OpenAL Soft library installed
-*
-*   This example has been created using raylib 1.3 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2015 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [audio] example - music playing (streaming)");
-
-    InitAudioDevice();              // Initialize audio device
-
-    Music music = LoadMusicStream("resources/guitar_noodling.ogg");
-    
-    PlayMusicStream(music);
-
-    float timePlayed = 0.0f;
-    bool pause = false;
-
-    SetTargetFPS(60);               // Set our game to run at 60 frames-per-second
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        UpdateMusicStream(music);        // Update music buffer with new stream data
-        
-        // Restart music playing (stop and play)
-        if (IsKeyPressed(KEY_SPACE)) 
-        {
-            StopMusicStream(music);
-            PlayMusicStream(music);
-        }
-        
-        // Pause/Resume music playing 
-        if (IsKeyPressed(KEY_P))
-        {
-            pause = !pause;
-            
-            if (pause) PauseMusicStream(music);
-            else ResumeMusicStream(music);
-        }
-        
-        // Get timePlayed scaled to bar dimensions (400 pixels)
-        timePlayed = GetMusicTimePlayed(music)/GetMusicTimeLength(music)*400;
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            DrawText("MUSIC SHOULD BE PLAYING!", 255, 150, 20, LIGHTGRAY);
-
-            DrawRectangle(200, 200, 400, 12, LIGHTGRAY);
-            DrawRectangle(200, 200, (int)timePlayed, 12, MAROON);
-            DrawRectangleLines(200, 200, 400, 12, GRAY);
-            
-            DrawText("PRESS SPACE TO RESTART MUSIC", 215, 250, 20, LIGHTGRAY);
-            DrawText("PRESS P TO PAUSE/RESUME MUSIC", 208, 280, 20, LIGHTGRAY);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    UnloadMusicStream(music);   // Unload music stream buffers from RAM
-
-    CloseAudioDevice();         // Close audio device (music streaming is automatically stopped)
-
-    CloseWindow();              // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 114
docs/examples/src/audio/audio_raw_stream.c

@@ -1,114 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [audio] example - Raw audio streaming
-*
-*   NOTE: This example requires OpenAL Soft library installed
-*
-*   This example has been created using raylib 1.6 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2015 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-#include <stdlib.h>         // Required for: malloc(), free()
-#include <math.h>           // Required for: sinf()
-
-#define MAX_SAMPLES             22050
-#define MAX_SAMPLES_PER_UPDATE   4096
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [audio] example - raw audio streaming");
-
-    InitAudioDevice();              // Initialize audio device
-
-    // Init raw audio stream (sample rate: 22050, sample size: 16bit-short, channels: 1-mono)
-    AudioStream stream = InitAudioStream(22050, 16, 1);
-    
-    // Generate samples data from sine wave
-    short *data = (short *)malloc(sizeof(short)*MAX_SAMPLES);
-    
-    // TODO: Review data generation, it seems data is discontinued for loop,
-    // for that reason, there is a clip everytime audio stream is looped...
-    for (int i = 0; i < MAX_SAMPLES; i++)
-    {
-        data[i] = (short)(sinf(((2*PI*(float)i)/2)*DEG2RAD)*32000);
-    }
-    
-    PlayAudioStream(stream);        // Start processing stream buffer (no data loaded currently)
-    
-    int totalSamples = MAX_SAMPLES;
-    int samplesLeft = totalSamples;
-    
-    Vector2 position = { 0, 0 };
-
-    SetTargetFPS(30);               // Set our game to run at 30 frames-per-second
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        
-        // Refill audio stream if required
-        // NOTE: Every update we check if stream data has been already consumed and we update
-        // buffer with new data from the generated samples, we upload data at a rate (MAX_SAMPLES_PER_UPDATE),
-        // but notice that at some point we update < MAX_SAMPLES_PER_UPDATE data...
-        if (IsAudioBufferProcessed(stream)) 
-        {
-            int numSamples = 0;
-            if (samplesLeft >= MAX_SAMPLES_PER_UPDATE) numSamples = MAX_SAMPLES_PER_UPDATE;
-            else numSamples = samplesLeft;
-
-            UpdateAudioStream(stream, data + (totalSamples - samplesLeft), numSamples);
-            
-            samplesLeft -= numSamples;
-            
-            // Reset samples feeding (loop audio)
-            if (samplesLeft <= 0) samplesLeft = totalSamples;
-        }
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            DrawText("SINE WAVE SHOULD BE PLAYING!", 240, 140, 20, LIGHTGRAY);
-            
-            // NOTE: Draw a part of the sine wave (only screen width, proportional values)
-            for (int i = 0; i < GetScreenWidth(); i++)
-            {
-                position.x = i;
-                position.y = 250 + 50*data[i]/32000;
-                
-                DrawPixelV(position, RED);
-            }
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    free(data);                 // Unload sine wave data
-    
-    CloseAudioStream(stream);   // Close raw audio stream and delete buffers from RAM
-
-    CloseAudioDevice();         // Close audio device (music streaming is automatically stopped)
-
-    CloseWindow();              // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 67
docs/examples/src/audio/audio_sound_loading.c

@@ -1,67 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [audio] example - Sound loading and playing
-*
-*   NOTE: This example requires OpenAL Soft library installed
-*
-*   This example has been created using raylib 1.0 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2014 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [audio] example - sound loading and playing");
-
-    InitAudioDevice();      // Initialize audio device
-
-    Sound fxWav = LoadSound("resources/sound.wav");         // Load WAV audio file
-    Sound fxOgg = LoadSound("resources/tanatana.ogg");      // Load OGG audio file
-    
-    SetTargetFPS(60);
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        if (IsKeyPressed(KEY_SPACE)) PlaySound(fxWav);      // Play WAV sound
-        if (IsKeyPressed(KEY_ENTER)) PlaySound(fxOgg);      // Play OGG sound
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            DrawText("Press SPACE to PLAY the WAV sound!", 200, 180, 20, LIGHTGRAY);
-
-            DrawText("Press ENTER to PLAY the OGG sound!", 200, 220, 20, LIGHTGRAY);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    UnloadSound(fxWav);     // Unload sound data
-    UnloadSound(fxOgg);     // Unload sound data
-
-    CloseAudioDevice();     // Close audio device
-
-    CloseWindow();          // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 139
docs/examples/src/core/core_2d_camera.c

@@ -1,139 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [core] example - 2d camera
-*
-*   This example has been created using raylib 1.5 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2016 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-#define MAX_BUILDINGS   100
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [core] example - 2d camera");
-    
-    Rectangle player = { 400, 280, 40, 40 };
-    Rectangle buildings[MAX_BUILDINGS];
-    Color buildColors[MAX_BUILDINGS];
-    
-    int spacing = 0;
-    
-    for (int i = 0; i < MAX_BUILDINGS; i++)
-    {
-        buildings[i].width = GetRandomValue(50, 200);
-        buildings[i].height = GetRandomValue(100, 800);
-        buildings[i].y = screenHeight - 130 - buildings[i].height;
-        buildings[i].x = -6000 + spacing;
-
-        spacing += buildings[i].width;
-        
-        buildColors[i] = (Color){ GetRandomValue(200, 240), GetRandomValue(200, 240), GetRandomValue(200, 250), 255 };
-    }
-    
-    Camera2D camera;
-    
-    camera.target = (Vector2){ player.x + 20, player.y + 20 };
-    camera.offset = (Vector2){ 0, 0 };
-    camera.rotation = 0.0f;
-    camera.zoom = 1.0f;
-    
-    SetTargetFPS(60);
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        if (IsKeyDown(KEY_RIGHT))
-        {
-            player.x += 2;              // Player movement
-            camera.offset.x -= 2;       // Camera displacement with player movement
-        }
-        else if (IsKeyDown(KEY_LEFT))
-        {
-            player.x -= 2;              // Player movement
-            camera.offset.x += 2;       // Camera displacement with player movement
-        }
-        
-        // Camera target follows player
-        camera.target = (Vector2){ player.x + 20, player.y + 20 };
-        
-        // Camera rotation controls
-        if (IsKeyDown(KEY_A)) camera.rotation--;
-        else if (IsKeyDown(KEY_S)) camera.rotation++;
-        
-        // Limit camera rotation to 80 degrees (-40 to 40)
-        if (camera.rotation > 40) camera.rotation = 40;         
-        else if (camera.rotation < -40) camera.rotation = -40;
-        
-        // Camera zoom controls
-        camera.zoom += ((float)GetMouseWheelMove()*0.05f);
-        
-        if (camera.zoom > 3.0f) camera.zoom = 3.0f;
-        else if (camera.zoom < 0.1f) camera.zoom = 0.1f;
-        
-        // Camera reset (zoom and rotation)
-        if (IsKeyPressed(KEY_R)) 
-        {
-            camera.zoom = 1.0f;
-            camera.rotation = 0.0f;
-        }
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-        
-            ClearBackground(RAYWHITE);
-        
-            Begin2dMode(camera);
-
-                DrawRectangle(-6000, 320, 13000, 8000, DARKGRAY);
-                
-                for (int i = 0; i < MAX_BUILDINGS; i++) DrawRectangleRec(buildings[i], buildColors[i]);
-                
-                DrawRectangleRec(player, RED);
-                
-                DrawRectangle(camera.target.x, -500, 1, screenHeight*4, GREEN);
-                DrawRectangle(-500, camera.target.y, screenWidth*4, 1, GREEN);
-                
-            End2dMode();
-            
-            DrawText("SCREEN AREA", 640, 10, 20, RED);
-            
-            DrawRectangle(0, 0, screenWidth, 5, RED);
-            DrawRectangle(0, 5, 5, screenHeight - 10, RED);
-            DrawRectangle(screenWidth - 5, 5, 5, screenHeight - 10, RED);
-            DrawRectangle(0, screenHeight - 5, screenWidth, 5, RED);
-            
-            DrawRectangle( 10, 10, 250, 113, Fade(SKYBLUE, 0.5f));
-            DrawRectangleLines( 10, 10, 250, 113, BLUE);
-            
-            DrawText("Free 2d camera controls:", 20, 20, 10, BLACK);
-            DrawText("- Right/Left to move Offset", 40, 40, 10, DARKGRAY);
-            DrawText("- Mouse Wheel to Zoom in-out", 40, 60, 10, DARKGRAY);
-            DrawText("- A / S to Rotate", 40, 80, 10, DARKGRAY);
-            DrawText("- R to reset Zoom and Rotation", 40, 100, 10, DARKGRAY);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------   
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 92
docs/examples/src/core/core_3d_camera_first_person.c

@@ -1,92 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [core] example - 3d camera first person
-*
-*   This example has been created using raylib 1.3 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2015 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-#define MAX_COLUMNS 20
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d camera first person");
-    
-    // Define the camera to look into our 3d world (position, target, up vector)
-    Camera camera = {{ 4.0f, 2.0f, 4.0f }, { 0.0f, 1.8f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 60.0f };
-
-    // Generates some random columns
-    float heights[MAX_COLUMNS];
-    Vector3 positions[MAX_COLUMNS];
-    Color colors[MAX_COLUMNS];
-    
-    for (int i = 0; i < MAX_COLUMNS; i++)
-    {
-        heights[i] = (float)GetRandomValue(1, 12);
-        positions[i] = (Vector3){ GetRandomValue(-15, 15), heights[i]/2, GetRandomValue(-15, 15) };
-        colors[i] = (Color){ GetRandomValue(20, 255), GetRandomValue(10, 55), 30, 255 };
-    }
-    
-    SetCameraMode(camera, CAMERA_FIRST_PERSON); // Set a first person camera mode
-
-    SetTargetFPS(60);                           // Set our game to run at 60 frames-per-second
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())                // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        UpdateCamera(&camera);                  // Update camera
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            Begin3dMode(camera);
-
-                DrawPlane((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector2){ 32.0f, 32.0f }, LIGHTGRAY); // Draw ground
-                DrawCube((Vector3){ -16.0f, 2.5f, 0.0f }, 1.0f, 5.0f, 32.0f, BLUE);     // Draw a blue wall
-                DrawCube((Vector3){ 16.0f, 2.5f, 0.0f }, 1.0f, 5.0f, 32.0f, LIME);      // Draw a green wall
-                DrawCube((Vector3){ 0.0f, 2.5f, 16.0f }, 32.0f, 5.0f, 1.0f, GOLD);      // Draw a yellow wall
-            
-                // Draw some cubes around
-                for (int i = 0; i < MAX_COLUMNS; i++)
-                {
-                    DrawCube(positions[i], 2.0f, heights[i], 2.0f, colors[i]);
-                    DrawCubeWires(positions[i], 2.0f, heights[i], 2.0f, MAROON);
-                }
-
-            End3dMode();
-            
-            DrawRectangle( 10, 10, 220, 70, Fade(SKYBLUE, 0.5f));
-            DrawRectangleLines( 10, 10, 220, 70, BLUE);
-
-            DrawText("First person camera default controls:", 20, 20, 10, BLACK);
-            DrawText("- Move with keys: W, A, S, D", 40, 40, 10, DARKGRAY);
-            DrawText("- Mouse move to look around", 40, 60, 10, DARKGRAY);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------   
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 82
docs/examples/src/core/core_3d_camera_free.c

@@ -1,82 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [core] example - Initialize 3d camera free
-*
-*   This example has been created using raylib 1.3 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2015 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d camera free");
-
-    // Define the camera to look into our 3d world
-    Camera camera;
-    camera.position = (Vector3){ 10.0f, 10.0f, 10.0f }; // Camera position
-    camera.target = (Vector3){ 0.0f, 0.0f, 0.0f };      // Camera looking at point
-    camera.up = (Vector3){ 0.0f, 1.0f, 0.0f };          // Camera up vector (rotation towards target)
-    camera.fovy = 45.0f;                                // Camera field-of-view Y
-    
-    Vector3 cubePosition = { 0.0f, 0.0f, 0.0f };
-    
-    SetCameraMode(camera, CAMERA_FREE); // Set a free camera mode
-
-    SetTargetFPS(60);                   // Set our game to run at 60 frames-per-second
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())        // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        UpdateCamera(&camera);          // Update camera
-        
-        if (IsKeyDown('Z')) camera.target = (Vector3){ 0.0f, 0.0f, 0.0f };
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            Begin3dMode(camera);
-
-                DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED);
-                DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON);
-
-                DrawGrid(10, 1.0f);
-
-            End3dMode();
-            
-            DrawRectangle( 10, 10, 320, 133, Fade(SKYBLUE, 0.5f));
-            DrawRectangleLines( 10, 10, 320, 133, BLUE);
-            
-            DrawText("Free camera default controls:", 20, 20, 10, BLACK);
-            DrawText("- Mouse Wheel to Zoom in-out", 40, 40, 10, DARKGRAY);
-            DrawText("- Mouse Wheel Pressed to Pan", 40, 60, 10, DARKGRAY);
-            DrawText("- Alt + Mouse Wheel Pressed to Rotate", 40, 80, 10, DARKGRAY);
-            DrawText("- Alt + Ctrl + Mouse Wheel Pressed for Smooth Zoom", 40, 100, 10, DARKGRAY);
-            DrawText("- Z to zoom to (0, 0, 0)", 40, 120, 10, DARKGRAY);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 72
docs/examples/src/core/core_3d_mode.c

@@ -1,72 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [core] example - Initialize 3d mode
-*
-*   This example has been created using raylib 1.0 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2014 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d mode");
-
-    // Define the camera to look into our 3d world
-    Camera camera;
-    camera.position = (Vector3){ 0.0f, 10.0f, 10.0f };  // Camera position
-    camera.target = (Vector3){ 0.0f, 0.0f, 0.0f };      // Camera looking at point
-    camera.up = (Vector3){ 0.0f, 1.0f, 0.0f };          // Camera up vector (rotation towards target)
-    camera.fovy = 45.0f;                                // Camera field-of-view Y
-
-    Vector3 cubePosition = { 0.0f, 0.0f, 0.0f };
-
-    SetTargetFPS(60);   // Set our game to run at 60 frames-per-second
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        // TODO: Update your variables here
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            Begin3dMode(camera);
-
-                DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED);
-                DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON);
-
-                DrawGrid(10, 1.0f);
-
-            End3dMode();
-
-            DrawText("Welcome to the third dimension!", 10, 40, 20, DARKGRAY);
-
-            DrawFPS(10, 10);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 104
docs/examples/src/core/core_3d_picking.c

@@ -1,104 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [core] example - Picking in 3d mode
-*
-*   This example has been created using raylib 1.3 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2015 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d picking");
-
-    // Define the camera to look into our 3d world
-    Camera camera;
-    camera.position = (Vector3){ 10.0f, 10.0f, 10.0f }; // Camera position
-    camera.target = (Vector3){ 0.0f, 0.0f, 0.0f };      // Camera looking at point
-    camera.up = (Vector3){ 0.0f, 1.0f, 0.0f };          // Camera up vector (rotation towards target)
-    camera.fovy = 45.0f;                                // Camera field-of-view Y
-
-    Vector3 cubePosition = { 0.0f, 1.0f, 0.0f };
-    Vector3 cubeSize = { 2.0f, 2.0f, 2.0f };
-    
-    Ray ray;        // Picking line ray
-    
-    bool collision = false;
-    
-    SetCameraMode(camera, CAMERA_FREE); // Set a free camera mode
-
-    SetTargetFPS(60);                   // Set our game to run at 60 frames-per-second
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())        // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        UpdateCamera(&camera);          // Update camera
-        
-        if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON))
-        {
-            // NOTE: This function is NOT WORKING properly!
-            ray = GetMouseRay(GetMousePosition(), camera);
-            
-            // Check collision between ray and box
-            collision = CheckCollisionRayBox(ray,
-                        (BoundingBox){(Vector3){ cubePosition.x - cubeSize.x/2, cubePosition.y - cubeSize.y/2, cubePosition.z - cubeSize.z/2 },
-                                      (Vector3){ cubePosition.x + cubeSize.x/2, cubePosition.y + cubeSize.y/2, cubePosition.z + cubeSize.z/2 }});
-        }
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            Begin3dMode(camera);
-
-                if (collision) 
-                {
-                    DrawCube(cubePosition, cubeSize.x, cubeSize.y, cubeSize.z, RED);
-                    DrawCubeWires(cubePosition, cubeSize.x, cubeSize.y, cubeSize.z, MAROON);
-
-                    DrawCubeWires(cubePosition, cubeSize.x + 0.2f, cubeSize.y + 0.2f, cubeSize.z + 0.2f, GREEN);
-                }
-                else
-                {
-                    DrawCube(cubePosition, cubeSize.x, cubeSize.y, cubeSize.z, GRAY);
-                    DrawCubeWires(cubePosition, cubeSize.x, cubeSize.y, cubeSize.z, DARKGRAY);
-                }
-                
-                DrawRay(ray, MAROON);
-                
-                DrawGrid(10, 1.0f);
-
-            End3dMode();
-            
-            DrawText("Try selecting the box with mouse!", 240, 10, 20, DARKGRAY);
-            
-            if(collision) DrawText("BOX SELECTED", (screenWidth - MeasureText("BOX SELECTED", 30)) / 2, screenHeight * 0.1f, 30, GREEN);
-
-            DrawFPS(10, 10);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 54
docs/examples/src/core/core_basic_window.c

@@ -1,54 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [core] example - Basic window
-*
-*   Welcome to raylib!
-*
-*   This example has been created using raylib 1.0 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2013-2016 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [core] example - basic window");
-    
-    SetTargetFPS(60);
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        // TODO: Update your variables here
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            DrawText("Congrats! You created your first window!", 190, 200, 20, LIGHTGRAY);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------   
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 94
docs/examples/src/core/core_color_select.c

@@ -1,94 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [core] example - Color selection by mouse (collision detection)
-*
-*   This example has been created using raylib 1.0 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2014 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [core] example - color selection (collision detection)");
-
-    Color colors[21] = { DARKGRAY, MAROON, ORANGE, DARKGREEN, DARKBLUE, DARKPURPLE, DARKBROWN,
-                         GRAY, RED, GOLD, LIME, BLUE, VIOLET, BROWN, LIGHTGRAY, PINK, YELLOW,
-                         GREEN, SKYBLUE, PURPLE, BEIGE };
-
-    Rectangle colorsRecs[21];             // Rectangles array
-
-    // Fills colorsRecs data (for every rectangle)
-    for (int i = 0; i < 21; i++)
-    {
-        colorsRecs[i].x = 20 + 100*(i%7) + 10*(i%7);
-        colorsRecs[i].y = 60 + 100*(i/7) + 10*(i/7);
-        colorsRecs[i].width = 100;
-        colorsRecs[i].height = 100;
-    }
-
-    bool selected[21] = { false };  // Selected rectangles indicator
-
-    Vector2 mousePoint;
-
-    SetTargetFPS(60);               // Set our game to run at 60 frames-per-second
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        mousePoint = GetMousePosition();
-
-        for (int i = 0; i < 21; i++)    // Iterate along all the rectangles
-        {
-            if (CheckCollisionPointRec(mousePoint, colorsRecs[i]))
-            {
-                colors[i].a = 120;
-
-                if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) selected[i] = !selected[i];
-            }
-            else colors[i].a = 255;
-        }
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            for (int i = 0; i < 21; i++)    // Draw all rectangles
-            {
-                DrawRectangleRec(colorsRecs[i], colors[i]);
-
-                // Draw four rectangles around selected rectangle
-                if (selected[i])
-                {
-                    DrawRectangle(colorsRecs[i].x, colorsRecs[i].y, 100, 10, RAYWHITE);        // Square top rectangle
-                    DrawRectangle(colorsRecs[i].x, colorsRecs[i].y, 10, 100, RAYWHITE);        // Square left rectangle
-                    DrawRectangle(colorsRecs[i].x + 90, colorsRecs[i].y, 10, 100, RAYWHITE);   // Square right rectangle
-                    DrawRectangle(colorsRecs[i].x, colorsRecs[i].y + 90, 100, 10, RAYWHITE);   // Square bottom rectangle
-                }
-            }
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    CloseWindow();                // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 76
docs/examples/src/core/core_drop_files.c

@@ -1,76 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [core] example - Windows drop files
-*
-*   This example only works on platforms that support drag & drop (Windows, Linux, OSX, Html5?)
-*
-*   This example has been created using raylib 1.3 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2015 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [core] example - drop files");
-    
-    int count = 0;
-    char **droppedFiles = { 0 };
-    
-    SetTargetFPS(60);
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        if (IsFileDropped())
-        {
-            droppedFiles = GetDroppedFiles(&count);
-        }
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            if (count == 0) DrawText("Drop your files to this window!", 100, 40, 20, DARKGRAY);
-            else
-            {
-                DrawText("Dropped files:", 100, 40, 20, DARKGRAY);
-                
-                for (int i = 0; i < count; i++)
-                {
-                    if (i%2 == 0) DrawRectangle(0, 85 + 40*i, screenWidth, 40, Fade(LIGHTGRAY, 0.5f));
-                    else DrawRectangle(0, 85 + 40*i, screenWidth, 40, Fade(LIGHTGRAY, 0.3f));
-                    
-                    DrawText(droppedFiles[i], 120, 100 + 40*i, 10, GRAY);
-                }
-                
-                DrawText("Drop new files...", 100, 110 + 40*count, 20, DARKGRAY);
-            }
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    ClearDroppedFiles();    // Clear internal buffers
-    
-    CloseWindow();          // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 115
docs/examples/src/core/core_gestures_detection.c

@@ -1,115 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [core] example - Gestures Detection
-*
-*   This example has been created using raylib 1.4 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2016 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-#include <string.h>
-
-#define MAX_GESTURE_STRINGS   20
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-    
-    InitWindow(screenWidth, screenHeight, "raylib [core] example - gestures detection");
-    
-    Vector2 touchPosition = { 0, 0 };
-    Rectangle touchArea = { 220, 10, screenWidth - 230, screenHeight - 20 };
-    
-    int gesturesCount = 0;
-    char gestureStrings[MAX_GESTURE_STRINGS][32];
-
-    int currentGesture = GESTURE_NONE;
-    int lastGesture = GESTURE_NONE;
-    
-    //SetGesturesEnabled(0b0000000000001001);   // Enable only some gestures to be detected
-    
-    SetTargetFPS(60);
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        lastGesture = currentGesture;
-        currentGesture = GetGestureDetected();
-        touchPosition = GetTouchPosition(0);
-
-        if (CheckCollisionPointRec(touchPosition, touchArea) && (currentGesture != GESTURE_NONE))
-        {
-            if (currentGesture != lastGesture)
-            {
-                // Store gesture string
-                switch (currentGesture)
-                {
-                    case GESTURE_TAP: strcpy(gestureStrings[gesturesCount], "GESTURE TAP"); break;
-                    case GESTURE_DOUBLETAP: strcpy(gestureStrings[gesturesCount], "GESTURE DOUBLETAP"); break;
-                    case GESTURE_HOLD: strcpy(gestureStrings[gesturesCount], "GESTURE HOLD"); break;
-                    case GESTURE_DRAG: strcpy(gestureStrings[gesturesCount], "GESTURE DRAG"); break;
-                    case GESTURE_SWIPE_RIGHT: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE RIGHT"); break;
-                    case GESTURE_SWIPE_LEFT: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE LEFT"); break;
-                    case GESTURE_SWIPE_UP: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE UP"); break;
-                    case GESTURE_SWIPE_DOWN: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE DOWN"); break;
-                    case GESTURE_PINCH_IN: strcpy(gestureStrings[gesturesCount], "GESTURE PINCH IN"); break;
-                    case GESTURE_PINCH_OUT: strcpy(gestureStrings[gesturesCount], "GESTURE PINCH OUT"); break;
-                    default: break;
-                }
-                
-                gesturesCount++;
-                
-                // Reset gestures strings
-                if (gesturesCount >= MAX_GESTURE_STRINGS)
-                {
-                    for (int i = 0; i < MAX_GESTURE_STRINGS; i++) strcpy(gestureStrings[i], "\0");
-                    
-                    gesturesCount = 0;
-                }
-            }
-        }
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-            
-            DrawRectangleRec(touchArea, GRAY);
-            DrawRectangle(225, 15, screenWidth - 240, screenHeight - 30, RAYWHITE);
-            
-            DrawText("GESTURES TEST AREA", screenWidth - 270, screenHeight - 40, 20, Fade(GRAY, 0.5f));
-            
-            for (int i = 0; i < gesturesCount; i++)
-            {
-                if (i%2 == 0) DrawRectangle(10, 30 + 20*i, 200, 20, Fade(LIGHTGRAY, 0.5f));
-                else DrawRectangle(10, 30 + 20*i, 200, 20, Fade(LIGHTGRAY, 0.3f));
-                
-                if (i < gesturesCount - 1) DrawText(gestureStrings[i], 35, 36 + 20*i, 10, DARKGRAY);
-                else DrawText(gestureStrings[i], 35, 36 + 20*i, 10, MAROON);
-            }
-            
-            DrawRectangleLines(10, 29, 200, screenHeight - 50, GRAY);
-            DrawText("DETECTED GESTURES", 50, 15, 10, GRAY);
-            
-            if (currentGesture != GESTURE_NONE) DrawCircleV(touchPosition, 30, MAROON);
-            
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------   
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-}

+ 0 - 194
docs/examples/src/core/core_input_gamepad.c

@@ -1,194 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [core] example - Gamepad input
-*
-*   NOTE: This example requires a Gamepad connected to the system
-*         raylib is configured to work with the following gamepads: 
-*                - Xbox 360 Controller (Xbox 360, Xbox One)
-*                - PLAYSTATION(R)3 Controller 
-*         Check raylib.h for buttons configuration
-*
-*   This example has been created using raylib 1.6 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2013-2016 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-// NOTE: Gamepad name ID depends on drivers and OS
-#if defined(PLATFORM_RPI)
-    #define XBOX360_NAME_ID     "Microsoft X-Box 360 pad"
-    #define PS3_NAME_ID         "PLAYSTATION(R)3 Controller"
-#else
-    #define XBOX360_NAME_ID     "Xbox 360 Controller"
-    #define PS3_NAME_ID         "PLAYSTATION(R)3 Controller"
-#endif
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    SetConfigFlags(FLAG_MSAA_4X_HINT);  // Set MSAA 4X hint before windows creation  
-    
-    InitWindow(screenWidth, screenHeight, "raylib [core] example - gamepad input");
-    
-    Texture2D texPs3Pad = LoadTexture("resources/ps3.png");
-    Texture2D texXboxPad = LoadTexture("resources/xbox.png");
-
-    SetTargetFPS(60);
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        // ...
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-            
-            if (IsGamepadAvailable(GAMEPAD_PLAYER1))
-            {
-                DrawText(FormatText("GP1: %s", GetGamepadName(GAMEPAD_PLAYER1)), 10, 10, 10, BLACK);
-
-                if (IsGamepadName(GAMEPAD_PLAYER1, XBOX360_NAME_ID))
-                {
-                    DrawTexture(texXboxPad, 0, 0, DARKGRAY);
-                    
-                    // Draw buttons: xbox home
-                    if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_HOME)) DrawCircle(394, 89, 19, RED);
-
-                    // Draw buttons: basic
-                    if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_START)) DrawCircle(436, 150, 9, RED);
-                    if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_SELECT)) DrawCircle(352, 150, 9, RED);
-                    if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_X)) DrawCircle(501, 151, 15, BLUE);
-                    if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_A)) DrawCircle(536, 187, 15, LIME);
-                    if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_B)) DrawCircle(572, 151, 15, MAROON);
-                    if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_Y)) DrawCircle(536, 115, 15, GOLD);
-                    
-                    // Draw buttons: d-pad
-                    DrawRectangle(317, 202, 19, 71, BLACK);
-                    DrawRectangle(293, 228, 69, 19, BLACK);
-                    if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_UP)) DrawRectangle(317, 202, 19, 26, RED);
-                    if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_DOWN)) DrawRectangle(317, 202 + 45, 19, 26, RED);
-                    if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_LEFT)) DrawRectangle(292, 228, 25, 19, RED);
-                    if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_RIGHT)) DrawRectangle(292 + 44, 228, 26, 19, RED);
-                    
-                    // Draw buttons: left-right back
-                    if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_LB)) DrawCircle(259, 61, 20, RED);
-                    if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_RB)) DrawCircle(536, 61, 20, RED);
-
-                    // Draw axis: left joystick
-                    DrawCircle(259, 152, 39, BLACK);
-                    DrawCircle(259, 152, 34, LIGHTGRAY);
-                    DrawCircle(259 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_LEFT_X)*20), 
-                               152 - (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_LEFT_Y)*20), 25, BLACK);
-                    
-                    // Draw axis: right joystick
-                    DrawCircle(461, 237, 38, BLACK);
-                    DrawCircle(461, 237, 33, LIGHTGRAY);
-                    DrawCircle(461 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_RIGHT_X)*20), 
-                               237 - (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_RIGHT_Y)*20), 25, BLACK);
-
-                    // Draw axis: left-right triggers
-                    DrawRectangle(170, 30, 15, 70, GRAY);
-                    DrawRectangle(604, 30, 15, 70, GRAY);              
-                    DrawRectangle(170, 30, 15, (((1.0f + GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_LT))/2.0f)*70), RED);
-                    DrawRectangle(604, 30, 15, (((1.0f + GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_RT))/2.0f)*70), RED);
-                    
-                    //DrawText(FormatText("Xbox axis LT: %02.02f", GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_LT)), 10, 40, 10, BLACK);
-                    //DrawText(FormatText("Xbox axis RT: %02.02f", GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_RT)), 10, 60, 10, BLACK);
-                }
-                else if (IsGamepadName(GAMEPAD_PLAYER1, PS3_NAME_ID))
-                {
-                    DrawTexture(texPs3Pad, 0, 0, DARKGRAY);
-
-                    // Draw buttons: ps
-                    if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_PS)) DrawCircle(396, 222, 13, RED);
-                    
-                    // Draw buttons: basic
-                    if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_SELECT)) DrawRectangle(328, 170, 32, 13, RED);
-                    if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_START)) DrawTriangle((Vector2){ 436, 168 }, (Vector2){ 436, 185 }, (Vector2){ 464, 177 }, RED);
-                    if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_TRIANGLE)) DrawCircle(557, 144, 13, LIME);
-                    if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_CIRCLE)) DrawCircle(586, 173, 13, RED);
-                    if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_CROSS)) DrawCircle(557, 203, 13, VIOLET);
-                    if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_SQUARE)) DrawCircle(527, 173, 13, PINK);
-
-                    // Draw buttons: d-pad
-                    DrawRectangle(225, 132, 24, 84, BLACK);
-                    DrawRectangle(195, 161, 84, 25, BLACK);
-                    if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_UP)) DrawRectangle(225, 132, 24, 29, RED);
-                    if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_DOWN)) DrawRectangle(225, 132 + 54, 24, 30, RED);
-                    if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_LEFT)) DrawRectangle(195, 161, 30, 25, RED);
-                    if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_RIGHT)) DrawRectangle(195 + 54, 161, 30, 25, RED);
-                    
-                    // Draw buttons: left-right back buttons
-                    if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_L1)) DrawCircle(239, 82, 20, RED);
-                    if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_R1)) DrawCircle(557, 82, 20, RED);
-
-                    // Draw axis: left joystick
-                    DrawCircle(319, 255, 35, BLACK);
-                    DrawCircle(319, 255, 31, LIGHTGRAY);
-                    DrawCircle(319 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_LEFT_X)*20), 
-                               255 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_LEFT_Y)*20), 25, BLACK);
-                    
-                    // Draw axis: right joystick
-                    DrawCircle(475, 255, 35, BLACK);
-                    DrawCircle(475, 255, 31, LIGHTGRAY);
-                    DrawCircle(475 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_RIGHT_X)*20), 
-                               255 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_RIGHT_Y)*20), 25, BLACK);
-
-                    // Draw axis: left-right triggers
-                    DrawRectangle(169, 48, 15, 70, GRAY);
-                    DrawRectangle(611, 48, 15, 70, GRAY);              
-                    DrawRectangle(169, 48, 15, (((1.0f - GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_L2))/2.0f)*70), RED);
-                    DrawRectangle(611, 48, 15, (((1.0f - GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_R2))/2.0f)*70), RED);
-                }
-                else
-                {
-                    DrawText("- GENERIC GAMEPAD -", 280, 180, 20, GRAY);
-                    
-                    // TODO: Draw generic gamepad
-                }
-                
-                DrawText(FormatText("DETECTED AXIS [%i]:", GetGamepadAxisCount(GAMEPAD_PLAYER1)), 10, 50, 10, MAROON); 
-                
-                for (int i = 0; i < GetGamepadAxisCount(GAMEPAD_PLAYER1); i++)
-                {
-                    DrawText(FormatText("AXIS %i: %.02f", i, GetGamepadAxisMovement(GAMEPAD_PLAYER1, i)), 20, 70 + 20*i, 10, DARKGRAY);
-                }
-                
-                if (GetGamepadButtonPressed() != -1) DrawText(FormatText("DETECTED BUTTON: %i", GetGamepadButtonPressed()), 10, 430, 10, RED);
-                else DrawText("DETECTED BUTTON: NONE", 10, 430, 10, GRAY);
-            }
-            else
-            {
-                DrawText("GP1: NOT DETECTED", 10, 10, 10, GRAY);
-                
-                DrawTexture(texXboxPad, 0, 0, LIGHTGRAY);
-            }
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    UnloadTexture(texPs3Pad);
-    UnloadTexture(texXboxPad);
-    
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 59
docs/examples/src/core/core_input_keys.c

@@ -1,59 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [core] example - Keyboard input
-*
-*   This example has been created using raylib 1.0 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2014 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [core] example - keyboard input");
-
-    Vector2 ballPosition = { (float)screenWidth/2, (float)screenHeight/2 };
-
-    SetTargetFPS(60);       // Set target frames-per-second
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        if (IsKeyDown(KEY_RIGHT)) ballPosition.x += 0.8f;
-        if (IsKeyDown(KEY_LEFT)) ballPosition.x -= 0.8f;
-        if (IsKeyDown(KEY_UP)) ballPosition.y -= 0.8f;
-        if (IsKeyDown(KEY_DOWN)) ballPosition.y += 0.8f;
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            DrawText("move the ball with arrow keys", 10, 10, 20, DARKGRAY);
-
-            DrawCircleV(ballPosition, 50, MAROON);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 61
docs/examples/src/core/core_input_mouse.c

@@ -1,61 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [core] example - Mouse input
-*
-*   This example has been created using raylib 1.0 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2014 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [core] example - mouse input");
-
-    Vector2 ballPosition = { -100.0f, -100.0f };
-    Color ballColor = DARKBLUE;
-    
-    SetTargetFPS(60);
-    //---------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        ballPosition = GetMousePosition();
-        
-        if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) ballColor = MAROON;
-        else if (IsMouseButtonPressed(MOUSE_MIDDLE_BUTTON)) ballColor = LIME;
-        else if (IsMouseButtonPressed(MOUSE_RIGHT_BUTTON)) ballColor = DARKBLUE;
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            DrawCircleV(ballPosition, 40, ballColor);
-
-            DrawText("move ball with mouse and click mouse button to change color", 10, 10, 20, DARKGRAY);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 58
docs/examples/src/core/core_mouse_wheel.c

@@ -1,58 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [core] examples - Mouse wheel
-*
-*   This test has been created using raylib 1.1 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2014 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [core] example - mouse wheel");
-
-    int boxPositionY = screenHeight/2 - 40;
-    int scrollSpeed = 4;            // Scrolling speed in pixels
-
-    SetTargetFPS(60);
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        boxPositionY -= (GetMouseWheelMove()*scrollSpeed);
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            DrawRectangle(screenWidth/2 - 40, boxPositionY, 80, 80, MAROON);
-
-            DrawText("Use mouse wheel to move the cube up and down!", 10, 10, 20, GRAY);
-            DrawText(FormatText("Box position Y: %03i", boxPositionY), 10, 40, 20, LIGHTGRAY);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 65
docs/examples/src/core/core_random_values.c

@@ -1,65 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [core] example - Generate random values
-*
-*   This example has been created using raylib 1.1 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2014 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [core] example - generate random values");
-
-    int framesCounter = 0;  // Variable used to count frames
-
-    int randValue = GetRandomValue(-8, 5);   // Get a random integer number between -8 and 5 (both included)
-
-    SetTargetFPS(60);       // Set our game to run at 60 frames-per-second
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        framesCounter++;
-
-        // Every two seconds (120 frames) a new random value is generated
-        if (((framesCounter/120)%2) == 1)
-        {
-            randValue = GetRandomValue(-8, 5);
-            framesCounter = 0;
-        }
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            DrawText("Every 2 seconds a new random value is generated:", 130, 100, 20, MAROON);
-
-            DrawText(FormatText("%i", randValue), 360, 180, 80, LIGHTGRAY);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 85
docs/examples/src/core/core_storage_values.c

@@ -1,85 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [core] example - Storage save/load values
-*
-*   This example has been created using raylib 1.4 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2015 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-// NOTE: Storage positions must start with 0, directly related to file memory layout
-typedef enum { STORAGE_SCORE = 0, STORAGE_HISCORE } StorageData;
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [core] example - storage save/load values");
-    
-    int score = 0;
-    int hiscore = 0;
-    
-    int framesCounter = 0;
-    
-    SetTargetFPS(60);
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        if (IsKeyPressed(KEY_R))
-        {
-            score = GetRandomValue(1000, 2000);
-            hiscore = GetRandomValue(2000, 4000);
-        }
-        
-        if (IsKeyPressed(KEY_ENTER))
-        {
-            StorageSaveValue(STORAGE_SCORE, score);
-            StorageSaveValue(STORAGE_HISCORE, hiscore);
-        }
-        else if (IsKeyPressed(KEY_SPACE))
-        {
-            // NOTE: If requested position could not be found, value 0 is returned
-            score = StorageLoadValue(STORAGE_SCORE);
-            hiscore = StorageLoadValue(STORAGE_HISCORE);
-        }
-        
-        framesCounter++;
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            DrawText(FormatText("SCORE: %i", score), 280, 130, 40, MAROON);
-            DrawText(FormatText("HI-SCORE: %i", hiscore), 210, 200, 50, BLACK);
-            
-            DrawText(FormatText("frames: %i", framesCounter), 10, 10, 20, LIME);
-            
-            DrawText("Press R to generate random numbers", 220, 40, 20, LIGHTGRAY);
-            DrawText("Press ENTER to SAVE values", 250, 310, 20, LIGHTGRAY);
-            DrawText("Press SPACE to LOAD values", 252, 350, 20, LIGHTGRAY);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------   
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 84
docs/examples/src/core/core_vr_simulator.c

@@ -1,84 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [core] example - VR Simulator (Oculus Rift CV1 parameters)
-*
-*   This example has been created using raylib 1.7 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2017 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 1080;
-    int screenHeight = 600;
-    
-    // NOTE: screenWidth/screenHeight should match VR device aspect ratio
-    
-    InitWindow(screenWidth, screenHeight, "raylib [core] example - vr simulator");
-
-    InitVrSimulator(HMD_OCULUS_RIFT_CV1);               // Init VR simulator (Oculus Rift CV1 parameters)
-    
-    // Define the camera to look into our 3d world
-    Camera camera;
-    camera.position = (Vector3){ 5.0f, 2.0f, 5.0f };    // Camera position
-    camera.target = (Vector3){ 0.0f, 2.0f, 0.0f };      // Camera looking at point
-    camera.up = (Vector3){ 0.0f, 1.0f, 0.0f };          // Camera up vector (rotation towards target)
-    camera.fovy = 60.0f;                                // Camera field-of-view Y
-    
-    Vector3 cubePosition = { 0.0f, 0.0f, 0.0f };
-    
-    SetCameraMode(camera, CAMERA_FIRST_PERSON);         // Set first person camera mode
-    
-    SetTargetFPS(90);                   // Set our game to run at 90 frames-per-second
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())        // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        UpdateCamera(&camera);          // Update camera (simulator mode)
-
-        if (IsKeyPressed(KEY_SPACE)) ToggleVrMode();    // Toggle VR mode
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-            
-            BeginVrDrawing();
-
-                Begin3dMode(camera);
-
-                    DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED);
-                    DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON);
-
-                    DrawGrid(40, 1.0f);
-
-                End3dMode();
-            
-            EndVrDrawing();
-
-            DrawFPS(10, 10);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    CloseVrSimulator();     // Close VR simulator
-    
-    CloseWindow();          // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 74
docs/examples/src/core/core_world_screen.c

@@ -1,74 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [core] example - World to screen
-*
-*   This example has been created using raylib 1.3 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2015 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d camera free");
-
-    // Define the camera to look into our 3d world
-    Camera camera = {{ 10.0f, 10.0f, 10.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f };
-
-    Vector3 cubePosition = { 0.0f, 0.0f, 0.0f };
-    
-    Vector2 cubeScreenPosition;
-    
-    SetCameraMode(camera, CAMERA_FREE); // Set a free camera mode
-
-    SetTargetFPS(60);                   // Set our game to run at 60 frames-per-second
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())        // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        UpdateCamera(&camera);          // Update camera
-        
-        // Calculate cube screen space position (with a little offset to be in top)
-        cubeScreenPosition = GetWorldToScreen((Vector3){cubePosition.x, cubePosition.y + 2.5f, cubePosition.z}, camera);
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            Begin3dMode(camera);
-
-                DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED);
-                DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON);
-
-                DrawGrid(10, 1.0f);
-
-            End3dMode();
-            
-            DrawText("Enemy: 100 / 100", cubeScreenPosition.x - MeasureText("Enemy: 100 / 100", 20) / 2, cubeScreenPosition.y, 20, BLACK);
-            DrawText("Text is always on top of the cube", (screenWidth - MeasureText("Text is always on top of the cube", 20)) / 2, 25, 20, GRAY);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 121
docs/examples/src/models/models_box_collisions.c

@@ -1,121 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [models] example - Detect basic 3d collisions (box vs sphere vs box)
-*
-*   This example has been created using raylib 1.3 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2015 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [models] example - box collisions");
-
-    // Define the camera to look into our 3d world
-    Camera camera = {{ 0.0f, 10.0f, 10.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f };
-    
-    Vector3 playerPosition = { 0.0f, 1.0f, 2.0f };
-    Vector3 playerSize = { 1.0f, 2.0f, 1.0f };
-    Color playerColor = GREEN;
-    
-    Vector3 enemyBoxPos = { -4.0f, 1.0f, 0.0f };
-    Vector3 enemyBoxSize = { 2.0f, 2.0f, 2.0f };
-    
-    Vector3 enemySpherePos = { 4.0f, 0.0f, 0.0f };
-    float enemySphereSize = 1.5f;
-    
-    bool collision = false;
-
-    SetTargetFPS(60);   // Set our game to run at 60 frames-per-second
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        
-        // Move player
-        if (IsKeyDown(KEY_RIGHT)) playerPosition.x += 0.2f;
-        else if (IsKeyDown(KEY_LEFT)) playerPosition.x -= 0.2f;
-        else if (IsKeyDown(KEY_DOWN)) playerPosition.z += 0.2f;
-        else if (IsKeyDown(KEY_UP)) playerPosition.z -= 0.2f;
-        
-        collision = false;
-        
-        // Check collisions player vs enemy-box
-        if (CheckCollisionBoxes(
-            (BoundingBox){(Vector3){ playerPosition.x - playerSize.x/2, 
-                                     playerPosition.y - playerSize.y/2, 
-                                     playerPosition.z - playerSize.z/2 }, 
-                          (Vector3){ playerPosition.x + playerSize.x/2,
-                                     playerPosition.y + playerSize.y/2, 
-                                     playerPosition.z + playerSize.z/2 }},
-            (BoundingBox){(Vector3){ enemyBoxPos.x - enemyBoxSize.x/2, 
-                                     enemyBoxPos.y - enemyBoxSize.y/2, 
-                                     enemyBoxPos.z - enemyBoxSize.z/2 }, 
-                          (Vector3){ enemyBoxPos.x + enemyBoxSize.x/2,
-                                     enemyBoxPos.y + enemyBoxSize.y/2, 
-                                     enemyBoxPos.z + enemyBoxSize.z/2 }})) collision = true;
-        
-        // Check collisions player vs enemy-sphere
-        if (CheckCollisionBoxSphere(
-            (BoundingBox){(Vector3){ playerPosition.x - playerSize.x/2, 
-                                     playerPosition.y - playerSize.y/2, 
-                                     playerPosition.z - playerSize.z/2 }, 
-                          (Vector3){ playerPosition.x + playerSize.x/2,
-                                     playerPosition.y + playerSize.y/2, 
-                                     playerPosition.z + playerSize.z/2 }}, 
-            enemySpherePos, enemySphereSize)) collision = true;
-        
-        if (collision) playerColor = RED;
-        else playerColor = GREEN;
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            Begin3dMode(camera);
-
-                // Draw enemy-box
-                DrawCube(enemyBoxPos, enemyBoxSize.x, enemyBoxSize.y, enemyBoxSize.z, GRAY);
-                DrawCubeWires(enemyBoxPos, enemyBoxSize.x, enemyBoxSize.y, enemyBoxSize.z, DARKGRAY);
-                
-                // Draw enemy-sphere
-                DrawSphere(enemySpherePos, enemySphereSize, GRAY);
-                DrawSphereWires(enemySpherePos, enemySphereSize, 16, 16, DARKGRAY);
-                
-                // Draw player
-                DrawCubeV(playerPosition, playerSize, playerColor);
-
-                DrawGrid(10, 1.0f);        // Draw a grid
-
-            End3dMode();
-            
-            DrawText("Move player with cursors to collide", 220, 40, 20, GRAY);
-
-            DrawFPS(10, 10);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 85
docs/examples/src/models/models_cubicmap.c

@@ -1,85 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [models] example - Cubicmap loading and drawing
-*
-*   This example has been created using raylib 1.3 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2015 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [models] example - cubesmap loading and drawing");
-
-    // Define the camera to look into our 3d world
-    Camera camera = {{ 16.0f, 14.0f, 16.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f };
-
-    Image image = LoadImage("resources/cubicmap.png");      // Load cubicmap image (RAM)
-    Texture2D cubicmap = LoadTextureFromImage(image);       // Convert image to texture to display (VRAM)
-    Model map = LoadCubicmap(image);                        // Load cubicmap model (generate model from image)
-    
-    // NOTE: By default each cube is mapped to one part of texture atlas
-    Texture2D texture = LoadTexture("resources/cubicmap_atlas.png");    // Load map texture
-    map.material.texDiffuse = texture;                      // Set map diffuse texture
-    
-    Vector3 mapPosition = { -16.0f, 0.0f, -8.0f };          // Set model position
-
-    UnloadImage(image);     // Unload cubesmap image from RAM, already uploaded to VRAM
-    
-    SetCameraMode(camera, CAMERA_ORBITAL);  // Set an orbital camera mode
-
-    SetTargetFPS(60);                       // Set our game to run at 60 frames-per-second
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())            // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        UpdateCamera(&camera);              // Update camera
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            Begin3dMode(camera);
-
-                DrawModel(map, mapPosition, 1.0f, WHITE);
-
-            End3dMode();
-            
-            DrawTextureEx(cubicmap, (Vector2){ screenWidth - cubicmap.width*4 - 20, 20 }, 0.0f, 4.0f, WHITE);
-            DrawRectangleLines(screenWidth - cubicmap.width*4 - 20, 20, cubicmap.width*4, cubicmap.height*4, GREEN);
-            
-            DrawText("cubicmap image used to", 658, 90, 10, GRAY);
-            DrawText("generate map 3d model", 658, 104, 10, GRAY);
-
-            DrawFPS(10, 10);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    UnloadTexture(cubicmap);    // Unload cubicmap texture
-    UnloadTexture(texture);     // Unload map texture
-    UnloadModel(map);           // Unload map model
-
-    CloseWindow();              // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 75
docs/examples/src/models/models_geometric_shapes.c

@@ -1,75 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [models] example - Draw some basic geometric shapes (cube, sphere, cylinder...)
-*
-*   This example has been created using raylib 1.0 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2014 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [models] example - geometric shapes");
-
-    // Define the camera to look into our 3d world
-    Camera camera = {{ 0.0f, 10.0f, 10.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f };
-
-    SetTargetFPS(60);   // Set our game to run at 60 frames-per-second
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        // TODO: Update your variables here
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            Begin3dMode(camera);
-
-                DrawCube((Vector3){-4.0f, 0.0f, 2.0f}, 2.0f, 5.0f, 2.0f, RED);
-                DrawCubeWires((Vector3){-4.0f, 0.0f, 2.0f}, 2.0f, 5.0f, 2.0f, GOLD);
-                DrawCubeWires((Vector3){-4.0f, 0.0f, -2.0f}, 3.0f, 6.0f, 2.0f, MAROON);
-
-                DrawSphere((Vector3){-1.0f, 0.0f, -2.0f}, 1.0f, GREEN);
-                DrawSphereWires((Vector3){1.0f, 0.0f, 2.0f}, 2.0f, 16, 16, LIME);
-
-                DrawCylinder((Vector3){4.0f, 0.0f, -2.0f}, 1.0f, 2.0f, 3.0f, 4, SKYBLUE);
-                DrawCylinderWires((Vector3){4.0f, 0.0f, -2.0f}, 1.0f, 2.0f, 3.0f, 4, DARKBLUE);
-                DrawCylinderWires((Vector3){4.5f, -1.0f, 2.0f}, 1.0f, 1.0f, 2.0f, 6, BROWN);
-
-                DrawCylinder((Vector3){1.0f, 0.0f, -4.0f}, 0.0f, 1.5f, 3.0f, 8, GOLD);
-                DrawCylinderWires((Vector3){1.0f, 0.0f, -4.0f}, 0.0f, 1.5f, 3.0f, 8, PINK);
-
-                DrawGrid(10, 1.0f);        // Draw a grid
-
-            End3dMode();
-
-            DrawFPS(10, 10);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 80
docs/examples/src/models/models_heightmap.c

@@ -1,80 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [models] example - Heightmap loading and drawing
-*
-*   This example has been created using raylib 1.3 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2015 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [models] example - heightmap loading and drawing");
-
-    // Define our custom camera to look into our 3d world
-    Camera camera = {{ 18.0f, 16.0f, 18.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f };
-
-    Image image = LoadImage("resources/heightmap.png");         // Load heightmap image (RAM)
-    Texture2D texture = LoadTextureFromImage(image);            // Convert image to texture (VRAM)
-    Model map = LoadHeightmap(image, (Vector3){ 16, 8, 16 });   // Load heightmap model with defined size
-    map.material.texDiffuse = texture;                          // Set map diffuse texture
-    Vector3 mapPosition = { -8.0f, 0.0f, -8.0f };               // Set model position (depends on model scaling!)
-
-    UnloadImage(image);                     // Unload heightmap image from RAM, already uploaded to VRAM
-    
-    SetCameraMode(camera, CAMERA_ORBITAL);  // Set an orbital camera mode
-
-    SetTargetFPS(60);                       // Set our game to run at 60 frames-per-second
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())            // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        UpdateCamera(&camera);              // Update camera
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            Begin3dMode(camera);
-
-                // NOTE: Model is scaled to 1/4 of its original size (128x128 units)
-                DrawModel(map, mapPosition, 1.0f, RED);
-
-                DrawGrid(20, 1.0f);
-
-            End3dMode();
-            
-            DrawTexture(texture, screenWidth - texture.width - 20, 20, WHITE);
-            DrawRectangleLines(screenWidth - texture.width - 20, 20, texture.width, texture.height, GREEN);
-
-            DrawFPS(10, 10);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    UnloadTexture(texture);     // Unload texture
-    UnloadModel(map);           // Unload model
-
-    CloseWindow();              // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 195
docs/examples/src/models/models_mesh_picking.c

@@ -1,195 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [models] example - Mesh picking in 3d mode, ground plane, triangle, mesh
-*
-*   This example has been created using raylib 1.7 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2015 Ramon Santamaria (@raysan5)
-*   Example contributed by Joel Davis (@joeld42)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-#include "raymath.h"
-
-#define FLT_MAX     3.40282347E+38F     // Maximum value of a float, defined in <float.h>
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [models] example - mesh picking");
-
-    // Define the camera to look into our 3d world
-    Camera camera;
-    camera.position = (Vector3){ 10.0f, 8.0f, 10.0f };  // Camera position
-    camera.target = (Vector3){ 0.0f, 2.3f, 0.0f };      // Camera looking at point
-    camera.up = (Vector3){ 0.0f, 1.6f, 0.0f };          // Camera up vector (rotation towards target)
-    camera.fovy = 45.0f;                                // Camera field-of-view Y
-
-    Ray ray;        // Picking ray
-    
-    Model tower = LoadModel("resources/tower.obj");             // Load OBJ model
-    Texture2D texture = LoadTexture("resources/tower.png");     // Load model texture
-    tower.material.texDiffuse = texture;                        // Set model diffuse texture
-    
-    Vector3 towerPos = { 0.0f, 0.0f, 0.0f };                    // Set model position
-    BoundingBox towerBBox = CalculateBoundingBox(tower.mesh);    
-    bool hitMeshBBox = false;
-    bool hitTriangle = false;
-
-    // Test triangle
-    Vector3 ta = (Vector3){ -25.0, 0.5, 0.0 };    
-    Vector3 tb = (Vector3){ -4.0, 2.5, 1.0 };
-    Vector3 tc = (Vector3){ -8.0, 6.5, 0.0 };
-
-    Vector3 bary = { 0.0f, 0.0f, 0.0f }; 
-
-    SetCameraMode(camera, CAMERA_FREE); // Set a free camera mode
-
-    SetTargetFPS(60);                   // Set our game to run at 60 frames-per-second
-    //--------------------------------------------------------------------------------------
-    // Main game loop
-    while (!WindowShouldClose())        // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        UpdateCamera(&camera);          // Update camera
-        
-        // Display information about closest hit
-        RayHitInfo nearestHit;
-        char *hitObjectName = "None";
-        nearestHit.distance = FLT_MAX;
-        nearestHit.hit = false;
-        Color cursorColor = WHITE;
-
-        // Get ray and test against ground, triangle, and mesh
-        ray = GetMouseRay(GetMousePosition(), camera);
-        
-        // Check ray collision aginst ground plane
-        RayHitInfo groundHitInfo = GetCollisionRayGround(ray, 0.0f);
-        
-        if ((groundHitInfo.hit) && (groundHitInfo.distance < nearestHit.distance))
-        {
-            nearestHit = groundHitInfo;
-            cursorColor = GREEN;
-            hitObjectName = "Ground";
-        }
-
-        // Check ray collision against test triangle
-        RayHitInfo triHitInfo = GetCollisionRayTriangle(ray, ta, tb, tc);
-        
-        if ((triHitInfo.hit) && (triHitInfo.distance < nearestHit.distance)) 
-        {
-            nearestHit = triHitInfo;
-            cursorColor = PURPLE;
-            hitObjectName = "Triangle";
-
-            bary = VectorBarycenter(nearestHit.hitPosition, ta, tb, tc);
-            hitTriangle = true;
-        } 
-        else hitTriangle = false;
-
-        RayHitInfo meshHitInfo;
-
-        // Check ray collision against bounding box first, before trying the full ray-mesh test
-        if (CheckCollisionRayBox(ray, towerBBox)) 
-        {
-            hitMeshBBox = true;
-            
-            // Check ray collision against mesh
-            meshHitInfo = GetCollisionRayMesh(ray, &tower.mesh);    
-            
-            if ((meshHitInfo.hit) && (meshHitInfo.distance < nearestHit.distance)) 
-            {
-                nearestHit = meshHitInfo;
-                cursorColor = ORANGE;
-                hitObjectName = "Mesh";
-            }
-            
-        } hitMeshBBox = false; 
-        //----------------------------------------------------------------------------------
-        
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            Begin3dMode(camera);
-
-                // Draw the tower
-                DrawModel(tower, towerPos, 1.0, WHITE);
-                
-                // Draw the test triangle
-                DrawLine3D(ta, tb, PURPLE);
-                DrawLine3D(tb, tc, PURPLE);
-                DrawLine3D(tc, ta, PURPLE);
-
-                // Draw the mesh bbox if we hit it
-                if (hitMeshBBox) DrawBoundingBox(towerBBox, LIME);
-
-                // If we hit something, draw the cursor at the hit point
-                if (nearestHit.hit) 
-                {
-                    DrawCube(nearestHit.hitPosition, 0.3, 0.3, 0.3, cursorColor);
-                    DrawCubeWires(nearestHit.hitPosition, 0.3, 0.3, 0.3, RED);
-
-                    Vector3 normalEnd;
-                    normalEnd.x = nearestHit.hitPosition.x + nearestHit.hitNormal.x;
-                    normalEnd.y = nearestHit.hitPosition.y + nearestHit.hitNormal.y;
-                    normalEnd.z = nearestHit.hitPosition.z + nearestHit.hitNormal.z;
-                    
-                    DrawLine3D(nearestHit.hitPosition, normalEnd, RED);
-                }
-
-                DrawRay(ray, MAROON);
-                
-                DrawGrid(100, 1.0f);
-
-            End3dMode();
-            
-            // Draw some debug GUI text
-            DrawText(FormatText("Hit Object: %s", hitObjectName), 10, 50, 10, BLACK);
-
-            if (nearestHit.hit) 
-            {
-                int ypos = 70;
-
-                DrawText(FormatText("Distance: %3.2f", nearestHit.distance), 10, ypos, 10, BLACK);
-                
-                DrawText(FormatText("Hit Pos: %3.2f %3.2f %3.2f", 
-                                    nearestHit.hitPosition.x, 
-                                    nearestHit.hitPosition.y, 
-                                    nearestHit.hitPosition.z), 10, ypos + 15, 10, BLACK);
-                                    
-                DrawText(FormatText("Hit Norm: %3.2f %3.2f %3.2f", 
-                                    nearestHit.hitNormal.x, 
-                                    nearestHit.hitNormal.y, 
-                                    nearestHit.hitNormal.z), 10, ypos + 30, 10, BLACK);
-
-                if (hitTriangle) DrawText(FormatText("Barycenter: %3.2f %3.2f %3.2f",  bary.x, bary.y, bary.z), 10, ypos + 45, 10, BLACK);
-            }
-
-            DrawText("Use Mouse to Move Camera", 10, 430, 10, GRAY);
-
-            DrawFPS(10, 10);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    UnloadModel(tower);         // Unload model
-    UnloadTexture(texture);     // Unload texture
-    
-    CloseWindow();              // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 75
docs/examples/src/models/models_obj_loading.c

@@ -1,75 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [models] example - Load and draw a 3d model (OBJ)
-*
-*   This example has been created using raylib 1.3 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2014 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [models] example - obj model loading");
-
-    // Define the camera to look into our 3d world
-    Camera camera = {{ 3.0f, 3.0f, 3.0f }, { 0.0f, 1.5f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f };
-
-    Model dwarf = LoadModel("resources/model/dwarf.obj");                   // Load OBJ model
-    Texture2D texture = LoadTexture("resources/model/dwarf_diffuse.png");   // Load model texture
-    dwarf.material.texDiffuse = texture;                                    // Set dwarf model diffuse texture
-    Vector3 position = { 0.0f, 0.0f, 0.0f };                                // Set model position
-
-    SetTargetFPS(60);   // Set our game to run at 60 frames-per-second
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        //...
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            Begin3dMode(camera);
-
-                DrawModel(dwarf, position, 2.0f, WHITE);   // Draw 3d model with texture
-
-                DrawGrid(10, 1.0f);         // Draw a grid
-
-                DrawGizmo(position);        // Draw gizmo
-
-            End3dMode();
-            
-            DrawText("(c) Dwarf 3D model by David Moreno", screenWidth - 200, screenHeight - 20, 10, GRAY);
-
-            DrawFPS(10, 10);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    UnloadTexture(texture);     // Unload texture
-    UnloadModel(dwarf);         // Unload model
-
-    CloseWindow();              // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 128
docs/examples/src/physac/physics_demo.c

@@ -1,128 +0,0 @@
-/*******************************************************************************************
-*
-*   Physac - Physics demo
-*
-*   NOTE 1: Physac requires multi-threading, when InitPhysics() a second thread is created to manage physics calculations.
-*   NOTE 2: Physac requires static C library linkage to avoid dependency on MinGW DLL (-static -lpthread)
-*
-*   Use the following line to compile:
-*
-*   gcc -o $(NAME_PART).exe $(FILE_NAME) -s $(RAYLIB_DIR)\raylib\raylib_icon -static -lraylib -lpthread 
-*   -lglfw3 -lopengl32 -lgdi32 -lopenal32 -lwinmm -std=c99 -Wl,--subsystem,windows -Wl,-allow-multiple-definition
-*   
-*   Copyright (c) 2017 Victor Fisac
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-#define PHYSAC_IMPLEMENTATION
-#include "physac.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    SetConfigFlags(FLAG_MSAA_4X_HINT);
-    InitWindow(screenWidth, screenHeight, "Physac [raylib] - Physics demo");
-    SetTargetFPS(60);
-
-    // Physac logo drawing position
-    int logoX = screenWidth - MeasureText("Physac", 30) - 10;
-    int logoY = 15;
-
-    // Initialize physics and default physics bodies
-    InitPhysics();
-
-    // Create floor rectangle physics body
-    PhysicsBody floor = CreatePhysicsBodyRectangle((Vector2){ screenWidth/2, screenHeight }, 500, 100, 10);
-    floor->enabled = false; // Disable body state to convert it to static (no dynamics, but collisions)
-
-    // Create obstacle circle physics body
-    PhysicsBody circle = CreatePhysicsBodyCircle((Vector2){ screenWidth/2, screenHeight/2 }, 45, 10);
-    circle->enabled = false; // Disable body state to convert it to static (no dynamics, but collisions)
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        if (IsKeyPressed('R'))    // Reset physics input
-        {
-            ResetPhysics();
-
-            floor = CreatePhysicsBodyRectangle((Vector2){ screenWidth/2, screenHeight }, 500, 100, 10);
-            floor->enabled = false;
-
-            circle = CreatePhysicsBodyCircle((Vector2){ screenWidth/2, screenHeight/2 }, 45, 10);
-            circle->enabled = false;
-        }
-
-        // Physics body creation inputs
-        if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) CreatePhysicsBodyPolygon(GetMousePosition(), GetRandomValue(20, 80), GetRandomValue(3, 8), 10);
-        else if (IsMouseButtonPressed(MOUSE_RIGHT_BUTTON)) CreatePhysicsBodyCircle(GetMousePosition(), GetRandomValue(10, 45), 10);
-
-        // Destroy falling physics bodies
-        int bodiesCount = GetPhysicsBodiesCount();
-        for (int i = bodiesCount - 1; i >= 0; i--)
-        {
-            PhysicsBody body = GetPhysicsBody(i);
-            if (body != NULL && (body->position.y > screenHeight*2)) DestroyPhysicsBody(body);
-        }
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(BLACK);
-
-            DrawFPS(screenWidth - 90, screenHeight - 30);
-
-            // Draw created physics bodies
-            bodiesCount = GetPhysicsBodiesCount();
-            for (int i = 0; i < bodiesCount; i++)
-            {
-                PhysicsBody body = GetPhysicsBody(i);
-
-                if (body != NULL)
-                {
-                    int vertexCount = GetPhysicsShapeVerticesCount(i);
-                    for (int j = 0; j < vertexCount; j++)
-                    {
-                        // Get physics bodies shape vertices to draw lines
-                        // Note: GetPhysicsShapeVertex() already calculates rotation transformations
-                        Vector2 vertexA = GetPhysicsShapeVertex(body, j);
-
-                        int jj = (((j + 1) < vertexCount) ? (j + 1) : 0);   // Get next vertex or first to close the shape
-                        Vector2 vertexB = GetPhysicsShapeVertex(body, jj);
-
-                        DrawLineV(vertexA, vertexB, GREEN);     // Draw a line between two vertex positions
-                    }
-                }
-            }
-
-            DrawText("Left mouse button to create a polygon", 10, 10, 10, WHITE);
-            DrawText("Right mouse button to create a circle", 10, 25, 10, WHITE);
-            DrawText("Press 'R' to reset example", 10, 40, 10, WHITE);
-
-            DrawText("Physac", logoX, logoY, 30, WHITE);
-            DrawText("Powered by", logoX + 50, logoY - 7, 10, WHITE);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------   
-    ClosePhysics();       // Uninitialize physics
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}
-

+ 0 - 143
docs/examples/src/physac/physics_friction.c

@@ -1,143 +0,0 @@
-/*******************************************************************************************
-*
-*   Physac - Physics friction
-*
-*   NOTE 1: Physac requires multi-threading, when InitPhysics() a second thread is created to manage physics calculations.
-*   NOTE 2: Physac requires static C library linkage to avoid dependency on MinGW DLL (-static -lpthread)
-*
-*   Use the following line to compile:
-*
-*   gcc -o $(NAME_PART).exe $(FILE_NAME) -s $(RAYLIB_DIR)\raylib\raylib_icon -static -lraylib -lpthread 
-*   -lglfw3 -lopengl32 -lgdi32 -lopenal32 -lwinmm -std=c99 -Wl,--subsystem,windows -Wl,-allow-multiple-definition
-*   
-*   Copyright (c) 2017 Victor Fisac
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-#define PHYSAC_IMPLEMENTATION
-#include "physac.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    SetConfigFlags(FLAG_MSAA_4X_HINT);
-    InitWindow(screenWidth, screenHeight, "Physac [raylib] - Physics friction");
-    SetTargetFPS(60);
-
-    // Physac logo drawing position
-    int logoX = screenWidth - MeasureText("Physac", 30) - 10;
-    int logoY = 15;
-
-    // Initialize physics and default physics bodies
-    InitPhysics();
-
-    // Create floor rectangle physics body
-    PhysicsBody floor = CreatePhysicsBodyRectangle((Vector2){ screenWidth/2, screenHeight }, screenWidth, 100, 10);
-    floor->enabled = false; // Disable body state to convert it to static (no dynamics, but collisions)
-    PhysicsBody wall = CreatePhysicsBodyRectangle((Vector2){ screenWidth/2, screenHeight*0.8f }, 10, 80, 10);
-    wall->enabled = false; // Disable body state to convert it to static (no dynamics, but collisions)
-
-    // Create left ramp physics body
-    PhysicsBody rectLeft = CreatePhysicsBodyRectangle((Vector2){ 25, screenHeight - 5 }, 250, 250, 10);
-    rectLeft->enabled = false; // Disable body state to convert it to static (no dynamics, but collisions)
-    SetPhysicsBodyRotation(rectLeft, 30*DEG2RAD);
-
-    // Create right ramp  physics body
-    PhysicsBody rectRight = CreatePhysicsBodyRectangle((Vector2){ screenWidth - 25, screenHeight - 5 }, 250, 250, 10);
-    rectRight->enabled = false; // Disable body state to convert it to static (no dynamics, but collisions)
-    SetPhysicsBodyRotation(rectRight, 330*DEG2RAD);
-
-    // Create dynamic physics bodies
-    PhysicsBody bodyA = CreatePhysicsBodyRectangle((Vector2){ 35, screenHeight*0.6f }, 40, 40, 10);
-    bodyA->staticFriction = 0.1f;
-    bodyA->dynamicFriction = 0.1f;
-    SetPhysicsBodyRotation(bodyA, 30*DEG2RAD);
-
-    PhysicsBody bodyB = CreatePhysicsBodyRectangle((Vector2){ screenWidth - 35, screenHeight*0.6f }, 40, 40, 10);
-    bodyB->staticFriction = 1;
-    bodyB->dynamicFriction = 1;
-    SetPhysicsBodyRotation(bodyB, 330*DEG2RAD);
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        if (IsKeyPressed('R'))    // Reset physics input
-        {
-            // Reset dynamic physics bodies position, velocity and rotation
-            bodyA->position = (Vector2){ 35, screenHeight*0.6f };
-            bodyA->velocity = (Vector2){ 0, 0 };
-            bodyA->angularVelocity = 0;
-            SetPhysicsBodyRotation(bodyA, 30*DEG2RAD);
-            
-            bodyB->position = (Vector2){ screenWidth - 35, screenHeight*0.6f };
-            bodyB->velocity = (Vector2){ 0, 0 };
-            bodyB->angularVelocity = 0;
-            SetPhysicsBodyRotation(bodyB, 330*DEG2RAD);
-        }
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(BLACK);
-
-            DrawFPS(screenWidth - 90, screenHeight - 30);
-
-            // Draw created physics bodies
-            int bodiesCount = GetPhysicsBodiesCount();
-            for (int i = 0; i < bodiesCount; i++)
-            {
-                PhysicsBody body = GetPhysicsBody(i);
-
-                if (body != NULL)
-                {
-                    int vertexCount = GetPhysicsShapeVerticesCount(i);
-                    for (int j = 0; j < vertexCount; j++)
-                    {
-                        // Get physics bodies shape vertices to draw lines
-                        // Note: GetPhysicsShapeVertex() already calculates rotation transformations
-                        Vector2 vertexA = GetPhysicsShapeVertex(body, j);
-
-                        int jj = (((j + 1) < vertexCount) ? (j + 1) : 0);   // Get next vertex or first to close the shape
-                        Vector2 vertexB = GetPhysicsShapeVertex(body, jj);
-
-                        DrawLineV(vertexA, vertexB, GREEN);     // Draw a line between two vertex positions
-                    }
-                }
-            }
-
-            DrawRectangle(0, screenHeight - 49, screenWidth, 49, BLACK);
-
-            DrawText("Friction amount", (screenWidth - MeasureText("Friction amount", 30))/2, 75, 30, WHITE);
-            DrawText("0.1", bodyA->position.x - MeasureText("0.1", 20)/2, bodyA->position.y - 7, 20, WHITE);
-            DrawText("1", bodyB->position.x - MeasureText("1", 20)/2, bodyB->position.y - 7, 20, WHITE);
-
-            DrawText("Press 'R' to reset example", 10, 10, 10, WHITE);
-
-            DrawText("Physac", logoX, logoY, 30, WHITE);
-            DrawText("Powered by", logoX + 50, logoY - 7, 10, WHITE);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------   
-    ClosePhysics();       // Uninitialize physics
-    
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}
-

+ 0 - 129
docs/examples/src/physac/physics_movement.c

@@ -1,129 +0,0 @@
-/*******************************************************************************************
-*
-*   Physac - Physics movement
-*
-*   NOTE 1: Physac requires multi-threading, when InitPhysics() a second thread is created to manage physics calculations.
-*   NOTE 2: Physac requires static C library linkage to avoid dependency on MinGW DLL (-static -lpthread)
-*
-*   Use the following line to compile:
-*
-*   gcc -o $(NAME_PART).exe $(FILE_NAME) -s $(RAYLIB_DIR)\raylib\raylib_icon -static -lraylib -lpthread 
-*   -lglfw3 -lopengl32 -lgdi32 -lopenal32 -lwinmm -std=c99 -Wl,--subsystem,windows -Wl,-allow-multiple-definition
-*   
-*   Copyright (c) 2017 Victor Fisac
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-#define PHYSAC_IMPLEMENTATION
-#include "physac.h"
-
-#define VELOCITY    0.5f
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    SetConfigFlags(FLAG_MSAA_4X_HINT);
-    InitWindow(screenWidth, screenHeight, "Physac [raylib] - Physics movement");
-    SetTargetFPS(60);
-
-    // Physac logo drawing position
-    int logoX = screenWidth - MeasureText("Physac", 30) - 10;
-    int logoY = 15;
-
-    // Initialize physics and default physics bodies
-    InitPhysics();
-
-    // Create floor and walls rectangle physics body
-    PhysicsBody floor = CreatePhysicsBodyRectangle((Vector2){ screenWidth/2, screenHeight }, screenWidth, 100, 10);
-    PhysicsBody platformLeft = CreatePhysicsBodyRectangle((Vector2){ screenWidth*0.25f, screenHeight*0.6f }, screenWidth*0.25f, 10, 10);
-    PhysicsBody platformRight = CreatePhysicsBodyRectangle((Vector2){ screenWidth*0.75f, screenHeight*0.6f }, screenWidth*0.25f, 10, 10);
-    PhysicsBody wallLeft = CreatePhysicsBodyRectangle((Vector2){ -5, screenHeight/2 }, 10, screenHeight, 10);
-    PhysicsBody wallRight = CreatePhysicsBodyRectangle((Vector2){ screenWidth + 5, screenHeight/2 }, 10, screenHeight, 10);
-
-    // Disable dynamics to floor and walls physics bodies
-    floor->enabled = false;
-    platformLeft->enabled = false;
-    platformRight->enabled = false;
-    wallLeft->enabled = false;
-    wallRight->enabled = false;
-
-    // Create movement physics body
-    PhysicsBody body = CreatePhysicsBodyRectangle((Vector2){ screenWidth/2, screenHeight/2 }, 50, 50, 1);
-    body->freezeOrient = true;  // Constrain body rotation to avoid little collision torque amounts
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        if (IsKeyPressed('R'))    // Reset physics input
-        {
-            // Reset movement physics body position, velocity and rotation
-            body->position = (Vector2){ screenWidth/2, screenHeight/2 };
-            body->velocity = (Vector2){ 0, 0 };
-            SetPhysicsBodyRotation(body, 0);
-        }
-
-        // Horizontal movement input
-        if (IsKeyDown(KEY_RIGHT)) body->velocity.x = VELOCITY;
-        else if (IsKeyDown(KEY_LEFT)) body->velocity.x = -VELOCITY;
-
-        // Vertical movement input checking if player physics body is grounded
-        if (IsKeyDown(KEY_UP) && body->isGrounded) body->velocity.y = -VELOCITY*4;
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(BLACK);
-
-            DrawFPS(screenWidth - 90, screenHeight - 30);
-
-            // Draw created physics bodies
-            int bodiesCount = GetPhysicsBodiesCount();
-            for (int i = 0; i < bodiesCount; i++)
-            {
-                PhysicsBody body = GetPhysicsBody(i);
-
-                int vertexCount = GetPhysicsShapeVerticesCount(i);
-                for (int j = 0; j < vertexCount; j++)
-                {
-                    // Get physics bodies shape vertices to draw lines
-                    // Note: GetPhysicsShapeVertex() already calculates rotation transformations
-                    Vector2 vertexA = GetPhysicsShapeVertex(body, j);
-
-                    int jj = (((j + 1) < vertexCount) ? (j + 1) : 0);   // Get next vertex or first to close the shape
-                    Vector2 vertexB = GetPhysicsShapeVertex(body, jj);
-
-                    DrawLineV(vertexA, vertexB, GREEN);     // Draw a line between two vertex positions
-                }
-            }
-
-            DrawText("Use 'ARROWS' to move player", 10, 10, 10, WHITE);
-            DrawText("Press 'R' to reset example", 10, 30, 10, WHITE);
-
-            DrawText("Physac", logoX, logoY, 30, WHITE);
-            DrawText("Powered by", logoX + 50, logoY - 7, 10, WHITE);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------   
-    ClosePhysics();       // Uninitialize physics
-    
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}
-

+ 0 - 122
docs/examples/src/physac/physics_restitution.c

@@ -1,122 +0,0 @@
-/*******************************************************************************************
-*
-*   Physac - Physics restitution
-*
-*   NOTE 1: Physac requires multi-threading, when InitPhysics() a second thread is created to manage physics calculations.
-*   NOTE 2: Physac requires static C library linkage to avoid dependency on MinGW DLL (-static -lpthread)
-*
-*   Use the following line to compile:
-*
-*   gcc -o $(NAME_PART).exe $(FILE_NAME) -s $(RAYLIB_DIR)\raylib\raylib_icon -static -lraylib -lpthread 
-*   -lglfw3 -lopengl32 -lgdi32 -lopenal32 -lwinmm -std=c99 -Wl,--subsystem,windows -Wl,-allow-multiple-definition
-*   
-*   Copyright (c) 2017 Victor Fisac
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-#define PHYSAC_IMPLEMENTATION
-#include "physac.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    SetConfigFlags(FLAG_MSAA_4X_HINT);
-    InitWindow(screenWidth, screenHeight, "Physac [raylib] - Physics restitution");
-    SetTargetFPS(60);
-
-    // Physac logo drawing position
-    int logoX = screenWidth - MeasureText("Physac", 30) - 10;
-    int logoY = 15;
-
-    // Initialize physics and default physics bodies
-    InitPhysics();
-
-    // Create floor rectangle physics body
-    PhysicsBody floor = CreatePhysicsBodyRectangle((Vector2){ screenWidth/2, screenHeight }, screenWidth, 100, 10);
-    floor->enabled = false; // Disable body state to convert it to static (no dynamics, but collisions)
-    floor->restitution = 1;
-
-    // Create circles physics body
-    PhysicsBody circleA = CreatePhysicsBodyCircle((Vector2){ screenWidth*0.25f, screenHeight/2 }, 30, 10);
-    circleA->restitution = 0;
-    PhysicsBody circleB = CreatePhysicsBodyCircle((Vector2){ screenWidth*0.5f, screenHeight/2 }, 30, 10);
-    circleB->restitution = 0.5f;
-    PhysicsBody circleC = CreatePhysicsBodyCircle((Vector2){ screenWidth*0.75f, screenHeight/2 }, 30, 10);
-    circleC->restitution = 1;
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        if (IsKeyPressed('R'))    // Reset physics input
-        {
-            // Reset circles physics bodies position and velocity
-            circleA->position = (Vector2){ screenWidth*0.25f, screenHeight/2 };
-            circleA->velocity = (Vector2){ 0, 0 };
-            circleB->position = (Vector2){ screenWidth*0.5f, screenHeight/2 };
-            circleB->velocity = (Vector2){ 0, 0 };
-            circleC->position = (Vector2){ screenWidth*0.75f, screenHeight/2 };
-            circleC->velocity = (Vector2){ 0, 0 };
-        }
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(BLACK);
-
-            DrawFPS(screenWidth - 90, screenHeight - 30);
-
-            // Draw created physics bodies
-            int bodiesCount = GetPhysicsBodiesCount();
-            for (int i = 0; i < bodiesCount; i++)
-            {
-                PhysicsBody body = GetPhysicsBody(i);
-
-                int vertexCount = GetPhysicsShapeVerticesCount(i);
-                for (int j = 0; j < vertexCount; j++)
-                {
-                    // Get physics bodies shape vertices to draw lines
-                    // Note: GetPhysicsShapeVertex() already calculates rotation transformations
-                    Vector2 vertexA = GetPhysicsShapeVertex(body, j);
-
-                    int jj = (((j + 1) < vertexCount) ? (j + 1) : 0);   // Get next vertex or first to close the shape
-                    Vector2 vertexB = GetPhysicsShapeVertex(body, jj);
-
-                    DrawLineV(vertexA, vertexB, GREEN);     // Draw a line between two vertex positions
-                }
-            }
-
-            DrawText("Restitution amount", (screenWidth - MeasureText("Restitution amount", 30))/2, 75, 30, WHITE);
-            DrawText("0", circleA->position.x - MeasureText("0", 20)/2, circleA->position.y - 7, 20, WHITE);
-            DrawText("0.5", circleB->position.x - MeasureText("0.5", 20)/2, circleB->position.y - 7, 20, WHITE);
-            DrawText("1", circleC->position.x - MeasureText("1", 20)/2, circleC->position.y - 7, 20, WHITE);
-
-            DrawText("Press 'R' to reset example", 10, 10, 10, WHITE);
-
-            DrawText("Physac", logoX, logoY, 30, WHITE);
-            DrawText("Powered by", logoX + 50, logoY - 7, 10, WHITE);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------   
-    ClosePhysics();       // Uninitialize physics
-    
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}
-

+ 0 - 114
docs/examples/src/physac/physics_shatter.c

@@ -1,114 +0,0 @@
-/*******************************************************************************************
-*
-*   Physac - Body shatter
-*
-*   NOTE 1: Physac requires multi-threading, when InitPhysics() a second thread is created to manage physics calculations.
-*   NOTE 2: Physac requires static C library linkage to avoid dependency on MinGW DLL (-static -lpthread)
-*
-*   Use the following line to compile:
-*
-*   gcc -o $(NAME_PART).exe $(FILE_NAME) -s $(RAYLIB_DIR)\raylib\raylib_icon -static -lraylib -lpthread 
-*   -lglfw3 -lopengl32 -lgdi32 -lopenal32 -lwinmm -std=c99 -Wl,--subsystem,windows -Wl,-allow-multiple-definition
-*   
-*   Copyright (c) 2017 Victor Fisac
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-#define PHYSAC_IMPLEMENTATION
-#include "physac.h" 
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    SetConfigFlags(FLAG_MSAA_4X_HINT);
-    InitWindow(screenWidth, screenHeight, "Physac [raylib] - Body shatter");
-    SetTargetFPS(60);
-
-    // Physac logo drawing position
-    int logoX = screenWidth - MeasureText("Physac", 30) - 10;
-    int logoY = 15;
-
-    // Initialize physics and default physics bodies
-    InitPhysics();
-    SetPhysicsGravity(0, 0);
-
-    // Create random polygon physics body to shatter
-    PhysicsBody body = CreatePhysicsBodyPolygon((Vector2){ screenWidth/2, screenHeight/2 }, GetRandomValue(80, 200), GetRandomValue(3, 8), 10);
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        if (IsKeyPressed('R'))    // Reset physics input
-        {
-            ResetPhysics();
-
-            // Create random polygon physics body to shatter
-            body = CreatePhysicsBodyPolygon((Vector2){ screenWidth/2, screenHeight/2 }, GetRandomValue(80, 200), GetRandomValue(3, 8), 10);
-        }
-
-        if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON))    // Physics shatter input
-        {
-            // Note: some values need to be stored in variables due to asynchronous changes during main thread
-            int count = GetPhysicsBodiesCount();
-            for (int i = count - 1; i >= 0; i--)
-            {
-                PhysicsBody currentBody = GetPhysicsBody(i);
-                if (currentBody != NULL) PhysicsShatter(currentBody, GetMousePosition(), 10/currentBody->inverseMass);
-            }
-        }
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(BLACK);
-
-            // Draw created physics bodies
-            int bodiesCount = GetPhysicsBodiesCount();
-            for (int i = 0; i < bodiesCount; i++)
-            {
-                PhysicsBody currentBody = GetPhysicsBody(i);
-
-                int vertexCount = GetPhysicsShapeVerticesCount(i);
-                for (int j = 0; j < vertexCount; j++)
-                {
-                    // Get physics bodies shape vertices to draw lines
-                    // Note: GetPhysicsShapeVertex() already calculates rotation transformations
-                    Vector2 vertexA = GetPhysicsShapeVertex(currentBody, j);
-
-                    int jj = (((j + 1) < vertexCount) ? (j + 1) : 0);   // Get next vertex or first to close the shape
-                    Vector2 vertexB = GetPhysicsShapeVertex(currentBody, jj);
-
-                    DrawLineV(vertexA, vertexB, GREEN);     // Draw a line between two vertex positions
-                }
-            }
-
-            DrawText("Left mouse button in polygon area to shatter body\nPress 'R' to reset example", 10, 10, 10, WHITE);
-
-            DrawText("Physac", logoX, logoY, 30, WHITE);
-            DrawText("Powered by", logoX + 50, logoY - 7, 10, WHITE);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------   
-    ClosePhysics();       // Uninitialize physics
-    
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}
-

+ 0 - 121
docs/examples/src/shaders/shaders_custom_uniform.c

@@ -1,121 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [shaders] example - Apply a postprocessing shader and connect a custom uniform variable
-*
-*   NOTE: This example requires raylib OpenGL 3.3 or ES2 versions for shaders support,
-*         OpenGL 1.1 does not support shaders, recompile raylib to OpenGL 3.3 version.
-*
-*   NOTE: Shaders used in this example are #version 330 (OpenGL 3.3), to test this example
-*         on OpenGL ES 2.0 platforms (Android, Raspberry Pi, HTML5), use #version 100 shaders
-*         raylib comes with shaders ready for both versions, check raylib/shaders install folder
-*
-*   This example has been created using raylib 1.3 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2015 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-    
-    SetConfigFlags(FLAG_MSAA_4X_HINT);      // Enable Multi Sampling Anti Aliasing 4x (if available)
-
-    InitWindow(screenWidth, screenHeight, "raylib [shaders] example - custom uniform variable");
-
-    // Define the camera to look into our 3d world
-    Camera camera = {{ 3.0f, 3.0f, 3.0f }, { 0.0f, 1.5f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f };
-
-    Model dwarf = LoadModel("resources/model/dwarf.obj");                   // Load OBJ model
-    Texture2D texture = LoadTexture("resources/model/dwarf_diffuse.png");   // Load model texture (diffuse map)
-    dwarf.material.texDiffuse = texture;                                    // Set dwarf model diffuse texture
-
-    Vector3 position = { 0.0f, 0.0f, 0.0f };                                // Set model position
-    
-    Shader shader = LoadShader("resources/shaders/glsl330/base.vs", 
-                               "resources/shaders/glsl330/swirl.fs");       // Load postpro shader
-    
-    // Get variable (uniform) location on the shader to connect with the program
-    // NOTE: If uniform variable could not be found in the shader, function returns -1
-    int swirlCenterLoc = GetShaderLocation(shader, "center");
-    
-    float swirlCenter[2] = { (float)screenWidth/2, (float)screenHeight/2 };
-    
-    // Create a RenderTexture2D to be used for render to texture
-    RenderTexture2D target = LoadRenderTexture(screenWidth, screenHeight);
-    
-    // Setup orbital camera
-    SetCameraMode(camera, CAMERA_ORBITAL);  // Set an orbital camera mode
-
-    SetTargetFPS(60);                       // Set our game to run at 60 frames-per-second
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())            // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        Vector2 mousePosition = GetMousePosition();
-
-        swirlCenter[0] = mousePosition.x;
-        swirlCenter[1] = screenHeight - mousePosition.y;
-
-        // Send new value to the shader to be used on drawing
-        SetShaderValue(shader, swirlCenterLoc, swirlCenter, 2);
-        
-        UpdateCamera(&camera);              // Update camera
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-            
-            BeginTextureMode(target);   // Enable drawing to texture
-
-                Begin3dMode(camera);
-
-                    DrawModel(dwarf, position, 2.0f, WHITE);   // Draw 3d model with texture
-
-                    DrawGrid(10, 1.0f);     // Draw a grid
-
-                End3dMode();
-                
-                DrawText("TEXT DRAWN IN RENDER TEXTURE", 200, 10, 30, RED);
-            
-            EndTextureMode();           // End drawing to texture (now we have a texture available for next passes)
-            
-            BeginShaderMode(shader);
-            
-                // NOTE: Render texture must be y-flipped due to default OpenGL coordinates (left-bottom)
-                DrawTextureRec(target.texture, (Rectangle){ 0, 0, target.texture.width, -target.texture.height }, (Vector2){ 0, 0 }, WHITE);
-            
-            EndShaderMode();
-            
-            DrawText("(c) Dwarf 3D model by David Moreno", screenWidth - 200, screenHeight - 20, 10, GRAY);
-
-            DrawFPS(10, 10);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    UnloadShader(shader);           // Unload shader
-    UnloadTexture(texture);         // Unload texture
-    UnloadModel(dwarf);             // Unload model
-    UnloadRenderTexture(target);    // Unload render texture
-
-    CloseWindow();                  // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 93
docs/examples/src/shaders/shaders_model_shader.c

@@ -1,93 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [shaders] example - Apply a shader to a 3d model
-*
-*   NOTE: This example requires raylib OpenGL 3.3 or ES2 versions for shaders support,
-*         OpenGL 1.1 does not support shaders, recompile raylib to OpenGL 3.3 version.
-*
-*   NOTE: Shaders used in this example are #version 330 (OpenGL 3.3), to test this example
-*         on OpenGL ES 2.0 platforms (Android, Raspberry Pi, HTML5), use #version 100 shaders
-*         raylib comes with shaders ready for both versions, check raylib/shaders install folder
-*
-*   This example has been created using raylib 1.3 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2014 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-    
-    SetConfigFlags(FLAG_MSAA_4X_HINT);      // Enable Multi Sampling Anti Aliasing 4x (if available)
-
-    InitWindow(screenWidth, screenHeight, "raylib [shaders] example - model shader");
-
-    // Define the camera to look into our 3d world
-    Camera camera = {{ 3.0f, 3.0f, 3.0f }, { 0.0f, 1.5f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f };
-
-    Model dwarf = LoadModel("resources/model/dwarf.obj");                   // Load OBJ model
-    Texture2D texture = LoadTexture("resources/model/dwarf_diffuse.png");   // Load model texture
-    Shader shader = LoadShader("resources/shaders/glsl330/base.vs", 
-                               "resources/shaders/glsl330/grayscale.fs");   // Load model shader
-
-    dwarf.material.shader = shader;             // Set shader effect to 3d model
-    dwarf.material.texDiffuse = texture;        // Bind texture to model
-    
-    Vector3 position = { 0.0f, 0.0f, 0.0f };    // Set model position
-    
-    SetCameraMode(camera, CAMERA_FREE);         // Set an orbital camera mode
-
-    SetTargetFPS(60);                           // Set our game to run at 60 frames-per-second
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())                // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        UpdateCamera(&camera);                  // Update camera
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            Begin3dMode(camera);
-
-                DrawModel(dwarf, position, 2.0f, WHITE);   // Draw 3d model with texture
-
-                DrawGrid(10, 1.0f);     // Draw a grid
-
-            End3dMode();
-            
-            DrawText("(c) Dwarf 3D model by David Moreno", screenWidth - 200, screenHeight - 20, 10, GRAY);
-            
-            DrawText(FormatText("Camera position: (%.2f, %.2f, %.2f)", camera.position.x, camera.position.y, camera.position.z), 600, 20, 10, BLACK);
-            DrawText(FormatText("Camera target: (%.2f, %.2f, %.2f)", camera.target.x, camera.target.y, camera.target.z), 600, 40, 10, GRAY);
-
-            DrawFPS(10, 10);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    UnloadShader(shader);       // Unload shader
-    UnloadTexture(texture);     // Unload texture
-    UnloadModel(dwarf);         // Unload model
-
-    CloseWindow();              // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 180
docs/examples/src/shaders/shaders_postprocessing.c

@@ -1,180 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [shaders] example - Apply a postprocessing shader to a scene
-*
-*   NOTE: This example requires raylib OpenGL 3.3 or ES2 versions for shaders support,
-*         OpenGL 1.1 does not support shaders, recompile raylib to OpenGL 3.3 version.
-*
-*   NOTE: Shaders used in this example are #version 330 (OpenGL 3.3), to test this example
-*         on OpenGL ES 2.0 platforms (Android, Raspberry Pi, HTML5), use #version 100 shaders
-*         raylib comes with shaders ready for both versions, check raylib/shaders install folder
-*
-*   This example has been created using raylib 1.3 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2015 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-#if defined(PLATFORM_DESKTOP)
-    #define GLSL_VERSION            330
-    #define DEFAULT_VERTEX_SHADER   "resources/shaders/glsl330/base.vs"
-#else   // PLATFORM_RPI, PLATFORM_ANDROID, PLATFORM_WEB
-    #define GLSL_VERSION            100
-    #define DEFAULT_VERTEX_SHADER   "resources/shaders/glsl100/base.vs"
-#endif
-
-#define MAX_POSTPRO_SHADERS         12
-
-typedef enum {
-    FX_GRAYSCALE = 0,
-    FX_POSTERIZATION,
-    FX_DREAM_VISION,
-    FX_PIXELIZER,
-    FX_CROSS_HATCHING,
-    FX_CROSS_STITCHING,
-    FX_PREDATOR_VIEW,
-    FX_SCANLINES,
-    FX_FISHEYE,
-    FX_SOBEL,
-    FX_BLOOM,
-    FX_BLUR,
-    //FX_FXAA
-} PostproShader;
-
-static const char *postproShaderText[] = {
-    "GRAYSCALE",
-    "POSTERIZATION",
-    "DREAM_VISION",
-    "PIXELIZER",
-    "CROSS_HATCHING",
-    "CROSS_STITCHING",
-    "PREDATOR_VIEW",
-    "SCANLINES",
-    "FISHEYE",
-    "SOBEL",
-    "BLOOM",
-    "BLUR",
-    //"FXAA"
-};
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-    
-    SetConfigFlags(FLAG_MSAA_4X_HINT);      // Enable Multi Sampling Anti Aliasing 4x (if available)
-
-    InitWindow(screenWidth, screenHeight, "raylib [shaders] example - postprocessing shader");
-
-    // Define the camera to look into our 3d world
-    Camera camera = {{ 3.0f, 3.0f, 3.0f }, { 0.0f, 1.5f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f };
-    
-    Model dwarf = LoadModel("resources/model/dwarf.obj");                   // Load OBJ model
-    Texture2D texture = LoadTexture("resources/model/dwarf_diffuse.png");   // Load model texture (diffuse map)
-    dwarf.material.texDiffuse = texture;                                    // Set dwarf model diffuse texture
-
-    Vector3 position = { 0.0f, 0.0f, 0.0f };                                // Set model position
-    
-    // Load all postpro shaders
-    // NOTE 1: All postpro shader use the base vertex shader (DEFAULT_VERTEX_SHADER)
-    // NOTE 2: We load the correct shader depending on GLSL version
-    Shader shaders[MAX_POSTPRO_SHADERS];
-    
-    shaders[FX_GRAYSCALE] = LoadShader(DEFAULT_VERTEX_SHADER, FormatText("resources/shaders/glsl%i/grayscale.fs", GLSL_VERSION));
-    shaders[FX_POSTERIZATION] = LoadShader(DEFAULT_VERTEX_SHADER, FormatText("resources/shaders/glsl%i/posterization.fs", GLSL_VERSION));
-    shaders[FX_DREAM_VISION] = LoadShader(DEFAULT_VERTEX_SHADER, FormatText("resources/shaders/glsl%i/dream_vision.fs", GLSL_VERSION));
-    shaders[FX_PIXELIZER] = LoadShader(DEFAULT_VERTEX_SHADER, FormatText("resources/shaders/glsl%i/pixelizer.fs", GLSL_VERSION));
-    shaders[FX_CROSS_HATCHING] = LoadShader(DEFAULT_VERTEX_SHADER, FormatText("resources/shaders/glsl%i/cross_hatching.fs", GLSL_VERSION));
-    shaders[FX_CROSS_STITCHING] = LoadShader(DEFAULT_VERTEX_SHADER, FormatText("resources/shaders/glsl%i/cross_stitching.fs", GLSL_VERSION));
-    shaders[FX_PREDATOR_VIEW] = LoadShader(DEFAULT_VERTEX_SHADER, FormatText("resources/shaders/glsl%i/predator.fs", GLSL_VERSION));
-    shaders[FX_SCANLINES] = LoadShader(DEFAULT_VERTEX_SHADER, FormatText("resources/shaders/glsl%i/scanlines.fs", GLSL_VERSION));
-    shaders[FX_FISHEYE] = LoadShader(DEFAULT_VERTEX_SHADER, FormatText("resources/shaders/glsl%i/fisheye.fs", GLSL_VERSION));
-    shaders[FX_SOBEL] = LoadShader(DEFAULT_VERTEX_SHADER, FormatText("resources/shaders/glsl%i/sobel.fs", GLSL_VERSION));
-    shaders[FX_BLOOM] = LoadShader(DEFAULT_VERTEX_SHADER, FormatText("resources/shaders/glsl%i/bloom.fs", GLSL_VERSION));
-    shaders[FX_BLUR] = LoadShader(DEFAULT_VERTEX_SHADER, FormatText("resources/shaders/glsl%i/blur.fs", GLSL_VERSION));
-    
-    int currentShader = FX_GRAYSCALE;
-
-    // Create a RenderTexture2D to be used for render to texture
-    RenderTexture2D target = LoadRenderTexture(screenWidth, screenHeight);
-    
-    // Setup orbital camera
-    SetCameraMode(camera, CAMERA_ORBITAL);  // Set an orbital camera mode
-
-    SetTargetFPS(60);                       // Set our game to run at 60 frames-per-second
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())            // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        UpdateCamera(&camera);              // Update camera
-        
-        if (IsKeyPressed(KEY_RIGHT)) currentShader++;
-        else if (IsKeyPressed(KEY_LEFT)) currentShader--;
-        
-        if (currentShader >= MAX_POSTPRO_SHADERS) currentShader = 0;
-        else if (currentShader < 0) currentShader = MAX_POSTPRO_SHADERS - 1;
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            BeginTextureMode(target);   // Enable drawing to texture
-            
-                Begin3dMode(camera);
-
-                    DrawModel(dwarf, position, 2.0f, WHITE);   // Draw 3d model with texture
-
-                    DrawGrid(10, 1.0f);     // Draw a grid
-
-                End3dMode();
-                
-            EndTextureMode();           // End drawing to texture (now we have a texture available for next passes)
-            
-            // Render previously generated texture using selected postpro shader
-            BeginShaderMode(shaders[currentShader]);
-            
-                // NOTE: Render texture must be y-flipped due to default OpenGL coordinates (left-bottom)
-                DrawTextureRec(target.texture, (Rectangle){ 0, 0, target.texture.width, -target.texture.height }, (Vector2){ 0, 0 }, WHITE);
-                
-            EndShaderMode();
-            
-            DrawRectangle(0, 9, 580, 30, Fade(LIGHTGRAY, 0.7f));
-            
-            DrawText("(c) Dwarf 3D model by David Moreno", screenWidth - 200, screenHeight - 20, 10, DARKGRAY);
-            
-            DrawText("CURRENT POSTPRO SHADER:", 10, 15, 20, BLACK);
-            DrawText(postproShaderText[currentShader], 330, 15, 20, RED);
-            DrawText("< >", 540, 10, 30, DARKBLUE);
-            
-            DrawFPS(700, 15);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    
-    // Unload all postpro shaders
-    for (int i = 0; i < MAX_POSTPRO_SHADERS; i++) UnloadShader(shaders[i]);
-    
-    UnloadTexture(texture);         // Unload texture
-    UnloadModel(dwarf);             // Unload model
-    UnloadRenderTexture(target);    // Unload render texture
-
-    CloseWindow();                  // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 109
docs/examples/src/shaders/shaders_shapes_textures.c

@@ -1,109 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [shaders] example - Apply a shader to some shape or texture
-*
-*   NOTE: This example requires raylib OpenGL 3.3 or ES2 versions for shaders support,
-*         OpenGL 1.1 does not support shaders, recompile raylib to OpenGL 3.3 version.
-*
-*   NOTE: Shaders used in this example are #version 330 (OpenGL 3.3), to test this example
-*         on OpenGL ES 2.0 platforms (Android, Raspberry Pi, HTML5), use #version 100 shaders
-*         raylib comes with shaders ready for both versions, check raylib/shaders install folder
-*
-*   This example has been created using raylib 1.7 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2015 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [shaders] example - shapes and texture shaders");
-    
-    Texture2D fudesumi = LoadTexture("resources/fudesumi.png");
-
-    // NOTE: Using GLSL 330 shader version, on OpenGL ES 2.0 use GLSL 100 shader version 
-    Shader shader = LoadShader("resources/shaders/glsl330/base.vs", 
-                               "resources/shaders/glsl330/grayscale.fs");
-
-    SetTargetFPS(60);
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        // TODO: Update your variables here
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-            
-            // Start drawing with default shader
-
-            DrawText("USING DEFAULT SHADER", 20, 40, 10, RED);
-            
-            DrawCircle(80, 120, 35, DARKBLUE);
-            DrawCircleGradient(80, 220, 60, GREEN, SKYBLUE);
-            DrawCircleLines(80, 340, 80, DARKBLUE);
-
-            
-            // Activate our custom shader to be applied on next shapes/textures drawings
-            BeginShaderMode(shader);
-            
-                DrawText("USING CUSTOM SHADER", 190, 40, 10, RED);
-
-                DrawRectangle(250 - 60, 90, 120, 60, RED);
-                DrawRectangleGradient(250 - 90, 170, 180, 130, MAROON, GOLD);
-                DrawRectangleLines(250 - 40, 320, 80, 60, ORANGE);
-
-            // Activate our default shader for next drawings
-            EndShaderMode();
-            
-            DrawText("USING DEFAULT SHADER", 370, 40, 10, RED);
-            
-            DrawTriangle((Vector2){430, 80},
-                         (Vector2){430 - 60, 150},
-                         (Vector2){430 + 60, 150}, VIOLET);
-                         
-            DrawTriangleLines((Vector2){430, 160},
-                              (Vector2){430 - 20, 230},
-                              (Vector2){430 + 20, 230}, DARKBLUE);
-
-            DrawPoly((Vector2){430, 320}, 6, 80, 0, BROWN);
-            
-            // Activate our custom shader to be applied on next shapes/textures drawings
-            BeginShaderMode(shader);
-
-                DrawTexture(fudesumi, 500, -30, WHITE);    // Using custom shader
-            
-            // Activate our default shader for next drawings
-            EndShaderMode();
-            
-            DrawText("(c) Fudesumi sprite by Eiden Marsal", 380, screenHeight - 20, 10, GRAY);
-            
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    UnloadShader(shader);       // Unload shader
-    UnloadTexture(fudesumi);    // Unload texture
-    
-    CloseWindow();              // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 72
docs/examples/src/shapes/shapes_basic_shapes.c

@@ -1,72 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [shapes] example - Draw basic shapes 2d (rectangle, circle, line...)
-*
-*   This example has been created using raylib 1.0 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2014 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [shapes] example - basic shapes drawing");
-    
-    SetTargetFPS(60);
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        // TODO: Update your variables here
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            DrawText("some basic shapes available on raylib", 20, 20, 20, DARKGRAY);
-
-            DrawLine(18, 42, screenWidth - 18, 42, BLACK);
-
-            DrawCircle(screenWidth/4, 120, 35, DARKBLUE);
-            DrawCircleGradient(screenWidth/4, 220, 60, GREEN, SKYBLUE);
-            DrawCircleLines(screenWidth/4, 340, 80, DARKBLUE);
-
-            DrawRectangle(screenWidth/4*2 - 60, 100, 120, 60, RED);
-            DrawRectangleGradient(screenWidth/4*2 - 90, 170, 180, 130, MAROON, GOLD);
-            DrawRectangleLines(screenWidth/4*2 - 40, 320, 80, 60, ORANGE);
-
-            DrawTriangle((Vector2){screenWidth/4*3, 80},
-                         (Vector2){screenWidth/4*3 - 60, 150},
-                         (Vector2){screenWidth/4*3 + 60, 150}, VIOLET);
-
-            DrawTriangleLines((Vector2){screenWidth/4*3, 160},
-                              (Vector2){screenWidth/4*3 - 20, 230},
-                              (Vector2){screenWidth/4*3 + 20, 230}, DARKBLUE);
-
-            DrawPoly((Vector2){screenWidth/4*3, 320}, 6, 80, 0, BROWN);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 97
docs/examples/src/shapes/shapes_colors_palette.c

@@ -1,97 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [shapes] example - Draw raylib custom color palette
-*
-*   This example has been created using raylib 1.0 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2014 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [shapes] example - raylib color palette");
-    
-    SetTargetFPS(60);
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        // TODO: Update your variables here
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            DrawText("raylib color palette", 28, 42, 20, BLACK);
-
-            DrawRectangle(26, 80, 100, 100, DARKGRAY);
-            DrawRectangle(26, 188, 100, 100, GRAY);
-            DrawRectangle(26, 296, 100, 100, LIGHTGRAY);
-            DrawRectangle(134, 80, 100, 100, MAROON);
-            DrawRectangle(134, 188, 100, 100, RED);
-            DrawRectangle(134, 296, 100, 100, PINK);
-            DrawRectangle(242, 80, 100, 100, ORANGE);
-            DrawRectangle(242, 188, 100, 100, GOLD);
-            DrawRectangle(242, 296, 100, 100, YELLOW);
-            DrawRectangle(350, 80, 100, 100, DARKGREEN);
-            DrawRectangle(350, 188, 100, 100, LIME);
-            DrawRectangle(350, 296, 100, 100, GREEN);
-            DrawRectangle(458, 80, 100, 100, DARKBLUE);
-            DrawRectangle(458, 188, 100, 100, BLUE);
-            DrawRectangle(458, 296, 100, 100, SKYBLUE);
-            DrawRectangle(566, 80, 100, 100, DARKPURPLE);
-            DrawRectangle(566, 188, 100, 100, VIOLET);
-            DrawRectangle(566, 296, 100, 100, PURPLE);
-            DrawRectangle(674, 80, 100, 100, DARKBROWN);
-            DrawRectangle(674, 188, 100, 100, BROWN);
-            DrawRectangle(674, 296, 100, 100, BEIGE);
-
-
-            DrawText("DARKGRAY", 65, 166, 10, BLACK);
-            DrawText("GRAY", 93, 274, 10, BLACK);
-            DrawText("LIGHTGRAY", 61, 382, 10, BLACK);
-            DrawText("MAROON", 186, 166, 10, BLACK);
-            DrawText("RED", 208, 274, 10, BLACK);
-            DrawText("PINK", 204, 382, 10, BLACK);
-            DrawText("ORANGE", 295, 166, 10, BLACK);
-            DrawText("GOLD", 310, 274, 10, BLACK);
-            DrawText("YELLOW", 300, 382, 10, BLACK);
-            DrawText("DARKGREEN", 382, 166, 10, BLACK);
-            DrawText("LIME", 420, 274, 10, BLACK);
-            DrawText("GREEN", 410, 382, 10, BLACK);
-            DrawText("DARKBLUE", 498, 166, 10, BLACK);
-            DrawText("BLUE", 526, 274, 10, BLACK);
-            DrawText("SKYBLUE", 505, 382, 10, BLACK);
-            DrawText("DARKPURPLE", 592, 166, 10, BLACK);
-            DrawText("VIOLET", 621, 274, 10, BLACK);
-            DrawText("PURPLE", 620, 382, 10, BLACK);
-            DrawText("DARKBROWN", 705, 166, 10, BLACK);
-            DrawText("BROWN", 733, 274, 10, BLACK);
-            DrawText("BEIGE", 737, 382, 10, BLACK);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 59
docs/examples/src/shapes/shapes_lines_bezier.c

@@ -1,59 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [shapes] example - Cubic-bezier lines
-*
-*   This example has been created using raylib 1.7 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2017 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    SetConfigFlags(FLAG_MSAA_4X_HINT);
-    InitWindow(screenWidth, screenHeight, "raylib [shapes] example - cubic-bezier lines");
-    
-    Vector2 start = { 0, 0 };
-    Vector2 end = { screenWidth, screenHeight };
-    
-    SetTargetFPS(60);
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) start = GetMousePosition();
-        else if (IsMouseButtonDown(MOUSE_RIGHT_BUTTON)) end = GetMousePosition();
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-            
-            DrawText("USE MOUSE LEFT-RIGHT CLICK to DEFINE LINE START and END POINTS", 15, 20, 20, GRAY);
-
-            DrawLineBezier(start, end, 2.0f, RED);
-            
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------   
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 56
docs/examples/src/shapes/shapes_logo_raylib.c

@@ -1,56 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [shapes] example - Draw raylib logo using basic shapes
-*
-*   This example has been created using raylib 1.0 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2014 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [shapes] example - raylib logo using shapes");
-    
-    SetTargetFPS(60);
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        // TODO: Update your variables here
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            DrawRectangle(screenWidth/2 - 128, screenHeight/2 - 128, 256, 256, BLACK);
-            DrawRectangle(screenWidth/2 - 112, screenHeight/2 - 112, 224, 224, RAYWHITE);
-            DrawText("raylib", screenWidth/2 - 44, screenHeight/2 + 48, 50, BLACK);
-
-            DrawText("this is NOT a texture!", 350, 370, 10, GRAY);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 160
docs/examples/src/shapes/shapes_logo_raylib_anim.c

@@ -1,160 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [shapes] example - raylib logo animation
-*
-*   This example has been created using raylib 1.4 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2014 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [shapes] example - raylib logo animation");
-
-    int logoPositionX = screenWidth/2 - 128;
-    int logoPositionY = screenHeight/2 - 128;
-
-    int framesCounter = 0;
-    int lettersCount = 0;
-
-    int topSideRecWidth = 16;
-    int leftSideRecHeight = 16;
-
-    int bottomSideRecWidth = 16;
-    int rightSideRecHeight = 16;
-
-    int state = 0;                  // Tracking animation states (State Machine)
-    float alpha = 1.0f;             // Useful for fading
-
-    SetTargetFPS(60);
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        if (state == 0)                 // State 0: Small box blinking
-        {
-            framesCounter++;
-
-            if (framesCounter == 120)
-            {
-                state = 1;
-                framesCounter = 0;      // Reset counter... will be used later...
-            }
-        }
-        else if (state == 1)            // State 1: Top and left bars growing
-        {
-            topSideRecWidth += 4;
-            leftSideRecHeight += 4;
-
-            if (topSideRecWidth == 256) state = 2;
-        }
-        else if (state == 2)            // State 2: Bottom and right bars growing
-        {
-            bottomSideRecWidth += 4;
-            rightSideRecHeight += 4;
-
-            if (bottomSideRecWidth == 256) state = 3;
-        }
-        else if (state == 3)            // State 3: Letters appearing (one by one)
-        {
-            framesCounter++;
-
-            if (framesCounter/12)       // Every 12 frames, one more letter!
-            {
-                lettersCount++;
-                framesCounter = 0;
-            }
-
-            if (lettersCount >= 10)     // When all letters have appeared, just fade out everything
-            {
-                alpha -= 0.02f;
-
-                if (alpha <= 0.0f)
-                {
-                    alpha = 0.0f;
-                    state = 4;
-                }
-            }
-        }
-        else if (state == 4)            // State 4: Reset and Replay
-        {
-            if (IsKeyPressed('R'))
-            {
-                framesCounter = 0;
-                lettersCount = 0;
-
-                topSideRecWidth = 16;
-                leftSideRecHeight = 16;
-
-                bottomSideRecWidth = 16;
-                rightSideRecHeight = 16;
-
-                alpha = 1.0f;
-                state = 0;          // Return to State 0
-            }
-        }
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            if (state == 0)
-            {
-                if ((framesCounter/15)%2) DrawRectangle(logoPositionX, logoPositionY, 16, 16, BLACK);
-            }
-            else if (state == 1)
-            {
-                DrawRectangle(logoPositionX, logoPositionY, topSideRecWidth, 16, BLACK);
-                DrawRectangle(logoPositionX, logoPositionY, 16, leftSideRecHeight, BLACK);
-            }
-            else if (state == 2)
-            {
-                DrawRectangle(logoPositionX, logoPositionY, topSideRecWidth, 16, BLACK);
-                DrawRectangle(logoPositionX, logoPositionY, 16, leftSideRecHeight, BLACK);
-
-                DrawRectangle(logoPositionX + 240, logoPositionY, 16, rightSideRecHeight, BLACK);
-                DrawRectangle(logoPositionX, logoPositionY + 240, bottomSideRecWidth, 16, BLACK);
-            }
-            else if (state == 3)
-            {
-                DrawRectangle(logoPositionX, logoPositionY, topSideRecWidth, 16, Fade(BLACK, alpha));
-                DrawRectangle(logoPositionX, logoPositionY + 16, 16, leftSideRecHeight - 32, Fade(BLACK, alpha));
-
-                DrawRectangle(logoPositionX + 240, logoPositionY + 16, 16, rightSideRecHeight - 32, Fade(BLACK, alpha));
-                DrawRectangle(logoPositionX, logoPositionY + 240, bottomSideRecWidth, 16, Fade(BLACK, alpha));
-
-                DrawRectangle(screenWidth/2 - 112, screenHeight/2 - 112, 224, 224, Fade(RAYWHITE, alpha));
-
-                DrawText(SubText("raylib", 0, lettersCount), screenWidth/2 - 44, screenHeight/2 + 48, 50, Fade(BLACK, alpha));
-            }
-            else if (state == 4)
-            {
-                DrawText("[R] REPLAY", 340, 200, 20, GRAY);
-            }
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 68
docs/examples/src/text/text_bmfont_ttf.c

@@ -1,68 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [text] example - BMFont and TTF SpriteFonts loading
-*
-*   This example has been created using raylib 1.4 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2016 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [text] example - bmfont and ttf sprite fonts loading");
-
-    const char msgBm[64] = "THIS IS AN AngelCode SPRITE FONT";
-    const char msgTtf[64] = "THIS SPRITE FONT has been GENERATED from a TTF";
-
-    // NOTE: Textures/Fonts MUST be loaded after Window initialization (OpenGL context is required)
-    SpriteFont fontBm = LoadSpriteFont("resources/bmfont.fnt");       // BMFont (AngelCode)
-    SpriteFont fontTtf = LoadSpriteFont("resources/pixantiqua.ttf");  // TTF font
-
-    Vector2 fontPosition;
-
-    fontPosition.x = screenWidth/2 - MeasureTextEx(fontBm, msgBm, fontBm.baseSize, 0).x/2;
-    fontPosition.y = screenHeight/2 - fontBm.baseSize/2 - 80;
-
-    SetTargetFPS(60);
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        // TODO: Update variables here...
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            DrawTextEx(fontBm, msgBm, fontPosition, fontBm.baseSize, 0, MAROON);
-            DrawTextEx(fontTtf, msgTtf, (Vector2){ 75.0f, 240.0f }, fontTtf.baseSize*0.8f, 2, LIME);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    UnloadSpriteFont(fontBm);     // AngelCode SpriteFont unloading
-    UnloadSpriteFont(fontTtf);    // TTF SpriteFont unloading
-
-    CloseWindow();                // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 65
docs/examples/src/text/text_bmfont_unordered.c

@@ -1,65 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [text] example - BMFont unordered chars loading and drawing
-*
-*   This example has been created using raylib 1.4 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2016 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [text] example - bmfont unordered loading and drawing");
-
-    // NOTE: Using chars outside the [32..127] limits!
-    // NOTE: If a character is not found in the font, it just renders a space
-    const char msg[256] = "ASCII extended characters:\n¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆ\nÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæ\nçèéêëìíîïðñòóôõö÷øùúûüýþÿ";
-
-    // NOTE: Loaded font has an unordered list of characters (chars in the range 32..255)
-    SpriteFont font = LoadSpriteFont("resources/pixantiqua.fnt");       // BMFont (AngelCode)
-
-    SetTargetFPS(60);
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        // TODO: Update variables here...
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            DrawText("Font name:       PixAntiqua", 40, 50, 20, GRAY);
-            DrawText(FormatText("Font base size:           %i", font.baseSize), 40, 80, 20, GRAY);
-            DrawText(FormatText("Font chars number:     %i", font.charsCount), 40, 110, 20, GRAY);
-            
-            DrawTextEx(font, msg, (Vector2){ 40, 180 }, font.baseSize, 0, MAROON);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    UnloadSpriteFont(font);     // AngelCode SpriteFont unloading
-    
-    CloseWindow();                // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 62
docs/examples/src/text/text_format_text.c

@@ -1,62 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [text] example - Text formatting
-*
-*   This example has been created using raylib 1.1 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2014 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [text] example - text formatting");
-
-    int score = 100020;
-    int hiscore = 200450;
-    int lives = 5;
-
-    SetTargetFPS(60);
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        // TODO: Update your variables here
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-
-            DrawText(FormatText("Score: %08i", score), 200, 80, 20, RED);
-
-            DrawText(FormatText("HiScore: %08i", hiscore), 200, 120, 20, GREEN);
-
-            DrawText(FormatText("Lives: %02i", lives), 200, 160, 40, BLUE);
-
-            DrawText(FormatText("Elapsed Time: %02.02f ms", GetFrameTime()*1000), 200, 220, 20, BLACK);
-
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}

+ 0 - 116
docs/examples/src/text/text_input_box.c

@@ -1,116 +0,0 @@
-/*******************************************************************************************
-*
-*   raylib [text] example - Input Box
-*
-*   This example has been created using raylib 1.7 (www.raylib.com)
-*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
-*
-*   Copyright (c) 2017 Ramon Santamaria (@raysan5)
-*
-********************************************************************************************/
-
-#include "raylib.h"
-
-#define MAX_INPUT_CHARS     9
-
-int main()
-{
-    // Initialization
-    //--------------------------------------------------------------------------------------
-    int screenWidth = 800;
-    int screenHeight = 450;
-
-    InitWindow(screenWidth, screenHeight, "raylib [text] example - input box");
-
-    char name[MAX_INPUT_CHARS + 1] = "\0";      // NOTE: One extra space required for line ending char '\0'
-    int letterCount = 0;
-
-    Rectangle textBox = { screenWidth/2 - 100, 180, 225, 50 };
-    bool mouseOnText = false;
-
-    int framesCounter = 0;
-
-    SetTargetFPS(60);
-    //--------------------------------------------------------------------------------------
-
-    // Main game loop
-    while (!WindowShouldClose())    // Detect window close button or ESC key
-    {
-        // Update
-        //----------------------------------------------------------------------------------
-        if (CheckCollisionPointRec(GetMousePosition(), textBox)) mouseOnText = true;
-        else mouseOnText = false;
-        
-        if (mouseOnText)
-        {
-            int key = GetKeyPressed();
-            
-            // NOTE: Only allow keys in range [32..125]
-            if ((key >= 32) && (key <= 125) && (letterCount < MAX_INPUT_CHARS))
-            {
-                name[letterCount] = (char)key;
-                letterCount++;
-            }
-            
-            if (key == KEY_BACKSPACE)
-            {
-                letterCount--;
-                name[letterCount] = '\0';
-                
-                if (letterCount < 0) letterCount = 0;
-            }
-        }
-        
-        if (mouseOnText) framesCounter++;
-        else framesCounter = 0;
-        //----------------------------------------------------------------------------------
-
-        // Draw
-        //----------------------------------------------------------------------------------
-        BeginDrawing();
-
-            ClearBackground(RAYWHITE);
-            
-            DrawText("PLACE MOUSE OVER INPUT BOX!", 240, 140, 20, GRAY);
-
-            DrawRectangleRec(textBox, LIGHTGRAY);
-            if (mouseOnText) DrawRectangleLines(textBox.x, textBox.y, textBox.width, textBox.height, RED);
-            else DrawRectangleLines(textBox.x, textBox.y, textBox.width, textBox.height, DARKGRAY);
-            
-            DrawText(name, textBox.x + 5, textBox.y + 8, 40, MAROON);
-            
-            DrawText(FormatText("INPUT CHARS: %i/%i", letterCount, MAX_INPUT_CHARS), 315, 250, 20, DARKGRAY);
-
-            if (mouseOnText)
-            {
-                if (letterCount < MAX_INPUT_CHARS)
-                {
-                    // Draw blinking underscore char
-                    if (((framesCounter/20)%2) == 0) DrawText("_", textBox.x + 8 + MeasureText(name, 40), textBox.y + 12, 40, MAROON);
-                }
-                else DrawText("Press BACKSPACE to delete chars...", 230, 300, 20, GRAY);
-            }
-            
-        EndDrawing();
-        //----------------------------------------------------------------------------------
-    }
-
-    // De-Initialization
-    //--------------------------------------------------------------------------------------   
-    CloseWindow();        // Close window and OpenGL context
-    //--------------------------------------------------------------------------------------
-
-    return 0;
-}
-
-// Check if any key is pressed
-// NOTE: We limit keys check to keys between 32 (KEY_SPACE) and 126
-bool IsAnyKeyPressed()
-{
-    bool keyPressed = false;
-    int key = GetKeyPressed();
-
-    if ((key >= 32) && (key <= 126)) keyPressed = true;
-
-    return keyPressed;
-}

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